Browse Source

Profiler: repeating use of the same nav menu isn't counted correctly #5180

Alex Trofimov 1 year ago
parent
commit
217791fa38
2 changed files with 10 additions and 3 deletions
  1. 5 0
      modules/boonex/profiler/classes/BxProfiler.php
  2. 5 3
      template/scripts/BxBaseMenu.php

+ 5 - 0
modules/boonex/profiler/classes/BxProfiler.php

@@ -335,6 +335,11 @@ class BxProfiler extends BxDol
             $this->logSqlQuery ($iTime, $this->_aQueries[$this->_sQueryIndex], $oStmt);
     }
 
+    function isMenu($sName)
+    {
+        return isset($this->_aMenus[$sName]);
+    }
+
     function beginMenu ($sName)
     {
         $this->_aMenus[$sName]['name'] = $sName;

+ 5 - 3
template/scripts/BxBaseMenu.php

@@ -53,11 +53,13 @@ class BxBaseMenu extends BxDolMenu
      */
     public function getCode ()
     {
-        $bCacheUsed = false;
-        $sRet = '';
         $sMenuTitle = isset($this->_aObject['title']) ? _t($this->_aObject['title']) : 'Menu-' . rand(0, PHP_INT_MAX);
+        if (isset($GLOBALS['bx_profiler']) && $GLOBALS['bx_profiler']->isMenu($sMenuTitle))
+            $sMenuTitle .= rand(0, PHP_INT_MAX);
         if (isset($GLOBALS['bx_profiler'])) $GLOBALS['bx_profiler']->beginMenu($sMenuTitle);
-
+        
+        $sRet = '';
+        $bCacheUsed = false;
         $sCacheKey = '';
         $mixedCache = null;
         // Use cache only if: