فهرست منبع

Ticket #4558 - Build-in API support: Different.

AntonLV 2 سال پیش
والد
کامیت
1d879a4c18
2فایلهای تغییر یافته به همراه32 افزوده شده و 16 حذف شده
  1. 13 6
      modules/base/text/classes/BxBaseModTextTemplate.php
  2. 19 10
      modules/boonex/timeline/classes/BxTimelineTemplate.php

+ 13 - 6
modules/base/text/classes/BxBaseModTextTemplate.php

@@ -91,12 +91,19 @@ class BxBaseModTextTemplate extends BxBaseModGeneralTemplate
         if (!$iProfileId)
             $iProfileId = $aData[$CNF['FIELD_AUTHOR']];
 
-        if(bx_is_api())
-            return [bx_api_get_block('entity_author', [
-                'author_data' => BxDolProfile::getData($iProfileId),
-                'entry_date' => !empty($CNF['FIELD_ADDED']) && !empty($aData[$CNF['FIELD_ADDED']]) ? $aData[$CNF['FIELD_ADDED']] : '',
-                'menu_manage' => $oModule->getEntryAllActions()
-            ])];
+        if($this->_bIsApi) {
+            $sFldAdd = 'FIELD_ADDED';
+            $sFldAvt = 'FIELD_ALLOW_VIEW_TO';
+
+            return [
+                bx_api_get_block('entity_author', [
+                    'author_data' => BxDolProfile::getData($iProfileId),
+                    'entry_date' => !empty($CNF[$sFldAdd]) && !empty($aData[$CNF[$sFldAdd]]) ? $aData[$CNF[$sFldAdd]] : '',
+                    'entry_context' => !empty($CNF[$sFldAvt]) && (int)$aData[$CNF[$sFldAvt]] < 0 ? BxDolProfile::getData(abs((int)$aData[$CNF[$sFldAvt]])) : '',
+                    'menu_manage' => $oModule->getEntryAllActions()
+                ])
+            ];
+        }
 
         $oProfile = BxDolProfile::getInstanceMagic($iProfileId);
         $sName = $oProfile->getDisplayName();

+ 19 - 10
modules/boonex/timeline/classes/BxTimelineTemplate.php

@@ -627,10 +627,11 @@ class BxTimelineTemplate extends BxBaseModNotificationsTemplate
         return $this->parseHtmlByName('block_item_content.html', $aTmplVars);
     }
 
-    public function getItemBlockInfo($iId) {
+    public function getItemBlockInfo($iId)
+    {
         $CNF = $this->_oConfig->CNF;
 
-        $aEvent = $this->_oDb->getEvents(array('browse' => 'id', 'value' => $iId));
+        $aEvent = $this->_oDb->getEvents(['browse' => 'id', 'value' => $iId]);
         if(empty($aEvent))
             return '';
 
@@ -638,15 +639,23 @@ class BxTimelineTemplate extends BxBaseModNotificationsTemplate
         if($aResult === false)
             return '';
 
-        if(bx_is_api()) {
-            $oMenuManage = BxDolMenu::getObjectInstance($this->_oConfig->getObject('menu_item_manage'));
-            $oMenuManage->setEvent($aEvent);
+        if($this->_bIsApi) {
+            $sFldOpv = 'FIELD_OBJECT_PRIVACY_VIEW';
 
-            return [bx_api_get_block('entity_author', [
-                'author_data' => BxDolProfile::getData($aResult[$CNF['FIELD_OBJECT_OWNER_ID']]),
-                'entry_date' => !empty($aEvent[$CNF['FIELD_ADDED']]) ? $aEvent[$CNF['FIELD_ADDED']] : '',
-                'menu_manage' => $oMenuManage->getCodeApi()
-            ])];
+            $sMenuManage = '';
+            if(($oMenuManage = BxDolMenu::getObjectInstance($this->_oConfig->getObject('menu_item_manage'))) !== false) {
+                $oMenuManage->setEvent($aEvent);
+                $sMenuManage = $oMenuManage->getCodeApi();
+            }
+
+            return [
+                bx_api_get_block('entity_author', [
+                    'author_data' => BxDolProfile::getData($aResult[$CNF['FIELD_OBJECT_OWNER_ID']]),
+                    'entry_date' => !empty($aEvent[$CNF['FIELD_ADDED']]) ? $aEvent[$CNF['FIELD_ADDED']] : '',
+                    'entry_context' => !empty($CNF[$sFldOpv]) && (int)$aEvent[$CNF[$sFldOpv]] < 0 ? BxDolProfile::getData(abs((int)$aEvent[$CNF[$sFldOpv]])) : '',
+                    'menu_manage' => $sMenuManage
+                ])
+            ];
         }
 
         $oForm = BxDolForm::getObjectInstance($this->_oConfig->getObject('form_post'), $this->_oConfig->getObject('form_display_post_view'), $this);