Bonjour,
Je cherche à réaliser un menu qui change selon la page sur laquelle on se trouve.
J'ai un header.ctp que j'inclus dans toutes mes pages ctp. Et selon la page où je me trouve j'aimerais modifier l'affichage, ex :
index : affiche "Gestion articles" et "Gestion catégories"
articles : affiche "Retour index" et "Gestion catégories"
J'ai trouvé une fonction en cherchant un peu mais une solution existe-t-elle dans CakePHP 3 pour permettre de savoir dans quel controller on se trouve?
Merci d'avance!
Dans ce cas là pour le lien, il te suffit par exemple de faire quelque chose du genre :
if ($this->request->params['controller'] == 'Articles' && $this->request->params['action'] == 'index'):
// Ton lien pour le retour à l'accueil
else:
// Ton lien pour la Gestion des articles
endif;
Pas vraiment. Je cherche quelque chose qui permette de dire :
Si je suis ici : 'controller'=>'article', 'action'=>'index'
Alors j'affiche le menu : "Gestion articles" et "Gestion catégories"
Alors que si je suis là : 'controller'=>'article', 'action'=>'add'
Alors j'affiche "Retour index" et "Gestion catégories"
En fait la fonction que j'ai mis en lien dans mon premier post correspond bien à ma recherche, je me demandais simplement si quelque chose de similaire avait été intégré à CakePHP depuis.
Donc si tu ne te trouve dans aucunde ces cas, aucun menu ne s'affiche alors ?
Sur CakePHP V3, tu as par exemple 2 possibilités pour faire ce que tu demandes.
Par contre, il faudrait que tu nous montre un peu plus comment est ton système pour ces menus, s'ils sont dans des éléments par exemple.
Bref, apporte nous un peu plus de précisions.
Voici comment je procède.
Côté ArticlesController j'ai deux fonctions : index() et accueil() qui récupèrent des articles de ma bdd, seul accueil() à un tri particulier mais ce n'est pas très important.
Côté template : index.ctp me sert à afficher un tableau pour la gestion des articles, accessible après Authentification. Accueil.ctp est accessible par tous les utilisateurs et liste les articles pour les lire.
J'ai un template header.ctp qui est un menu affiché uniquement si l'utilisateur est authentifié comme Admin et est appelé par les autres templates. Dans ce header, il y a un lien "Gestion des articles" pour accéder à index (gestion des articles) depuis la page accueil. Et une fois dans la page index, j'aimerais que ce lien soit remplacé par "Retour accueil" et pointe vers accueil. Et je ne sais pas quoi utiliser comme condition pour différencier la page courante.
Si besoin je peux poster du code mais je ne savais pas trop quoi mettre.
C'est ça, merci!
J'avais essayé avec l'objet request mais je ne m'y prenais pas de la bonne manière. Merci bien! :)