tenuis Posted September 28, 2012 Share Posted September 28, 2012 (edited) Bonjour à tous, Je suis en train de développer un site sous 1.5.0.17 et je découvre la nouvelle manière d'organiser les modules. J'ai trouvé un excellent tuto ici : http://bit.ly/N1RdKh J'ai voulu l'adapter pour faire une chose très simple : afficher le contenu d'un tpl pour pouvoir ajouter une page entièrement personnalisée. Cela fonctionne très bien, mais j'ai un problème pour changer la langue du site lorsque je suis sur cette page, l'id_lang change dans l'URL, mais tout le contenu reste avec la langue avec laquelle j'ai accédé à la page. Si j'accède à toute autre page, le changement de langue se fait bien, et lorsque je retourne sur la page de mon module, la traduction fonctionne parfaitement. Lorsque je récupère l'id_lang du cookie, je m'aperçois qu'elle n'est pas updatée sur mon module, et c'est visiblement cette valeur qui est utilisée et non celle de l'url. J'ai essayé pendant des heures de comprendre le fonctionnement du changement de langue, mais il m'échappe encore et je suis à court d'idées, aussi je me tourne vers vous. Voici la structure de mon module : En voici le contenu : pagestatic/pagestatic.php <?php class PageStatic extends Module { public function __construct() { $this->name = 'pagestatic'; $this->tab = 'pagestatic'; $this->version = 0.1; $this->author = 'Tenuis'; $this->displayName = $this->l('Static Pages'); $this->description = $this->l('Pages supplementaires'); parent :: __construct(); } public function install() { return parent::install(); } } pagestatic/controllers/front/static.php <?php class PageStaticStaticModuleFrontController extends ModuleFrontController { public function initContent() { parent::initContent(); $page = Tools::getValue('page'); $lang = Tools::getValue('id_lang'); $cookielang = $this->context->cookie->id_lang; $this->context->smarty->assign('page', $page); $this->context->smarty->assign('lang', $lang); $this->context->smarty->assign('cookielang', $cookielang); $this->setTemplate('page.tpl'); } } pagestatic/views/templates/front/page.tpl page demandee = {$page}<br /> langue url = {$lang} <br /> langue cookie = {$cookielang} <br /> {l s='Test EN' mod='pagestatic'} J'accède à la page avec : <a href="{$link->getModuleLink('pagestatic', 'static', ['page' => 'test'])}">test page</a> Qui me renvoie vers : index.php?controller=static&page=test&fc=module&module=pagestatic&id_lang=1 La page s'affiche avec : page demandee = test langue url = 1 langue cookie = 1 Test EN Lorsque je change la langue pour switcher en français, la langue url est bien 4, mais le cookie reste à 1 et l'intégralité du site reste en anglais. Lorsque la langue est changée en dehors de cette page, le site passe en français et lors du retour sur la page du module, celui-ci est bien traduit, Test EN devient Test FR et les langues URL et cookie sont bien à 4. Merci pour votre aide. Edited September 28, 2012 by tenuis (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now