Jelajahi Sumber

#4558 - Build-in API support (Session for 404)

roman.lesnikov@gmail.com 2 tahun lalu
induk
melakukan
7a4327fbdb
2 mengubah file dengan 24 tambahan dan 1 penghapusan
  1. 1 0
      api.php
  2. 23 1
      template/scripts/BxBaseServicePages.php

+ 1 - 0
api.php

@@ -84,6 +84,7 @@ if (is_array($mixedRet) && isset($mixedRet['error'])) {
     $a = [
         'status' => isset($mixedRet['code']) ? $mixedRet['code'] : 500,
         'error' => isset($mixedRet['desc']) ? $mixedRet['desc'] : $mixedRet['error'],
+        'data' => isset($mixedRet['data']) ? $mixedRet['data'] : '',
     ];
     if (isset($mixedRet['code']))
         $a['code'] = $mixedRet['code'];

+ 23 - 1
template/scripts/BxBaseServicePages.php

@@ -68,7 +68,29 @@ class BxBaseServicePages extends BxDol
             return $oPage->getPageAPI($aBlocks);
         }
         else {
-            $aRes = ['code' => 404, 'error' => _t("_sys_request_page_not_found_cpt")];
+            $aRes = ['code' => 404, 'error' => _t("_sys_request_page_not_found_cpt"), 'data' => ['page_status' => 404]];
+            
+            if (isLogged()) {
+                $o = BxDolProfile::getInstance();
+                $oAccount = $o->getAccountObject();
+                $aRes['data']['user'] = [
+                    'id' => $o->id(),
+                    'email' => $o->getAccountObject()->getEmail(),
+                    'display_name' => $o->getDisplayName(),
+                    'url' => bx_api_get_relative_url($o->getUrl()),
+                    'avatar' => $o->getAvatar(),
+                    'settings' => $o->getSettings(),
+                    //'level' => BxDolAcl::getInstance()->getMemberMembershipInfo($o->id()),
+                    'moderator' => (bool)BxDolAcl::getInstance()->isMemberLevelInSet([MEMBERSHIP_ID_ADMINISTRATOR, MEMBERSHIP_ID_MODERATOR], $o->id()),
+                    'operator' => isAdmin(),
+                    //'info' => $o->getInfo(),
+                    'confirmed' => $oAccount->isConfirmed(),
+                    'notifications' => 0,
+                    'cart' => 0,
+                    'active' => $o->isActive(),
+                    'status' => $o->getStatus(),
+                ];
+             }
         }
         
         return $aRes;