Evaluer le retour d'un hook dans un plugin
rockyhorror
Member
dans Entraide
Bonsoir,
Il y à quelque chose que je ne comprend pas, dans l'evaluation du code retour d'un hook dans un plugin.
Exemple:
J'ai manqué quelque chose ?
Merci pour votre aide.
Il y à quelque chose que je ne comprend pas, dans l'evaluation du code retour d'un hook dans un plugin.
Exemple:
class maClass extends plxPlugin {
public function __construct($default_lang) {
$this->addHook('My','My');
}
public function My(){
echo '<?php return true; ?>';
}
}
Ensuite dans le theme, j'appel le hook de la façon suivante:
<?php if( eval($plxShow->callHook('My')) ) echo "Hello"; ?>
et bien j'obtiens jamais le "Hello". Je comprend pas.J'ai manqué quelque chose ?
Merci pour votre aide.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Faire un return true; interrompt l'instruction eval. Donc tout le code qui suit n'est pas exécuté. (cf la doc des plugins).
Pour info, une des grosses évolutions de la prochaine version de PluXml (la 5.1.4) sera la possibilité de passer des paramètres aux hooks et/ou de récupérer une valeur de retour.
Consultant PluXml
Ancien responsable du projet (2010 à 2018)
Ca va faciliter certains trucs de passer des paramètres
Je pensais que l'interruption venait du return que tu faisais dans le "if" Mais visiblement non. Comprend pas tout à cette fonction eval() moi. Donc dans l'immediat, j'ai pas vraiment moyen de tester un etat de retour true/false d'un hook.
Je vais sans doute attendre la 5.1.4
Merci.
Genre :
Mais avec ça je dépend de l'affichage dans mon hook. Et il se trouve que j'aurais pas forcément d'affichage dans cette fonction. J'ai trouvé un autre subterfuge. C'est pas idéal, mais en attendant ça marche.
Je set la valeur de $yes à true/false dans ma fonction My.
Ce sera plus propre dans la version 5.1.4