Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.4
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN 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
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.4
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN 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
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 5,034
Sujets : 63
Inscription : Oct 2009
Réputation :
0
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.
Messages : 5,034
Sujets : 63
Inscription : Oct 2009
Réputation :
0
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.
Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
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('...').
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
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('...').
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
Trouvé... C'est CGCalendar :
Dans le template :
Code : [== HTML ==]
<a href="{$event.url}">{$mod->Lang('cal_more')}</a>
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
Trouvé... C'est CGCalendar :
Dans le template :
Code : [== HTML ==]
<a href="{$event.url}">{$mod->Lang('cal_more')}</a>
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 5,034
Sujets : 63
Inscription : Oct 2009
Réputation :
0
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?
Messages : 5,034
Sujets : 63
Inscription : Oct 2009
Réputation :
0
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?
Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
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...
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
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...
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
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
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
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
Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
Good to now ! Merci.
Bon désormais je risque d'utiliser un peu plus la seconde méthode ;-).
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
Good to now ! Merci.
Bon désormais je risque d'utiliser un peu plus la seconde méthode ;-).
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
Bon alors j'ai testé le concept dans un module perso et ca marche pas mal...
Dans l'action du module :
Code : [== PHP ==]
$smarty->assign_by_ref('w2ms',$this);
Dans le template : Code : [== HTML ==]
{$w2ms->Lang('estate_view_state')}
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...
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
Bon alors j'ai testé le concept dans un module perso et ca marche pas mal...
Dans l'action du module :
Code : [== PHP ==]
$smarty->assign_by_ref('w2ms',$this);
Dans le template : Code : [== HTML ==]
{$w2ms->Lang('estate_view_state')}
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...
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
content que ça te serve
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
content que ça te serve
Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
J'espère surtout que mon post servira à d'autres ;-).
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
J'espère surtout que mon post servira à d'autres ;-).
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 2,487
Sujets : 18
Inscription : Dec 2009
Réputation :
0
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
Messages : 2,487
Sujets : 18
Inscription : Dec 2009
Réputation :
0
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
|