Răsfoiți Sursa

#4148 - Build-in API support (any changes)

roman.lesnikov@gmail.com 3 ani în urmă
părinte
comite
d25b935479

+ 1 - 1
inc/classes/BxDolForm.php

@@ -1464,7 +1464,7 @@ class BxDolFormChecker
         }
 
         // check CSRF token if it's needed.
-        if (getParam('sys_security_form_token_enable') == 'on' && $this->_bFormCsrfChecking === true) {
+        if (getParam('sys_security_form_token_enable') == 'on' && $this->_bFormCsrfChecking === true && !bx_is_api()) {
             $mixedCsrfTokenUsr = BxDolForm::getSubmittedValue('csrf_token', $this->_sFormMethod, $this->_aSpecificValues);
             unset($aInputs['csrf_token']);
 

+ 1 - 0
inc/utils.inc.php

@@ -2448,6 +2448,7 @@ function bx_api_get_image($sStorage, $iId)
     }
     if (!empty($sUrl)){
         return [
+            'storage' => $sStorage,
             'src' => $sUrl,
             'width' => $iWidth,
             'height' => $iHeight,

+ 1 - 0
modules/base/general/classes/BxBaseModGeneralModule.php

@@ -330,6 +330,7 @@ class BxBaseModGeneralModule extends BxDolModule
             'EntityCreate' => '',
             'EntityEdit' => '',
             'EntityDelete' => '',
+            'UpdateImage' => '',
             // page blocks
             'EntityTextBlock' => '',
             'EntityInfo' => '',

+ 10 - 2
template/scripts/BxBasePage.php

@@ -448,7 +448,8 @@ class BxBasePage extends BxDolPage
                 ]),
                 'actions_menu' => '',
                 'meta_menu' => '',
-                'cover' => $oModule->serviceGetCover($this->_aProfileInfo['content_id'])
+                'cover' => $oModule->serviceGetCover($this->_aProfileInfo['content_id']),
+                'allow_edit' =>  $oModule->checkAllowedChangeCover($this->_aProfileInfo['id']) === CHECK_ACTION_RESULT_ALLOWED
             ];
             
             $CNF = $oModule->_oConfig->CNF;
@@ -529,6 +530,9 @@ class BxBasePage extends BxDolPage
                     if(isset($aContent['module'], $aContent['method']))
                         $sSource = $aContent['module'] . ':' . $aContent['method'];
                 }
+                else{
+                    $sSource = 'system:block_' . $aBlock['id'];
+                }
 
                 if($bBlocks && !in_array($sSource, $aBlocks)) {
                     unset($aCells[$sKey][$i]);
@@ -901,7 +905,11 @@ class BxBasePage extends BxDolPage
      */
     protected function _getBlockLang ($aBlock)
     {
-        $s = '<div class="bx-page-lang-container bx-def-vanilla-html max-w-none">' . _t(trim($aBlock['content'])) . '</div>';
+        if (bx_is_api()){
+            return [bx_api_get_block('lang', ['title' => _t($aBlock['title']), 'content' => bx_process_macros(_t(trim($aBlock['content'])))])];
+        }
+    
+        $s = '<div class="bx-page-lang-container">' . _t(trim($aBlock['content'])) . '</div>';
         $s = $this->_replaceMarkers($s, array('block_id' => $aBlock['id']));
         $s = bx_process_macros($s);
         return $s;

+ 1 - 5
template/scripts/BxBaseServiceLogin.php

@@ -151,11 +151,6 @@ class BxBaseServiceLogin extends BxDol
                 header('Location: ' . BX_DOL_URL_ROOT);
                 exit;
             } 
-            else {
-                return [
-                    ['id' => 2, 'type' => 'redirect', 'data' => ['uri' => '/']],
-                ];
-            }
         }
 
         $oPemalink = BxDolPermalinks::getInstance();
@@ -179,6 +174,7 @@ class BxBaseServiceLogin extends BxDol
                 bx_login($oAccount->id(), ($oForm->getCleanValue('rememberMe') ? true : false));
                 return [
                     bx_api_get_block('redirect', ['uri' => '/']),
+                    bx_api_get_block('form', $oForm->getCodeAPI(), ['ext' => ['request' => ['url' => '/api.php?r=system/login_form/TemplServiceLogin', 'immutable' => true]]]),
                     bx_api_get_block('login', ['session' => BxDolSession::getInstance()->getId()], ['id' => 2]),
                 ];
             }