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

Ticket #3827 - Studio Dashboard: Chart in Cache block doesn't work.

AntonLV 4 лет назад
Родитель
Сommit
d58d160f86

+ 58 - 21
inc/classes/BxDolCacheUtilities.php

@@ -69,49 +69,41 @@ class BxDolCacheUtilities extends BxDol
             return $mixedResult;
 
         $bClear = $sMode == 'clear';
-
-        $sFuncCacheObject = $bClear ? '_clearObject' : '_getSizeObject';
-        $sFuncCacheFile = $bClear ? '_clearFile' : '_getSizeFile';
+        $sAction = $bClear ? '_clear' : '_getSize';
 
         $oTemplate = BxDolStudioTemplate::getInstance();
         switch ($sCache) {
             case 'db':
                 $oCacheDb = BxDolDb::getInstance()->getDbCacheObject();
-                $mixedResult = $this->$sFuncCacheObject($oCacheDb, 'db_');
+                $mixedResult = $this->{$sAction . 'Object'}($oCacheDb, 'db_');
                 break;
 
             case 'template':
                 $oCacheTemplates = $oTemplate->getTemplatesCacheObject();
-                $mixedResult = $this->$sFuncCacheObject($oCacheTemplates, $oTemplate->getCacheFilePrefix($sCache));
+                $mixedResult = $this->{$sAction . 'Object'}($oCacheTemplates, $oTemplate->getCacheFilePrefix($sCache));
                 break;
 
             case 'less':
-                $mixedResult = $this->$sFuncCacheFile($oTemplate->getCacheFilePrefix($sCache), BX_DIRECTORY_PATH_CACHE_PUBLIC);
+                $mixedResult = $this->{$sAction . 'File'}($oTemplate->getCacheFilePrefix($sCache), BX_DIRECTORY_PATH_CACHE_PUBLIC);
                 break;
 
             case 'css':
                 if($bClear)
                     $this->clear('less');
 
-                $mixedResult = $this->$sFuncCacheFile($oTemplate->getCacheFilePrefix($sCache), BX_DIRECTORY_PATH_CACHE_PUBLIC);
+                $mixedResult = $this->{$sAction . 'File'}($oTemplate->getCacheFilePrefix($sCache), BX_DIRECTORY_PATH_CACHE_PUBLIC);
                 break;
 
             case 'js':
-                $mixedResult = $this->$sFuncCacheFile($oTemplate->getCacheFilePrefix($sCache), BX_DIRECTORY_PATH_CACHE_PUBLIC);
-                break;
-                
-            case 'purifier':
-                HTMLPurifier_Bootstrap::registerAutoload();
-                $oConfig = HTMLPurifier_Config::createDefault();
-                $oConfig->set('Cache.DefinitionImpl', null);
-                $oHtmlPurifier = new HTMLPurifier($oConfig);
-                $oHtmlPurifier->purify('');
-                $mixedResult = array('code' => 0, 'message' => _t('_adm_dbd_msg_c_clean_success'));
+                $mixedResult = $this->{$sAction . 'File'}($oTemplate->getCacheFilePrefix($sCache), BX_DIRECTORY_PATH_CACHE_PUBLIC);
                 break;
-            case 'opcache':
-                if (function_exists('opcache_reset'))
-                    opcache_reset();
-                $mixedResult = array('code' => 0, 'message' => _t('_adm_dbd_msg_c_clean_success'));
+
+            default:
+                $sMethod = $sAction . bx_gen_method_name($sCache);
+                if(!method_exists($this, $sMethod))
+                    $sMethod = $sAction . 'Unsupported';
+
+                $mixedResult = $this->$sMethod();
                 break;
         }
 
@@ -141,6 +133,34 @@ class BxDolCacheUtilities extends BxDol
         return array('code' => 0, 'message' => _t('_adm_dbd_msg_c_clean_success'));
     }
 
