Hi all,

Après plusieurs années dont je suis resté fidèle à phpLib (old school 😀 ) j’ai finalement décidé de changer de moteur de template.

Mon choix était Smarty (finalement c’est le meilleur non? 🙂 )

Je ne vais pas faire un tutoriel concernant l’utilisation de Smarty vu qu’il y en a plein comme par exemple:  Initiation aux templates en PHP avec Smarty ou encore Un moteur de template : Smarty sans oublier bien sur la documentation officielle de Smarty [en].

Bref, je vais parler d’une petite partie qui m’a posé un léger problème lors du développement d’un site (c’est normale, c’est ma toute première utilisation de Smarty 🙂 ), cette partie concerne l’affichage d’un menu récursive dynamique en utilisant Smarty.

Malheureusement, je n’ai pas pu trouver l’information concernant ce problème ou alors elle était compliqué, mai finalement j’ai pu corriger le problème et afficher le menu correctement 🙂

Voici comment j’ai procédé:

D’abord la fonction pour créer un menu organisé contenant les catégories et sous catégories:


function afficher_menu($parent, $niveau, $array) {
	$html = "";
	$niveau_precedent = 0;
	if (!$niveau && !$niveau_precedent) $html .= "\n

Ensuite je récupère mes catégories depuis la base de données et je crée mon array (tableau) qui sera traité par la fonction ci-dessus:


$query = $connexion->prepare("
			SELECT id_cat,Parent,nom_cat FROM ouss_cat
			WHERE act=1
			ORDER BY ord
							");
$query->execute();
$categories = array();
while($data = $query->fetch()) {
	$categories[] = array(
	'Parent' => $data['Parent'],
	'id_cat' => $data['id_cat'],
	'nom_cat' => $data['nom_cat']
	);
}
$test = afficher_menu(0,0,$categories);

Et finalement, je crée mon variable Smarty:


$tpl->assign('menu',$test);

Ce qui donne finalement:

mon_fichier.php


require("libs/smarty.class.php");
$tpl = new Smarty();
function afficher_menu($parent, $niveau, $array) {
	$html = "";
	$niveau_precedent = 0;
	if (!$niveau && !$niveau_precedent) $html .= "\n

mon_fichier.tpl


{$menu}

A vous de voir pour la personnalisation du menu à l’aide de votre fichier CSS
et voilà, mon menu est bel et bien affiché 🙂

Enjoy 🙂


Merci d'évaluer l'article: Créer un menu recursive et l'afficher en utilisant Smarty

Score: 0.5 sur 5 Sur un total de 17 avis


Catégorie: Developpement web, Diverses Astuces, featured, optimisation web, PHP
Tags: , , .