boucle for avec smarty
Auteur Sujet

Post 
Bonjour à tous !
J'essaie désespérément de faire une boucle for avec smarty !!

J'ai trouvé :
  1. <!--[section name=$tt start=0 loop=$nbelem]--><!--[/section]--> 


mais quand dedans je souhaite mettre un foreach, je me retrouve avec le premier qui se déroule bien puis les suivants qui ne renvoie que la dernière valeur du foreach...

  1. <!--[section name=$tt start=0 loop=$nbelem]--> 
  2.       <!--[foreach item='nom_produit' from=$nom_produit]--> 
  3.                   <!--[$nom_produit]--> 
  4.       <!--[/foreach]--> 
  5. <!--[/section]--> 


serait-ce dans le foreach qu'il y a un problème??


Gilles  ><>°
Données personnelles Accueil

Post 
Les sections :

  1. <!--[section name='nbelem' start=0 loop=$nbelem]--><!--[/section]--> 
  2.   <!--[$nbelem[nbelem].valeur]--> 
  3. <!--[/section]--> 


les foreach :

  1. <!--[foreach item='elem' from=$nbelem]--> 
  2.   <!--[$elem]--> ou <!--[$elem.valeur]--> 
  3. <!--[/foreach]--> 


Si tu as un sous-tableau... il te sera plus facile de l'assigner à une variable plus simple avant de tourner dedans...

  1. <!--[section name='nbelem' start=0 loop=$nbelem]--><!--[/section]--> 
  2.   <!--[assign var='montableau' value=$nbelem[nbelem].valeur]--> 
  3.    
  4.   <!--[foreach item='item' from=$montableau]--> 
  5.     <!--[$item]--> ou item.valeur]--> 
  6.   <!--[/foreach]--> 
  7.  
  8. <!--[/section]--> 



Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
Merci pour ce petit cours smarty !!!

Mais es-ce que je peux récupérer le numéro de l'itération ou je suis dans une boucle section ??


Gilles  ><>°
Données personnelles Accueil

Post 
Allez hop... un peu de lecture...

http://smarty.php.net/manual/en/language.function.section.php

http://smarty.php.net/manual/en/language.function.foreach.php

icon_wink


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
Chestnut a écrit :


j'avais déjà deux onglets dessus...

mais je n'arrive pas à y faire marcher quand même !

  1. <!--[section name='nbelem' start=0 loop=$nbelem]-->  
  2.     <!--[$nbelem[nbelem].valeur]-->                                      //<<- ne renvoie rien... je comprend 
  3.         <!--[$nbelem.index]-->                                                    //<<- ne renvoie rien, je comprend pas ! 
  4. <!--[/section]-->  


dans la doc ils disent:

  1. {section name=foo start=10 loop=20 step=2} 
  2.   {$smarty.section.foo.index} 
  3. {/section} 

en mettant le nom.index on récupère le numéro de l'itération... quels sont les changements appliqués par postnuke pour que celà ne marche pas ?


Gilles  ><>°
Données personnelles Accueil

Post 
Ouah... pas simple...

  1. <!--[assign var='i' value=0]--> 
  2. <!--[section name='nbelem' start=0 loop=$nbelem]--> 
  3.  
  4. <!--[assign var='i' value=$i|increment]--> 
  5. <!--[$i]--> //valeur incrémentée de i a chaque boucle ! 
  6. <!--[/section]--> 


j'ai du créer un plugin smarty...

modifier.increment.php:

  1. function smarty_modifier_increment($number, $alteration = 1) 
  2.       return $number += $alteration; 


et voilà !!

Y'a peut-être une facon plus simple... icon_lol

++


Gilles  ><>°
Données personnelles Accueil

Post 
Bah... ouais...

  1. <!--[assign var='compteur' value='1']--> 
  2. <!--[foreach blablabla]--> 
  3.   msdmlskdmqlskdmqlskd 
  4.  
  5.   <!--[math equation="x+y" x=$compteur y=1 assign='compteur']--> 
  6. <!--[/foreach]--> 


Quelque chose comme ça... pas sûr des apostrophes.
Sinon regarder la partie "key" sur les liens donnés dans mon dernier message.


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
sympa ce petit "math" Le connaissait pas !

en fait, je pensais qu'avec les sections et l'attribut index, on pouvais récupérer la valeur de l'itération... c'est ce que j'ai cru en lisant les exemples... mais apparamment non !!

merci Chestnut !

a+


Gilles  ><>°
Données personnelles Accueil

Post 
Ce serait plutôt un oui mon cher...

  1. <!--[foreach key='key' item='item' from=$item]--> 
  2.   <!--[$key]--> <!--[$item]--> 
  3. <!--[/foreach]--> 


A moins bien sûr que le tableau est descriptif ( array('xxx'=>'yyy') )...
Là tu auras le xxx...

Du moins, si je me souviens bien.


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
Désolé... gourré de section... mais ça fonctionne pour les index. Comme dans l'exemple sur la page des sections.


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil
Post 
Citation :

A moins bien sûr que le tableau est descriptif ( array('xxx'=>'yyy') )...
Là tu auras le xxx...


je comprend tout maintenant icon_lol il reprend l'itération des tableau... finalment, pour fair une boucle qui va de 0 à 4 c'est beaucoup de choses icon_smile


Gilles  ><>°
Données personnelles Accueil