togari Posted March 12, 2013 Share Posted March 12, 2013 Bonjour à tous. Voila je suis débutant sur prestashop. J'ai fait un premier tuto afin de découvrir un peu l'outil. J'ai créer un module, je l'ai attacher à la colonne de gauche. Pour le moment mon module affiche une simple phrase : 'Welcome to my shop!'. Je voudrais traduire cette phrase. Vous allez me dire que c'est simple et qu'il faut que j'utilise la fonction 'l' dans le fichier .tpl. Sauf que le problème c'est que dans mon fichier .tpl, j'ai une variable smarty, et du coup ma phrase est dans le fichier .php qui porte le même nom. Voila mon code : --------------------------------------------------------------------------------------------------------------- mymodule_page.php : <?php global $smarty; include( '../../config/config.inc.php' ); include( '../../header.php' ); $mymodule = new MyModule(); $message = $mymodule->l( 'Welcome to my shop!' ); $smarty->assign( 'messageSmarty', $message ); // creation of our variable $smarty->display( dirname(__FILE__) . '/mymodule_page.tpl' ); include( '../../footer.php' ); ?> mymodule_page.tpl : -------------------------------------------------------------------------------------------------------------- {$messageSmarty} Voila j’espère avoir été assez clair, si ce n'est pas le cas ne manquez pas de me le faire remarquer ^^ Link to comment Share on other sites More sharing options...
Olivier CLEMENCE Posted March 14, 2013 Share Posted March 14, 2013 tu as déjà tout fait car $mymodule->l( 'Welcome to my shop!' ); c'est déjà l'appel classique pour que ta variable soit multilangue. Normalement dans l'onglet traduction du backoffice (dans module déjà installé) tu va retrouver cette phrase. Par contre ce que tu a fait m'étonne un peu car normalement pour afficher ton module tu devrais plutôt utiliser les fonction de type displayLeftColunm... et comme tu es dans ce cas directement dans ta classe module tu utiliserai plutôt $this->l('') Link to comment Share on other sites More sharing options...
togari Posted March 14, 2013 Author Share Posted March 14, 2013 Salut merci pour ta réponse mais justement elle n'apparait pas dans l'onglet traduction. En ce qui concerne l'affichage du module j'utilise un fichier tpl pour afficher le corp de mon module. Mais toi tu n'appelle pas tes fichiers tpl dans tes fonctions hook. Link to comment Share on other sites More sharing options...
Olivier CLEMENCE Posted March 15, 2013 Share Posted March 15, 2013 (edited) En règle générale j'ai un hook principal qui va appeler les tpl et les autres vont faire appel à ce hook principal (ça dépend bien sur si j'ai besoin du même tpl pour tous les hook). Pour ton problème de traduction j'avoue que je ne sais pas mais la façon dont tu t'y prend me paraît bizarre. Si tu es dans un fichier php ça ne me paraît pas logique que tu fasse un include d'un header et d'un footer. Je n'ai pas l'impression que la logique MVC soit bien respectée et du coup il n'est pas impossible que Prestashop n'y comprenne pas grand chose non plus et par conséquent ne t'affiche pas ton texte dans les traductions. Bien sûr je peux me tromper, c'est difficile de savoir avec juste le bout de code de ton premier post. As-tu regardé la doc officielle ? Ils expliquent comment créer un premier module basique: http://doc.prestasho...unpremiermodule Edited March 15, 2013 by maniT4c (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