Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Paramétrage évolué d'un sélecteur de locale

Posted by Martus on 08/31/2007 19:39

Bonjour,

je voulais utiliser dans un template ceci :

 {@accueil~donnees.titre.$rec['partie']@}

mais ça ne marche pas car seul quelque chose comme $var est autorisé.

En regardant le template compilé, j'ai pu faire marcher cette horrible chose :

 <?php $t->assign('nom_champ', $t->_vars['rec']['partie']); ?>
 {@accueil~donnees.titre.$nom_champ@}

Que je n'ai pu améliorer (pour essayer d'être propre) qu'ainsi :

 <?php $rec = $t->get('rec'); $nom_champ = $rec['partie'] ?>
 <?php echo jLocale::get("donnees.titre." . $nom_champ) ?>

Pourriez-vous m'indiquer comment arriver à mes fins plus proprement (sans utiliser $t donc et seulement via les classes Jelix) ?

Merci d'avance.

  [Opened] Re: Paramétrage évolué d'un sélecteur de locale

Reply #1 Posted by laurentj on 08/31/2007 22:47

Salut

En regardant le template compilé, j'ai pu faire marcher cette horrible chose :

  <?php $t->assign('nom_champ', $t->_vars['rec']['partie']); ?>
  {@accueil~donnees.titre.$nom_champ@}

Tellement horrible cette chose qu'elle sera interdite dans la beta3 : ça a été corrigé et il ne sera plus possible de mettre du php parce que ce n'est pas du tout le but de jtpl et peut être source de trous de sécurité.

Si tu veux faire un truc équivalent, il faut utilisé la fonction tpl assign tout simplement :

  {assign $nom_champ = $rec['partie']}
  {@accueil~donnees.titre.$nom_champ@}

C'est vrai que ça reste moins sexy que

   {@accueil~donnees.titre.$rec['partie']@}

mais pour le moment c'est le seul moyen "propre".

 
Page
  1. Re: Paramétrage évolué d'un sélecteur de locale