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');
+ }
}
}