AntonLV hace 6 años
padre
commit
97127082d7

+ 7 - 2
template/scripts/BxBaseMenu.php

@@ -41,14 +41,19 @@ class BxBaseMenu extends BxDolMenu
         $aVars = $this->_getTemplateVars ();
         if (!empty($aVars['bx_repeat:menu_items'])) {
             $this->_addJsCss();
-            $s = $this->_oTemplate->parseHtmlByName($this->_aObject['template'], $aVars);
+            $s = $this->_getCode($this->_aObject['template'], $aVars);
         }
 
         if (isset($GLOBALS['bx_profiler'])) $GLOBALS['bx_profiler']->endMenu($sMenuTitle);
 
         return $s;
     }
-    
+
+    protected function _getCode($sTmplName, $aTmplVars)
+    {
+        return $this->_oTemplate->parseHtmlByName($sTmplName, $aTmplVars);
+    }
+
     public function getCodeItem ($sName)
     {
         if(empty($sName))

+ 14 - 2
template/scripts/BxBaseMenuCustom.php

@@ -10,18 +10,30 @@
 
 class BxBaseMenuCustom extends BxTemplMenuMoreAuto
 {
+    protected static $_sTmplContent;
     protected static $_sTmplContentItem;
 
     public function __construct($aObject, $oTemplate = false)
     {
         parent::__construct($aObject, $oTemplate);
 
+        if(empty(self::$_sTmplContent))
+            self::$_sTmplContent = $this->_oTemplate->getHtml($aObject['template']);
+
         if(empty(self::$_sTmplContentItem))
             self::$_sTmplContentItem = $this->_oTemplate->getHtml('menu_custom_item.html');
 
         $this->_sTmplNameItemMore = 'menu_custom_item_more.html';
     }
 
+    protected function _getCode($sTmplName, $aTmplVars)
+    {
+        if($sTmplName != $this->_aObject['template'])
+            return parent::_getCode($sTmplName, $aTmplVars);
+
+        return $this->_oTemplate->parseHtmlByContent(self::$_sTmplContent, $aTmplVars);
+    }
+
     protected function _getMenuItem ($aItem)
     {
     	if (isset($aItem['active']) && !$aItem['active'])
@@ -74,9 +86,9 @@ class BxBaseMenuCustom extends BxTemplMenuMoreAuto
         if($aItem === false)
             return false;
 
-        return $this->_oTemplate->parseHtmlByName($this->_getTmplNameItemMore(), array(
+        return $this->_oTemplate->parseHtmlByContent($this->_getTmplContentItemMore(), array(
             'item' => $this->_getMenuItemDefault($aItem),
-            'popup' => BxTemplFunctions::getInstance()->transBox($this->_aHtmlIds['more_auto_popup'], $this->_oTemplate->parseHtmlByName($this->_getTmplNameItemMorePopup(), array(
+            'popup' => BxTemplFunctions::getInstance()->transBox($this->_aHtmlIds['more_auto_popup'], $this->_oTemplate->parseHtmlByContent($this->_getTmplContentItemMorePopup(), array(
                 'content' => ''
             )), true)
         ));

+ 15 - 6
template/scripts/BxBaseMenuMoreAuto.php

@@ -12,6 +12,9 @@ define('BX_DEF_MENU_ITEM_MORE_AUTO', 'more-auto');
 
 class BxBaseMenuMoreAuto extends BxTemplMenu
 {
+    protected static $_sTmplContentItemMore;
+    protected static $_sTmplContentItemMorePopup;
+
     protected $_sTmplNameItemMore;
     protected $_sTmplNameItemMorePopup;
 
@@ -110,7 +113,7 @@ class BxBaseMenuMoreAuto extends BxTemplMenu
             return parent::_getMenuItem($aItem);
 
         $aItem['onclick'] = $this->_getJsObjectMoreAuto() . '.more(this);';
-        $aItem['popup'] = BxTemplFunctions::getInstance()->transBox($this->_aHtmlIds['more_auto_popup'], $this->_oTemplate->parseHtmlByName($this->_getTmplNameItemMorePopup(), array(
+        $aItem['popup'] = BxTemplFunctions::getInstance()->transBox($this->_aHtmlIds['more_auto_popup'], $this->_oTemplate->parseHtmlByContent($this->_getTmplContentItemMorePopup(), array(
             'content' => ''
         )), true);
 
@@ -131,15 +134,21 @@ class BxBaseMenuMoreAuto extends BxTemplMenu
     {
         return $this->_sJsObjectMoreAuto;
     }
-
-    protected function _getTmplNameItemMore()
+    
+    protected function _getTmplContentItemMore()
     {
-        return $this->_sTmplNameItemMore;
+        if(empty(self::$_sTmplContentItemMore))
+            self::$_sTmplContentItemMore = $this->_oTemplate->getHtml($this->_sTmplNameItemMore);
+
+        return self::$_sTmplContentItemMore;
     }
 
-    protected function _getTmplNameItemMorePopup()
+    protected function _getTmplContentItemMorePopup()
     {
-        return $this->_sTmplNameItemMorePopup;
+        if(empty(self::$_sTmplContentItemMorePopup))
+            self::$_sTmplContentItemMorePopup = $this->_oTemplate->getHtml($this->_sTmplNameItemMorePopup);
+
+        return self::$_sTmplContentItemMorePopup;
     }
 }