Forráskód Böngészése

Ticket #4558 - Build-in API support: Session for 404.

AntonLV 2 éve
szülő
commit
f0158d7c96

+ 31 - 0
inc/classes/BxDolProfile.php

@@ -156,6 +156,37 @@ class BxDolProfile extends BxDolFactory implements iBxDolProfile
         return $aRv;
     }
     
+    public static function getDataForPage($mixedProfileId = false, $aParams = [])
+    {
+        if(!($mixedProfileId instanceof BxDolProfile))
+            $oProfile = BxDolProfile::getInstanceMagic($mixedProfileId);
+        else
+            $oProfile = $mixedProfileId;
+
+        $iId = $oProfile->id();
+        $oAccount = $oProfile->getAccountObject();
+
+        $aRv = [
+            'id' => $iId,
+            'email' => $oAccount->getEmail(),
+            'display_name' => $oProfile->getDisplayName(),
+            'url' => bx_api_get_relative_url($oProfile->getUrl()),
+            'avatar' => $oProfile->getAvatar(),
+            'settings' => $oProfile->getSettings(),
+            //'level' => BxDolAcl::getInstance()->getMemberMembershipInfo($iId),
+            'moderator' => (bool)BxDolAcl::getInstance()->isMemberLevelInSet([MEMBERSHIP_ID_ADMINISTRATOR, MEMBERSHIP_ID_MODERATOR], $iId),
+            'operator' => isAdmin(),
+            //'info' => $oProfile->getInfo(),
+            'confirmed' => $oAccount->isConfirmed(),
+            'notifications' => 0,
+            'cart' => 0,
+            'active' => $oProfile->isActive(),
+            'status' => $oProfile->getStatus(),
+        ];
+
+        return $aRv;
+    }
+
     /**
      * Get profile id
      */

+ 3 - 19
template/scripts/BxBasePage.php

@@ -495,26 +495,10 @@ class BxBasePage extends BxDolPage
                 if(($oMenuAddContent = BxDolMenu::getObjectInstance('sys_add_content')) !== false)
                 $a['menu_add'] = $oMenuAddContent->getCodeAPI();
             */
+
             $o = BxDolProfile::getInstance();
-            $oAccount = $o->getAccountObject();
-            $a['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(),
-            ];
-            
+            $a['user'] = BxDolProfile::getDataForPage($o);
+
             $oInformer = BxDolInformer::getInstance(BxDolTemplate::getInstance());
             $sRet = $oInformer ? $oInformer->display() : '';
             if ($sRet){

+ 4 - 23
template/scripts/BxBaseServicePages.php

@@ -69,30 +69,11 @@ class BxBaseServicePages extends BxDol
         }
         else {
             $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(),
-                ];
-             }
+
+            if(isLogged())
+                $aRes['data']['user'] = BxDolProfile::getDataForPage();
         }
-        
+
         return $aRes;
     }