aide sur smarty faire( une boucle)

Mammouth du PHP | 1311 Messages

11 oct. 2005, 15:18

salut
je vient de choisir smaty comme template et j'ai quelques soucis avec malgres la doc
je voudrais afficher un menu qui vient d'un tableau
$Smarty = new Smarty_page();
$Smarty->assign($mv->getModel());
$Smarty->display($mv->getView());
le tableau (il est retourné par $mv->getModel)

Code : Tout sélectionner

Array ( [menu] => Array ( [0] => Array ( [lien] => 2 [nom] => Industrie ) [1] => Array ( [lien] => 13 [nom] => Entraînements ) [2] => Array ( [lien] => 23 [nom] => Variateurs Standards ) [3] => Array ( [lien] => 27 [nom] => index ) ) )

et mon code Smarty

Code : Tout sélectionner

{foreach from=$test.menu item=item key=key name=menu} <li><a href="{$key}">{$item}</a></li> {/foreach}
merci

au fait un autre lien pour Smarty et MCVhttp://www.phpsolmag.org/fr
c'est un pdf gratuit , il est dipo sur developpez.com mais j'ai pas retrouver le lien :?

Mammouth du PHP | 1885 Messages

11 oct. 2005, 18:20

Essaie comme ceci:

Code : Tout sélectionner

{foreach from=$test.menu item=item key=key name=menu} <li><a href="{$item.lien}">{$item.nom}</a></li> {/foreach}
http://smarty.php.net/manual/fr/languag ... oreach.php
Exemple 7.6

Tu sembles avoir basé ton script sur l'exemple 7.5. Le problème est que l'exemple 7.5 est basé sur un tableau associatif à un niveau où une clef et une valeur est définie.

Dans le cas présent, il est question d'un tableau contenant un tableau. Ainsi chaque item récupéré par la boucle sera un tableau. Il faudra donc accéder à chaque item.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Mammouth du PHP | 1311 Messages

11 oct. 2005, 18:28

je vien de tester mais je n'ai toujours aucune sortie :?

l'utilisation des bloc section est-il plus adapté?? :?:

Mammouth du PHP | 1885 Messages

11 oct. 2005, 18:48

Oui, section a comme seul "défaut" de ne pas récupérer la clef de l'item courant (ce qui semble peu importer dans le cas présent)
$variable['menu'] = array(
	array(
		'lien' => 2,
		'nom' => 'Industrie'
	),

	array(
		'lien' => 13,
		'nom' => 'Entraînements'
	)
);

$smarty->assign('liens',$variable['menu']);

Code : Tout sélectionner

{section name=liens loop=$liens} <li><a href="{$liens[lien]}">{$liens[nom]}</a></li> {/section}
La programmation est l'expression de la poésie d'un programmeur
Génération PHP