Jump to content

Module simple MVC 1.5.0.17 - Problème de traduction


Recommended Posts

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 :

57c5f61863b44e14704cba26f4f0a.png

 

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 by tenuis (see edit history)
Link to comment
Share on other sites

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...