diff --git a/blocklanguages-header.tpl b/blocklanguages-header.tpl new file mode 100644 index 0000000..d0fdb3d --- /dev/null +++ b/blocklanguages-header.tpl @@ -0,0 +1,10 @@ +{foreach from=$languages key=k item=language name="languages"} + {if $language.iso_code != $lang_iso} + {assign var=indice_lang value=$language.id_lang} + {if isset($lang_rewrite_urls.$indice_lang)} + + {else} + + {/if} + {/if} +{/foreach} diff --git a/blocklanguages.php b/blocklanguages.php index 02031b6..e571230 100644 --- a/blocklanguages.php +++ b/blocklanguages.php @@ -51,37 +51,40 @@ public function install() protected function _prepareHook($params) { + static $default_rewrite; $languages = Language::getLanguages(true, $this->context->shop->id); if (!count($languages)) return false; - $link = new Link(); - if ((int)Configuration::get('PS_REWRITING_SETTINGS')) { - $default_rewrite = array(); - if (Dispatcher::getInstance()->getController() == 'product' && ($id_product = (int)Tools::getValue('id_product'))) - { - $rewrite_infos = Product::getUrlRewriteInformations((int)$id_product); - foreach ($rewrite_infos as $infos) - $default_rewrite[$infos['id_lang']] = $link->getProductLink((int)$id_product, $infos['link_rewrite'], $infos['category_rewrite'], $infos['ean13'], (int)$infos['id_lang']); - } + if (!is_array($default_rewrite)) { + $link = new Link(); - if (Dispatcher::getInstance()->getController() == 'category' && ($id_category = (int)Tools::getValue('id_category'))) - { - $rewrite_infos = Category::getUrlRewriteInformations((int)$id_category); - foreach ($rewrite_infos as $infos) - $default_rewrite[$infos['id_lang']] = $link->getCategoryLink((int)$id_category, $infos['link_rewrite'], $infos['id_lang']); - } + $default_rewrite = array(); + if (Dispatcher::getInstance()->getController() == 'product' && ($id_product = (int)Tools::getValue('id_product'))) + { + $rewrite_infos = Product::getUrlRewriteInformations((int)$id_product); + foreach ($rewrite_infos as $infos) + $default_rewrite[$infos['id_lang']] = $link->getProductLink((int)$id_product, $infos['link_rewrite'], $infos['category_rewrite'], $infos['ean13'], (int)$infos['id_lang']); + } + + if (Dispatcher::getInstance()->getController() == 'category' && ($id_category = (int)Tools::getValue('id_category'))) + { + $rewrite_infos = Category::getUrlRewriteInformations((int)$id_category); + foreach ($rewrite_infos as $infos) + $default_rewrite[$infos['id_lang']] = $link->getCategoryLink((int)$id_category, $infos['link_rewrite'], $infos['id_lang']); + } - if (Dispatcher::getInstance()->getController() == 'cms' && (($id_cms = (int)Tools::getValue('id_cms')) || ($id_cms_category = (int)Tools::getValue('id_cms_category')))) - { - $rewrite_infos = (isset($id_cms) && !isset($id_cms_category)) ? CMS::getUrlRewriteInformations($id_cms) : CMSCategory::getUrlRewriteInformations($id_cms_category); - foreach ($rewrite_infos as $infos) + if (Dispatcher::getInstance()->getController() == 'cms' && (($id_cms = (int)Tools::getValue('id_cms')) || ($id_cms_category = (int)Tools::getValue('id_cms_category')))) { - $arr_link = (isset($id_cms) && !isset($id_cms_category)) ? - $link->getCMSLink($id_cms, $infos['link_rewrite'], null, $infos['id_lang']) : - $link->getCMSCategoryLink($id_cms_category, $infos['link_rewrite'], $infos['id_lang']); - $default_rewrite[$infos['id_lang']] = $arr_link; + $rewrite_infos = (isset($id_cms) && !isset($id_cms_category)) ? CMS::getUrlRewriteInformations($id_cms) : CMSCategory::getUrlRewriteInformations($id_cms_category); + foreach ($rewrite_infos as $infos) + { + $arr_link = (isset($id_cms) && !isset($id_cms_category)) ? + $link->getCMSLink($id_cms, $infos['link_rewrite'], null, $infos['id_lang']) : + $link->getCMSCategoryLink($id_cms_category, $infos['link_rewrite'], $infos['id_lang']); + $default_rewrite[$infos['id_lang']] = $arr_link; + } } } $this->smarty->assign('lang_rewrite_urls', $default_rewrite); @@ -97,9 +100,9 @@ protected function _prepareHook($params) */ public function hookDisplayTop($params) { - if (!$this->_prepareHook($params)) - return; - return $this->display(__FILE__, 'blocklanguages.tpl'); + if ($this->_prepareHook($params)) { + return $this->display(__FILE__, 'blocklanguages.tpl'); + } } public function hookDisplayNav($params) @@ -111,6 +114,9 @@ public function hookDisplayNav($params) public function hookDisplayHeader($params) { $this->context->controller->addCSS($this->_path.'blocklanguages.css', 'all'); + if ($this->_prepareHook($params)) { + return $this->display(__FILE__, 'blocklanguages-header.tpl'); + } } }