+    protected function _clearPurifier()
+    {
+        HTMLPurifier_Bootstrap::registerAutoload();
+        $oConfig = HTMLPurifier_Config::createDefault();
+        $oConfig->set('Cache.DefinitionImpl', null);
+        $oHtmlPurifier = new HTMLPurifier($oConfig);
+        $oHtmlPurifier->purify('');
+        return ['code' => 0, 'message' => _t('_adm_dbd_msg_c_clean_success')];
+    }
+
+    protected function _clearOpcache()
+    {
+        if(function_exists('opcache_reset'))
+            opcache_reset();
+
+        return ['code' => 0, 'message' => _t('_adm_dbd_msg_c_clean_success')];
+    }
+
+    protected function _clearCustom()
+    {
+        return ['code' => 0, 'message' => _t('_adm_dbd_msg_c_clean_success')];
+    }
+
+    protected function _clearUnsupported()
+    {
+        return ['code' => 2, 'message' => _t('_adm_dbd_err_c_clean_unsupported')];
+    }
+
     protected function _getSizeObject($oCache, $sPrefix)
     {
         return $oCache->getSizeByPrefix ($sPrefix);
@@ -161,6 +181,23 @@ class BxDolCacheUtilities extends BxDol
 
         return $iSize;
     }
+
+    protected function _getSizeOpcache()
+    {
+        if(!function_exists('opcache_get_status'))
+            return 0;
+        
+        $mixedResult = opcache_get_status();
+        if(empty($mixedResult) || !is_array($mixedResult))
+            return 0;
+
+        return isset($mixedResult['memory_usage'], $mixedResult['memory_usage']['used_memory']) ? $mixedResult['memory_usage']['used_memory'] : 0;
+    }
+
+    protected function _getSizeUnsupported()
+    {
+        return 0;
+    }
 }
 
 /** @} */

+ 6 - 5
modules/boonex/english/data/langs/system/en.xml

@@ -638,13 +638,14 @@
         <string name="_adm_dbd_txt_c_less"><![CDATA[LESS]]></string>
         <string name="_adm_dbd_txt_c_clear_less"><![CDATA[Clear LESS cache]]></string>
     <string name="_adm_dbd_txt_c_clear_purifier"><![CDATA[Clear Purifier cache]]></string>
-	<string name="_adm_dbd_txt_c_js"><![CDATA[JavaScript]]></string>
-	<string name="_adm_dbd_txt_c_clear_js"><![CDATA[Clear JavaScript cache]]></string>
+    <string name="_adm_dbd_txt_c_js"><![CDATA[JavaScript]]></string>
+    <string name="_adm_dbd_txt_c_clear_js"><![CDATA[Clear JavaScript cache]]></string>
     <string name="_adm_dbd_txt_c_clear_custom"><![CDATA[Clear Custom cache]]></string>
     <string name="_adm_dbd_txt_c_clear_opcache"><![CDATA[Clear Opcache]]></string>
-	<string name="_adm_dbd_err_c_clean_failed"><![CDATA[Failed to clean cache]]></string>
-	<string name="_adm_dbd_msg_c_clean_success"><![CDATA[Cache was successfully cleaned]]></string>
-	<string name="_adm_dbd_msg_c_all_disabled"><![CDATA[All caches are disabled]]></string>
+    <string name="_adm_dbd_err_c_clean_failed"><![CDATA[Failed to clear cache]]></string>
+    <string name="_adm_dbd_err_c_clean_unsupported"><![CDATA[Сache clearing is unsupported]]></string>
+    <string name="_adm_dbd_msg_c_clean_success"><![CDATA[Cache was successfully cleared]]></string>
+    <string name="_adm_dbd_msg_c_all_disabled"><![CDATA[All caches are disabled]]></string>
     <string name="_adm_dsn_cnf_uninstall"><![CDATA[<h3>Uninstall "{0}" template?</h3><p>Uninstalling "{0}" template will also delete all of its data. Do you want to continue?</p>]]></string>
 	<string name="_adm_dsg_btn_delete"><![CDATA[Delete]]></string>
 	<string name="_adm_dsg_btn_make_default"><![CDATA[Make Default]]></string>

