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

  [Opened] [templates] variable

Posted by manooweb on 05/19/2008 15:53

Toute la doc sur les templates est là ? http://jelix.org/articles/manuel/templates

Est-il possible de créer des variables en interne d'un template ?. Question subsidiaire, est-il possible d'évaluer un expression sans l'afficher ?

Mon besoin est assez simple

Dans une boucle (foreach) pour afficher une liste issue d'un dao, je voudrais simplement faire un test pour qu'à chaque ligne un style différent soit appliqué (on test simplement sur la parité d'un compteur).

Pour le moment je n'ai pas trouvé de solution (enfin si mais elle n'est vraiment pas élégante :-// ). Peut-être que quelqu'un a déjà fait et pourrait me donner quelques indications ?

merci m@nu


Manu

  [Opened] Re: [templates] variable

Reply #1 Posted by doubleface on 05/19/2008 16:03

Pour la creation de variables dans un template, tu peux regarder dans la doc sur les templates=assign], a la rubrique assign.

  [Opened] Re: [templates] variable

Reply #2 Posted by manooweb on 05/19/2008 16:34

Oui c'est ce que j'ai fait, je parlais de faire ce genre de code directement dans le template. Un peu comme avec smarty où il existe une fonction de template {assign}. Dans mon cas ce n'est pas réellement d'une variable métier mais plutôt d'une variable de service uniquement pour le template.


Manu

  [Opened] Re: [templates] variable

Reply #3 Posted by wolf on 05/19/2008 16:55

Rubrique assign de la doc sur les templates :


Vous pouvez également créer ou modifier une variable directement dans >le fichier tpl en utilisant.

{assign $nom = $valeur}

Donc oui, on peut, et avec assign d'ailleurs.

  [Opened] Re: [templates] variable

Reply #4 Posted by doubleface on 05/19/2008 17:40

{assign $nom = $valeur}

Oui, c'est bien ce que je voulais dire mais j'ai surement pas été assez précis.

  [Opened] Re: [templates] variable

Reply #5 Posted by Maurice on 05/20/2008 14:56

Pour ce genre de besoin, j'ai vu une méthode utilitaire de rails dont je ne me souvient plus du nom qui m'a inspiré l'idée suivante :

    // Return alternativement les chaines $flip et $flop à chaque appel.
    // Application : coloration des lignes paires/impaires d'un tableau html
    // 
    function flipflop($flip, $flop) {
        static $flipflop_count;
        if (!isset($flipflop_count)) {
            $flipflop_count = 1;
        } else {
            $flipflop_count += 1;
        }
        return $flipflop_count%2 ? $flip : $flop;
    }

On peut l'améliorer en passant en paramètre une liste arbitraire, dont les éléments seront choisis à tour d rôle. Ce genre de fonction pourrait être intégrée à jedit car elle simplifie la vue en évitant d'y mettre de l'intelligence (e.g. test de parité, ...)

Maurice

P.S. il semble y avoir un bug dans la lecture de code wiki de ce forum qui remet à gauche la premiere ligne de tout listing comme ci-dessus : un trimleft de trop ?

  [Opened] Re: [templates] variable

Reply #6 Posted by Maurice on 05/20/2008 22:40

Effectivement, je crois bien que c'était bien "cycle" le nom recherché ;-)

Pour le bug c'est fait http://developer.jelix.org/ticket/593.

Maurice

 
Page
  1. [templates] variable