Bonjour, Quand je me trouve sur la page d'admin de mon portail, je veux afficher des infos provenant de tous les plugins en même temps.
Pour cela dans mon app_model je créé une fonction addBehavior public function addBehavior($behavior,$func) { if (is_callable($func)) { $this->puncake_behaviors[$behavior][] = $func; } } exploité dans un _prepend.php place dans chacun des plugins exemple : $this->addBehavior('adminIndexHTML', array('articlesBehavior','getValidateArticles')); ceci permet d'enregistrer la methode getValidateArticles de la classe articlesBehavior. ensuite je créé une fonction callBehavior (tjs dans app_model) public function callBehavior($behavior) { echo "<pre>"; print_r($this->puncake_behaviors); echo "</pre>"; if (isset($this->puncake_behaviors[$behavior])) { $args = func_get_args(); array_shift($args); $res = ''; foreach ($this->puncake_behaviors[$behavior] as $f) { $res .= call_user_func_array($f,$args); } return $res; } } et dans ma vue admin_index.ctp je fais un : <?php AppModel::callBehavior('adminIndexHTML'); ?> pour appeler toutes les methodes (de mes classes) "enregistrées". Soucis : dans l'etat acutel, le addBehavior fonctionne; mais le callBehavior produit une erreur dans la vue : Undefined property: ThemeView::$puncake_behaviors [APP\app_model.php, line 65] la ligne 65 etant print_r($this->puncake_behaviors); ce print_r me servait à comprendre pouquoi le isset qui suit est toujours faux :/ 2 Questions subsidiaires : 1) CakePHP possède-t-il une telle fonctionnalité qui me permette d'appeler des fonctions de la façon expliquée si oui comment ? 2) Sinon comment j'evite cette erreur ? Cdt. --~--~---------~--~----~------------~-------~--~----~ Groupe "Cakephp-fr". Adresse : cakephp-fr@googlegroups.com Pour résilier : [EMAIL PROTECTED] Pour les options : http://groups.google.com/group/cakephp-fr?hl=fr -~----------~----~----~----~------~----~------~--~---