Просмотр исходного кода

Ticket #3775 - Hide page submenu section if Submenu is disabled in Pages builder.

AntonLV 4 лет назад
Родитель
Сommit
9ec7946b51
3 измененных файлов с 19 добавлено и 12 удалено
  1. 6 1
      inc/classes/BxDolPage.php
  2. 13 2
      inc/classes/BxDolTemplate.php
  3. 0 9
      template/scripts/BxBaseMenuSubmenu.php

+ 6 - 1
inc/classes/BxDolPage.php

@@ -602,7 +602,12 @@ class BxDolPage extends BxDolFactory implements iBxDolFactoryObject, iBxDolRepla
     {
         return $this->_isVisiblePage($this->_aObject);
     }
-    
+
+    public function isVisiblePageSubmenu ()
+    {
+        return $this->_aObject['submenu'] != 'disabled';
+    }
+
     public function isEditAllowed ()
     {
         return false;

+ 13 - 2
inc/classes/BxDolTemplate.php

@@ -1693,9 +1693,20 @@ class BxDolTemplate extends BxDolFactory implements iBxDolSingleton
                     $sRet = $oMenu->getClass();
                 break;
             case 'site_submenu_hidden':
+                $sClass = 'bx-menu-main-bar-hidden';
+
+                $oPage = BxDolPage::getObjectInstanceByURI();
+                if($oPage !== false && !$oPage->isVisiblePageSubmenu()) {
+                    $sRet = $sClass;
+                    break;
+                }
+
                 $oMenu = BxDolMenu::getObjectInstance('sys_site_submenu');
-                if($oMenu)
-                    $sRet = $oMenu->getClassHidden();
+                if($oMenu !== false && !$oMenu->isVisible()) {
+                    $sRet = $sClass;
+                    break;
+                }
+
                 break;
             case 'dol_images':
                 $sRet = $this->_processJsImages();

+ 0 - 9
template/scripts/BxBaseMenuSubmenu.php

@@ -118,15 +118,6 @@ class BxBaseMenuSubmenu extends BxTemplMenu
     {
         return $this->isVisible() && $this->_oObjectSubmenu->getTemplateId() == BX_MENU_TEMPLATE_SUBMENU_MORE_AUTO ? 'bx-menu-more-auto' : '';
     }
-    
-    /**
-     * Get class
-     * @return class
-     */
-    public function getClassHidden ()
-    {
-        return !$this->isVisible() ? 'bx-menu-main-bar-hidden' : '';
-    }
 
     /**
      * Get menu code.