car pour moi les hook c'est juste des conteneurs pour générer des pages suivant un paramétrage, le "dynamisme" est côté serveur
l'instruction add_metabox si elle est exécutée, va rajouter une nouvelle entrée dans la page demandée afin d'afficher ton plugin.
(dans le cas présent, la différence entre le dynamisme coté serveur et le dynamisme client)
Donc du coup la classe que je donnes en lien devrai convenir ^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<?php class Conteneur { var $Alias; //alias - pour class hook var $isSet = false; //module inclu dans la page? - pour class hook var $iHauteur; //Hauteur du module var $iLargeur; //largeur du module var $sFunction; //fonction à appeler pour la génération function set( $tAlias,$tHauteur,$tLargeur,$tFunction){ $this->Alias=$tAlias; $this->iHauteur=$tHauteur; $this->iLargeur=$tLargeur; $this->sFunction=$tFunction; } function set_hauteur( $tHauteur ) {$this->iHauteur=$tHauteurs;} function get_hauteur( $tHauteur ) { return $this->iHauteur; } function set_largeur( $tLargeur ) {$this->iLargeur=$tLargeur;} function get_largeur( $tLargeur ) { return $this->iLargeur; } function run( $param ) { $this->isSet=true; return call_user_func($this->sFunction,$param); } } class Hook { var $tConteneurs; //tableau de conteneurs //add ou set (implicite) un conteneur function add( $Conteneur ) { $this->tConteneurs[$Conteneur->Alias]=$Conteneur; } //appel de la fonction function call( $Alias , $param) { return $this->tConteneurs[$Alias]->run($param); } function getListSet () { $tRet = array(); foreach($this->tConteneurs as $cont){ if( $cont->isSet ){ $tRet[$cont->Alias] = $cont;} } return $tRet; } } //-- tester function test_1( $var ) { echo $var; return true; } function test_2( $tvar ) { print_r($tvar); foreach($tvar as $var) { echo '<br />' . $var; } return true; } $oCont1=new Conteneur(); $oCont1->set('test_1',10,10,'test_1'); $oCont2=new Conteneur(); $oCont2->set('test_2',10,10,'test_2'); $oHook = new Hook(); $oHook->add($oCont1); $oHook->add($oCont2); $oHook->call('test_1','test var'); echo '<br />' ; echo '<br />' ; $oHook->call('test_2',array("foo", "bar", "hello", "world")); echo '<br />' ; echo '<br />' ; print_r($oHook);
mais je le personnalise un peut car il correspond pas parfaitement à mes besoins.