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
$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
{$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 🙂
Catégorie: Developpement web, Diverses Astuces, featured, optimisation web, PHP
Tags: menu recursive, PHP, smarty.
5 commentaires
Twig est un moteur de template très intéressant aussi. D’ailleurs je l’utilise.
Je vais voir ce qu’il a dans le ventre Smarty.
Han j’ai rien pigé mais rien. Je débute faut le dire…mais là, je commence à angoisser un peu.
Merci pour le tips..
Article intéressant merci
Article très intéressant ! Merci beaucoup pour le partage, ça m’aide beaucoup car je suis débutant
Je suis débutante avec smarty, j’ai eu ce problème il n y a pas longtemps ( cette semaine) c’est génial que je tombe sur ça maintenant :).
Merci beaucoup et bonne chance.