+ 9 - 8
modules/boonex/russian/data/langs/system/ru.xml

@@ -634,16 +634,17 @@
 	<string name="_adm_dbd_txt_c_clear_template"><![CDATA[Очистить кэш темы]]></string>
 	<string name="_adm_dbd_txt_c_css"><![CDATA[CSS]]></string>
 	<string name="_adm_dbd_txt_c_clear_css"><![CDATA[Очистить кэш CSS]]></string>
-  <string name="_adm_dbd_txt_c_less"><![CDATA[LESS]]></string>
-  <string name="_adm_dbd_txt_c_clear_less"><![CDATA[Очистить кэш LESS]]></string>
-  <string name="_adm_dbd_txt_c_clear_purifier"><![CDATA[Очистить кэш Purifier]]></string>
-	<string name="_adm_dbd_txt_c_js"><![CDATA[JavaScript]]></string>
-	<string name="_adm_dbd_txt_c_clear_js"><![CDATA[Очистить кэш JavaScript]]></string>
+    <string name="_adm_dbd_txt_c_less"><![CDATA[LESS]]></string>
+    <string name="_adm_dbd_txt_c_clear_less"><![CDATA[Очистить кэш LESS]]></string>
+    <string name="_adm_dbd_txt_c_clear_purifier"><![CDATA[Очистить кэш Purifier]]></string>
+    <string name="_adm_dbd_txt_c_js"><![CDATA[JavaScript]]></string>
+    <string name="_adm_dbd_txt_c_clear_js"><![CDATA[Очистить кэш JavaScript]]></string>
     <string name="_adm_dbd_txt_c_clear_custom"><![CDATA[Очистить специальный кэш]]></string>
     <string name="_adm_dbd_txt_c_clear_opcache"><![CDATA[Очистить Opcache]]></string>
-	<string name="_adm_dbd_err_c_clean_failed"><![CDATA[Не удалось очистить кэш]]></string>
-	<string name="_adm_dbd_msg_c_clean_success"><![CDATA[Кэш был удачно очищен]]></string>
-	<string name="_adm_dbd_msg_c_all_disabled"><![CDATA[Весь кэш был отключён]]></string>
+    <string name="_adm_dbd_err_c_clean_failed"><![CDATA[Очистка кэша не поддерживается]]></string>
+    <string name="_adm_dbd_err_c_clean_unsupported"><![CDATA[Clean cache unsupported]]></string>
+    <string name="_adm_dbd_msg_c_clean_success"><![CDATA[Кэш был удачно очищен]]></string>
+    <string name="_adm_dbd_msg_c_all_disabled"><![CDATA[Весь кэш был отключён]]></string>
     <string name="_adm_dsn_cnf_uninstall"><![CDATA[<h3>Удалить тему "{0}"?</h3><p>Удаление темы "{0}" также удалит все связанные с ней данные. Вы хотите продолжить?</p>]]></string>
     <string name="_adm_dsg_btn_delete"><![CDATA[Удалить]]></string>
 	<string name="_adm_dsg_btn_make_default"><![CDATA[Сделать основным]]></string>

+ 4 - 5
studio/classes/BxDolStudioDashboard.php

@@ -109,15 +109,14 @@ class BxDolStudioDashboard extends BxTemplStudioWidget
                         case 'less':
                         case 'css':
                         case 'js':
-                            $aResult = $oCacheUtilities->clear($sValue);
-                            break;
-
+                        case 'purifier':
+                        case 'opcache':
                         case 'custom':
-                            $aResult = array('code' => 0, 'message' => _t('_adm_dbd_msg_c_clean_success'));
+                            $aResult = $oCacheUtilities->clear($sValue);
                             break;
 
                         default:
-                            $aResult = array('code' => 1, 'message' => _t('_Error Occured'));
+                            $aResult = array('code' => 1, 'message' => _t('_error occured'));
                     }
 
                     if($aResult === false)