Bonjour,
je découvre CakePhp et j'aimerais pouvoir mettre un menu latéral dans mon template.
Donc je voulais déjà savoir si vous pouviez m'orienter sur la façon d'inclure le menu latéral dans mon template (par le biais de view blocks certainement, mais est-il possible d'isoler la partie menu dans un controlleur à part?)
Et ensuite, mon menu serait de la forme suivante:
Donc selon vous, est-il possible de faire ce menu de manière automatique en "listant" les controlleurs? Ou bien faut il que je mette tout dans array en dur dans le code? Ou dans une bdd?
Voila, je sais que mes questions sont assez vagues et peut être maladroites, mais je débute et là je suis complètement coincé sur comment aborder la chose... :S
Merci de votre aide !
Bonjour,
si tu souhaites quelque chose d'évolutif, je te conseille de reproduire un système similaire à Wordpress par exemple. Le principe, tu as un MVC Menu, il va gérer le ou les menus que tu souhaites avoir. Ensuite tu crées un MVC Menupage, ce MVC va gérer un lien (Agenda, liste des évènements, ...).
Menupage
id
titre de lien
controller
action
Menupage parent
ordre
menu_id
Menu
id
titre
Le MVC Menu n'est pas nécessaire si tu es sur de ne créer qu'un seul menu pour ton application, mais je le mets quand même pour expliquer le principe. Il peut manquer des éléments dans la description des champs à créer dans la BDD suivant tes besoins futurs.
Pour afficher le menu a travers n'importe quelle page, je te suggère de regarder le principe de requestAction ( http://book.cakephp.org/2.0/en/controllers.html#Controller::requestAction).
Ca va dépendre de l'utilisation. Si tu ne l'utilises que pour une action dans un Controlleur, tu le laisses dans cette action. Si cette fonction est générique et est utilisée dans d'autres Controller, alors il vaut mieux créer un Helper en effet.
Yeah ! Super, merci ! :)
Sinon, j'abuse un peu, mais j'ai une fonction quelconque qui transforme un array en listes html. Si je veux bien faire, faut que je la mette dans un helper? Dans une action de controlleur?
Merci encore et bonne année ! :)