Bonne pratique pour l'utilisation des libellés (Lang) dans les tpl - Version imprimable +- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr) +-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html) +--- Forum : Général (https://forum.cmsmadesimple.fr/forum-10.html) +--- Sujet : Bonne pratique pour l'utilisation des libellés (Lang) dans les tpl (/thread-2591.html) |
Bonne pratique pour l'utilisation des libellés (Lang) dans les tpl - heriquet - 15/02/2013 Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~ Bonjour, Petite question technique : pour passer les traductions d'un module (perso) aux templates, j'ai croisé 2 méthodes : 1) On crée une variable smarty nommée proprement et à laquelle on assigne une valeur de $this->Lang('...'); 2) On passe le module en tant que variable smarty et on utilise directement $this->Lang() dans les templates. Cette seconde méthode est séduisante car elle réduit parfois considérablement la taille du code d'une action d'un module, mais est-elle réellement recommandable ? Merci pour vos éclaircissements ! Heriquet Bonne pratique pour l'utilisation des libellés (Lang) dans les tpl - jissey - 15/02/2013 Salut Heriquet (petit Eric?), je n'ai jamais vu la seconde méthode, tu as testé? Parce que $this-> dans un template, ça me parait bizarre... Ça m'intéresse de savoir dans quel module tu as vu ça. Bonne pratique pour l'utilisation des libellés (Lang) dans les tpl - heriquet - 15/02/2013 Salut Jissey, Je ne retombe pas sur le module (je suis sur 5 projets de front donc...) mais il y avait une variable $mod et le code était $mod->Lang('...'). Bonne pratique pour l'utilisation des libellés (Lang) dans les tpl - heriquet - 15/02/2013 Trouvé... C'est CGCalendar : Dans le template : Code : [== HTML ==] Bonne pratique pour l'utilisation des libellés (Lang) dans les tpl - jissey - 15/02/2013 houla! intéressant tout ça. Est-ce à dire qu'on peut accéder aux autres méthodes du modules? Ou il est le Président Développeur General? :p Il peut nous renseigner? Bonne pratique pour l'utilisation des libellés (Lang) dans les tpl - heriquet - 15/02/2013 A priori je dirais oui à partir du moment ou tu passes l'instance du module... Ceci étant un module de Calguy, j'ose espérer que c'est "propre" de travailler comme ca. Car cela évite de créer une variable par libellé si tu sais d'avance que tu n'en utiliseras que 10 sur les 60 libellés présents... Bonne pratique pour l'utilisation des libellés (Lang) dans les tpl - bess - 15/02/2013 réponse personnelle : les deux sont valable. La seconde a le mérite de faciliter le rôle de développement côté Template comme tu l'as dit seulement cela peut avoir un coût de montée en mémoire si tu fait un $smarty->assign() car une copie de tous les libellés est passée à smarty. Ma solution est de faire appel à $smarty->assignByRef() qui fait la même chose sans dupliquer en mémoire le contenu des langues. http://www.smarty.net/docs/en/api.assign.by.ref.tpl assignByref est également utile pour modifier dans le template à la volée le contenu des variables.... enfin je doute que ce soit vraiment un comportement intéressant Bonne pratique pour l'utilisation des libellés (Lang) dans les tpl - heriquet - 15/02/2013 Good to now ! Merci. Bon désormais je risque d'utiliser un peu plus la seconde méthode ;-). Bonne pratique pour l'utilisation des libellés (Lang) dans les tpl - heriquet - 18/02/2013 Bon alors j'ai testé le concept dans un module perso et ca marche pas mal... Dans l'action du module : Code : [== PHP ==] Dans le template : Code : [== HTML ==] Ca marche pas mal et c'est pas moins performant... Et surtout ca m'évitera d'avoir 150 variables de libellés alors que j'en utilise parfois que 15, en fonction du projet et du template... Bonne pratique pour l'utilisation des libellés (Lang) dans les tpl - bess - 18/02/2013 content que ça te serve Bonne pratique pour l'utilisation des libellés (Lang) dans les tpl - heriquet - 18/02/2013 J'espère surtout que mon post servira à d'autres ;-). Bonne pratique pour l'utilisation des libellés (Lang) dans les tpl - airelibre - 18/02/2013 Merci pour l'info Bess, je vais tester l'assignation par référence Pour le $mod->Lang c'est en effet très pratique pour le développement. Pour ma part, j'ai souvent à la fois le module en cours ($mod) et ma librairie ($aireLibs) dans laquelle je met les termes "génériques" traduits du style "name", "template", etc.. partagés entre les modules |