1, EsiConf::FLD_PURGE_CONTROLLERS => 'StCompareCompareModuleFrontController?custom_handler', EsiConf::FLD_IGNORE_EMPTY => 1, ]; $this->esiConf = new EsiConf(self::NAME, EsiConf::TYPE_INTEGRATED, $confData); $this->esiConf->setCustomHandler($this); $this->registerEsiModule(); $this->addCheckPurgeControllerCustomHandler('StCompareCompareModuleFrontController', $this); return true; } public function canInject(&$params) { if ($params['pt'] != 'rw') { return false; } if (stripos($params['h'], 'Product') !== false) { // product level, adjust params $pid = Tools::getValue('id_product'); $params['id_product'] = $pid; // item cache is for related esi block, do not save at product id level } return true; } public function getTags($params) { $tags = ['compare']; if (isset($params['id_product'])) { $tags[] = 'compare_' . $params['id_product']; } return $tags; } public function getNoItemCache($params) { return isset($params['id_product']); } //id_product,StCompareCompareModuleFrontController?action' protected function checkPurgeControllerCustomHandler($lowercase_controller_class, &$tags) { // * @param type $tags = ['pub' => [], 'priv' => []]; if (Tools::getValue('action') == false) { return; } $pid = Tools::getValue('id_product'); if ($pid) { $tags['priv'][] = "compare_$pid"; // addCompareProduct, deleteCompareProduct } else { $tags['priv'][] = 'compare'; // deleteAllCompareProducts } } } LscStCompare::register();