Kaynağa Gözat

Ticket #4148 - Build-in API support: Page submenu.

AntonLV 3 yıl önce
ebeveyn
işleme
58888676e8

+ 13 - 0
template/scripts/BxBaseMenu.php

@@ -174,6 +174,19 @@ class BxBaseMenu extends BxDolMenu
         if (!$this->_isVisible($a))
             return false;
 
+        if ($this->_bIsApi) {
+            list ($sIcon, $sIconUrl) = $this->_getMenuIcon($a);
+
+            return [
+                'id' => $a['id'],
+                'name' => $a['name'],
+                'title' => _t($a['title']),
+                'link' => isset($a['link']) ? $this->_oPermalinks->permalink($a['link']) : '',
+                'icon' => $sIcon ? $sIcon : '',
+                'image' => $sIconUrl ? $sIconUrl : ''
+            ];
+        }
+
         $a['object'] = $this->_sObject;
 
         $a['title'] = _t($a['title']);

+ 11 - 0
template/scripts/BxBaseMenuSubmenu.php

@@ -134,6 +134,17 @@ class BxBaseMenuSubmenu extends BxTemplMenu
         $this->_addJsCss();
         return $this->_oObjectSubmenu->getCode();
     }
+    
+    public function getCodeAPI ()
+    {
+        if(!$this->isVisible())
+            return [];
+
+        if(!empty($this->_iContentId) && method_exists($this->_oObjectSubmenu, 'setContentId'))
+            $this->_oObjectSubmenu->setContentId($this->_iContentId);
+
+        return $this->_oObjectSubmenu->getCodeAPI();
+    }
 
     public function getPageCoverParams ()
     {

+ 7 - 2
template/scripts/BxBasePage.php

@@ -400,7 +400,7 @@ class BxBasePage extends BxDolPage
      */
     public function getPage ()
     {
-        $a = array(
+        $a = [
             'id' => $this->_aObject['id'],
             'title' => $this->_getPageTitle(),
             'uri' => $this->_aObject['uri'],
@@ -410,7 +410,11 @@ class BxBasePage extends BxDolPage
             'type' => $this->getType (),
             'layout' => $this->_aObject['layout_id'],
             'elements' => $this->getPageBlocks (),
-        );
+        ];
+
+        if (($oMenuSubmenu = BxDolMenu::getObjectInstance('sys_site_submenu')) !== false)
+            $a['menu'] = $oMenuSubmenu->getCodeAPI();
+
         if (isLogged()) {
             $o = BxDolProfile::getInstance();
             $a['user'] = [
@@ -423,6 +427,7 @@ class BxBasePage extends BxDolPage
                 'status' => $o->getStatus(),
             ];
         }
+
         return $a;
     }