Salut à tous !

Voici ma question, j'ai un menu récurent sur mon site, il représente les statistiques du site (Messages, nombre utilisateur ect).

Comme le menu est récurent, je l'ai mis dans un "element". J'appelle dans mon layout mon element

<?php
                echo $this->Element('stats');
    ?>

.

Jusque la pas de soucis.

Seulement voila, chaque fois que je change de controller je suis obliger de passer pour chaque controller les variables que le menu utilise (Nombre d'utilisateur, Nombre de message, ect).

Il n'y pas moyen de faire appelle à un Controller spécifique pour "element", pour que chaque fois que cette élément sois appeler, il charge les données nécessaire ?

Merci.

9 réponses


Grafikart
Réponse acceptée

Mauvaise façon de faire que d'utiliser l'appcontroller. Dans l'élément fait un requestAction pour appeller une action qui va te récupérer tes données ( http://book.cakephp.org/view/434/requestAction) et tu met ton élément en cache pour gagner en performance

crée un app_controller a la racine du site dans le quel tu mets tes variables ;)

zaarkan
Auteur

Ok vu ainsi j'y avais pas penser :) dernier question alors, existe t'il une appelle spécifique dans app controller genre "beforefilter" pour générée ces variable lors de appele dans controllers ? Ou alors je peu utiliser un constructeur pour app_controller ?

En passant merci flohw :)

zaarkan
Auteur

Bon apparament AppController aime pas trop que lui foute un constructor...

il faut lui mettre un beforeRender (avant rendu) si tu met un beforeFilter (avant je sais pas quoi ^^) il trouvera pas certaines choses (je sais plus quoi exactement mais j'ai fait l'experiance et ca marche pas, fais la pour retrouver ;) )

en passant derien zaarkan :p
ps : pense à mettre les reponses qui ont aidé quand ca sera definitivement résolu ;)

zaarkan
Auteur

pas de soucis merci, je vais tester demain et confirmer les réponses :)

zaarkan
Auteur

Ahh aussi le beforefilter est utiliser pour authentification :)

il me sembalit bien qu'il y avait une autre methode meilleure ^^ mais le request action je l'ai encore j'amais utilisé (j'ai fais un seul projet avec cake) et j'ai pas encore compris son utilité :)
ca viendra avec la pratique ;)

zaarkan
Auteur

ok merci à tous :)