[*] MO: Improve performance with smarty cache on blocktopmenu
This commit is contained in:
1 parent
eb71ac91dc
commit
8856465a23
2 files changed
+21
-13
No files matched your search
@@ -787,14 +787,12 @@ class ShopCore extends ObjectModel
|
|||||||
*/
|
*/
|
||||||
public static function isFeatureActive()
|
public static function isFeatureActive()
|
||||||
{
|
{
|
||||||
if (!Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE'))
|
static $feature_active = null;
|
||||||
return false;
|
|
||||||
|
|
||||||
static $total = null;
|
if ($feature_active === null)
|
||||||
|
$feature_active = Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE') && (count(Db::getInstance()->getValue('SELECT COUNT(*) FROM '._DB_PREFIX_.'shop')) > 1);
|
||||||
|
|
||||||
if (is_null($total))
|
return $feature_active;
|
||||||
$total = Db::getInstance()->getValue('SELECT COUNT(*) FROM '._DB_PREFIX_.'shop');
|
|
||||||
return ($total > 1) ? true : false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function copyShopData($old_id, $tables_import = false, $deleted = false)
|
public function copyShopData($old_id, $tables_import = false, $deleted = false)
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ class Blocktopmenu extends Module
|
|||||||
{
|
{
|
||||||
private $_menu = '';
|
private $_menu = '';
|
||||||
private $_html = '';
|
private $_html = '';
|
||||||
|
private $user_groups;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Pattern for matching config values
|
* Pattern for matching config values
|
||||||
@@ -590,8 +591,8 @@ class Blocktopmenu extends Module
|
|||||||
|
|
||||||
$children = Category::getChildren((int)$id_category, (int)$id_lang, true, (int)$id_shop);
|
$children = Category::getChildren((int)$id_category, (int)$id_lang, true, (int)$id_shop);
|
||||||
$selected = ($this->page_name == 'category' && ((int)Tools::getValue('id_category') == $id_category)) ? ' class="sfHoverForce"' : '';
|
$selected = ($this->page_name == 'category' && ((int)Tools::getValue('id_category') == $id_category)) ? ' class="sfHoverForce"' : '';
|
||||||
$user_groups = Context::getContext()->customer->isLogged() ? Context::getContext()->customer->getGroups() : array(Configuration::get('PS_UNIDENTIFIED_GROUP'));
|
|
||||||
$is_intersected = array_intersect($category->getGroups(), $user_groups);
|
$is_intersected = array_intersect($category->getGroups(), $this->user_groups);
|
||||||
// filter the categories that the user is allowed to see and browse
|
// filter the categories that the user is allowed to see and browse
|
||||||
if (!empty($is_intersected))
|
if (!empty($is_intersected))
|
||||||
{
|
{
|
||||||
@@ -669,17 +670,26 @@ class Blocktopmenu extends Module
|
|||||||
|
|
||||||
public function hookTop($param)
|
public function hookTop($param)
|
||||||
{
|
{
|
||||||
$this->makeMenu();
|
$this->user_groups = ($this->context->customer->isLogged() ? $this->context->customer->getGroups() : array(Configuration::get('PS_UNIDENTIFIED_GROUP')));
|
||||||
|
$smarty_cache_id = 'blocktopmenu-'.(int)$this->context->shop->id.'-'.implode(', ',$this->user_groups).'-'.(int)$this->context->language->id.'-'.(int)Tools::getValue('id_category').'-'.(int)Tools::getValue('id_manufacturer').'-'.(int)Tools::getValue('id_supplier').'-'.(int)Tools::getValue('id_cms').'-'.(int)Tools::getValue('id_product');
|
||||||
|
|
||||||
$this->smarty->assign('MENU_SEARCH', Configuration::get('MOD_BLOCKTOPMENU_SEARCH'));
|
Tools::enableCache();
|
||||||
$this->smarty->assign('MENU', $this->_menu);
|
if (!$this->isCached('blocktopmenu.tpl', $smarty_cache_id))
|
||||||
$this->smarty->assign('this_path', $this->_path);
|
{
|
||||||
|
$this->makeMenu();
|
||||||
|
$this->smarty->assign('MENU_SEARCH', Configuration::get('MOD_BLOCKTOPMENU_SEARCH'));
|
||||||
|
$this->smarty->assign('MENU', $this->_menu);
|
||||||
|
$this->smarty->assign('this_path', $this->_path);
|
||||||
|
}
|
||||||
|
|
||||||
$this->context->controller->addJS($this->_path.'js/hoverIntent.js');
|
$this->context->controller->addJS($this->_path.'js/hoverIntent.js');
|
||||||
$this->context->controller->addJS($this->_path.'js/superfish-modified.js');
|
$this->context->controller->addJS($this->_path.'js/superfish-modified.js');
|
||||||
$this->context->controller->addCSS($this->_path.'css/superfish-modified.css');
|
$this->context->controller->addCSS($this->_path.'css/superfish-modified.css');
|
||||||
|
|
||||||
return $this->display(__FILE__, 'blocktopmenu.tpl');
|
$this->context->smarty->cache_lifetime = 31536000;
|
||||||
|
$html = $this->display(__FILE__, 'blocktopmenu.tpl', $smarty_cache_id);
|
||||||
|
Tools::restoreCacheSettings();
|
||||||
|
return $html;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getCMSCategories($recursive = false, $parent = 1, $id_lang = false)
|
private function getCMSCategories($recursive = false, $parent = 1, $id_lang = false)
|
||||||
|
|||||||
Reference in new issue
Block a user