Jump to content

[Résolu]Comment afficher un header.tpl différent en fonction de id-lang avec la Version 4 de PS ?


Recommended Posts

Bonsoir,

 

Comment récupéré id-lang avec le Version 4 de PS ?

Jusqu'à présent dans la version 3 j'utilisai dans header.php:

if ($cookie->id_lang == 1)

 

Mais dans la version 4, c'est dans le fichier FrontController.php que je dois tester la langue

Et if ($cookie->id_lang == 1) ne donne rien

echo $cookie->id_lang; n'affiche rien...

 

Quelle est la manière de récupérer la variable lang-iso ou id-lang (1 pour anglais, 2 pour français...) ?

 

Merci

Edited by scoobi (see edit history)
Link to comment
Share on other sites

Merci pour ta réponse ;)
if ($cookie->indice_lang ==1) ne donne rien non plus...

Il y a eu du changement dans la V4...
J'ai l'impression que puisqu'il est impossible de lire le contenu d'une variable, c'est donc qu'elle n'est pas chargée à cet endroit du code
Je suis dans la fonction "public function displayHeader()"

Cela dit, dans la fonction "public function init()", il semble y avoir des appels, mais je n'arrive pas à les utiliser

// Switch language if needed and init cookie language
       if ($iso = Tools::getValue('isolang') AND Validate::isLanguageIsoCode($iso) AND ($id_lang = (int)(Language::getIdByIso($iso))))
           $_GET['id_lang'] = $id_lang;

       Tools::switchLanguage();
       Tools::setCookieLanguage();

       /* attribute id_lang is often needed, so we create a constant for performance reasons */
       define('_USER_ID_LANG_', (int)$cookie->id_lang);

Link to comment
Share on other sites

En faisant ceci je peux lire la variable id_lang

$cookie = new Cookie('ps');
if ($cookie->id_lang ==1) echo "en=$cookie->id_lang";
if ($cookie->id_lang ==2) echo "fr=$cookie->id_lang";



Mais quand je change de langue, le id_lang ne se rafraichit pas, je doit faire un F5 pour le rafraichir
Du coup ce n'est peut être pas dans ce fichier que je dois faire ma modif ?
C'est peut-être à l'endroit on il y la détection de clique sur les drapeaux
Merci de votre aide

Link to comment
Share on other sites

Voici mon code situé dans Frontcontroller.php dans la fonction "function displayHeader()"
La je sèche!
Quand je clique sur les drapeaux, la prise en compte du header_lang1 ou header_lang2 à toujours un temps de retard
Je dois faire F5 pour que le bon header s'affiche avec le bon drapeau
Le fait de cliquer sur un drapeau ne rafraichit pas ce code!
Merci de votre aide

//self::$smarty->display(_PS_THEME_DIR_.'header.tpl');

$cookie = new Cookie('ps');
Tools::setCookieLanguage();

if ($cookie->id_lang ==1) echo "en=$cookie->id_lang";
if ($cookie->id_lang ==2) echo "fr=$cookie->id_lang";

if ($cookie->id_lang == 1) { self::$smarty->display(_PS_THEME_DIR_.'header_lang1.tpl');}
else if ($cookie->id_lang == 2) { self::$smarty->display(_PS_THEME_DIR_.'header_lang2.tpl');}

Link to comment
Share on other sites

  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...