AntonLV 5 лет назад
Родитель
Сommit
737af6203a

+ 9 - 13
modules/boonex/lucid/data/template/system/scripts/BxTemplMenuSite.php

@@ -12,6 +12,9 @@
  */
 class BxTemplMenuSite extends BxTemplMenuMoreAuto
 {
+    protected $_sModule;
+    protected $_oModule;
+    
     protected $_bSiteMenu;
     protected $_bSiteMenuSubmenu;
 
@@ -19,6 +22,11 @@ class BxTemplMenuSite extends BxTemplMenuMoreAuto
     {
         parent::__construct ($aObject, $oTemplate);
 
+        $this->_sModule = 'bx_lucid';
+        $this->_oModule = BxDolModule::getInstance($this->_sModule);
+
+        $this->_sJsClassMoreAuto = 'BxLucidMenuMoreAuto';
+
         $this->_bSiteMenu = $this->_sObject == 'sys_site';
         $this->_bSiteMenuSubmenu = false;
     }
@@ -32,6 +40,7 @@ class BxTemplMenuSite extends BxTemplMenuMoreAuto
             $sStyle = '';
         }
 
+        $this->_oModule->_oTemplate->addJs(array('menu_site.js'));
         return '<div id="bx-sliding-menu-' . $this->_sObject . '" class="' . $sClass . ' bx-def-z-index-nav" style="' . $sStyle . '"><div class="bx-sliding-menu-main-cnt">' . parent::getCode() . '</div></div>';
     }
 
@@ -66,19 +75,6 @@ class BxTemplMenuSite extends BxTemplMenuMoreAuto
 
         return $aResult;
     }
-
-    protected function _getJsCodeMoreAuto()
-    {
-        $sJsObject = $this->_getJsObjectMoreAuto();
-        $aJsParams = array(
-            'sObject' => $this->_sObject,
-            'iItemsStatic' => $this->_iMoreAutoItemsStatic,
-            'bItemsStaticOnly' => $this->_bMoreAutoItemsStaticOnly ? 1 : 0,
-            'aHtmlIds' => $this->_getHtmlIds()
-        );
-
-        return $this->_oTemplate->_wrapInTagJsCode("if(!" . $sJsObject . ") {var " . $sJsObject . " = new BxDolMenuMoreAuto(" . json_encode($aJsParams) . "); $(document).ready(function(){" . $sJsObject . ".init();});}");
-    }
 }
 
 /** @} */

+ 31 - 0
modules/boonex/lucid/js/menu_site.js

@@ -0,0 +1,31 @@
+/**
+ * Copyright (c) UNA, Inc - https://una.io
+ * MIT License - https://opensource.org/licenses/MIT
+ *
+ * @defgroup    Lucid Lucid template
+ * @ingroup     UnaModules
+ *
+ * @{
+ */
+
+function BxLucidMenuMoreAuto(oOptions) {
+    BxDolMenuMoreAuto.call(this, oOptions);
+}
+
+BxLucidMenuMoreAuto.prototype = Object.create(BxDolMenuMoreAuto.prototype);
+BxLucidMenuMoreAuto.prototype.constructor = BxLucidMenuMoreAuto;
+
+BxLucidMenuMoreAuto.prototype.init = function(bForceInit)
+{
+    BxDolMenuMoreAuto.prototype.init.call(this);
+
+    var $this = this;
+
+    $(document).ready(function() {
+        $this.update();
+    });
+
+    $('#bx-toolbar').find('img').bind('load', function() {
+        $this.update();
+    });
+};

+ 11 - 1
template/scripts/BxBaseMenuMoreAuto.php

@@ -21,6 +21,8 @@ class BxBaseMenuMoreAuto extends BxTemplMenu
     protected $_bMoreAuto;
     protected $_iMoreAutoItemsStatic;
     protected $_bMoreAutoItemsStaticOnly;
+    
+    protected $_sJsClassMoreAuto;
     protected $_sJsObjectMoreAuto;
 
     protected $_aHtmlIds;
@@ -35,6 +37,8 @@ class BxBaseMenuMoreAuto extends BxTemplMenu
         $this->_bMoreAuto = null;
         $this->_iMoreAutoItemsStatic = 1;
         $this->_bMoreAutoItemsStaticOnly = false;
+        
+        $this->_sJsClassMoreAuto = 'BxDolMenuMoreAuto';
         $this->_sJsObjectMoreAuto = 'oMenuMoreAuto' . bx_gen_method_name($this->_sObject);
 
         $sPrefix = str_replace('_', '-', $this->_sObject);
@@ -94,6 +98,7 @@ class BxBaseMenuMoreAuto extends BxTemplMenu
 
     protected function _getJsCodeMoreAuto()
     {
+        $sJsClass = $this->_getJsClassMoreAuto();
         $sJsObject = $this->_getJsObjectMoreAuto();
         $aJsParams = array(
             'sObject' => $this->_sObject,
@@ -102,7 +107,7 @@ class BxBaseMenuMoreAuto extends BxTemplMenu
             'aHtmlIds' => $this->_getHtmlIds()
         );
 
-        return $this->_oTemplate->_wrapInTagJsCode("if(!" . $sJsObject . ") {var " . $sJsObject . " = new BxDolMenuMoreAuto(" . json_encode($aJsParams) . "); " . $sJsObject . ".init();}");
+        return $this->_oTemplate->_wrapInTagJsCode("if(!" . $sJsObject . ") {var " . $sJsObject . " = new " . $sJsClass . "(" . json_encode($aJsParams) . "); " . $sJsObject . ".init();}");
     }
     
     protected function _getMenuItem ($aItem)
@@ -130,6 +135,11 @@ class BxBaseMenuMoreAuto extends BxTemplMenu
         return $this->_aHtmlIds['main'];
     }
 
+    protected function _getJsClassMoreAuto()
+    {
+        return $this->_sJsClassMoreAuto;
+    }
+
     protected function _getJsObjectMoreAuto()
     {
         return $this->_sJsObjectMoreAuto;