[Résolu] Multi-paramètres avec $plxShow->callHook

aruhunoaruhuno Member
novembre 2013 modifié dans Entraide
Bonjour à tous,

Souhaitant rendre mon site un peu plus facilement upgradable vers les prochaines version de PluXML, je réalise un plugin personnel regroupant quelques fonctions que j'utilise sur mon site. Je me heurte toutefois à un problème et ceux malgré le wiki.

Je vous explique, j'essaye de faire une fonction définie dans mon plugin comme ceci :
[== PHP ==]
public function MyPluginFunction($aaa, $bbb, $ccc) {
	echo $aaa . " : " . $bbb . " : " . $ccc;
}

D'après ce que j'ai compris du wiki, pour me servir d'une telle fonction, je dois faire comme ceci :
[== PHP ==]
<?php eval($plxShow->callHook('MyPluginFunction', array('AZERTY', 'QWERTY', 'QWERTZ'))); ?>

Jusque là, pas de soucis, sauf qu'a l'affichage, j'obtiens :
[== HTML ==]
Array : : 

Merci d'avance à ceux qui me liront/m'aideront.

Réponses

  • websyyswebsyys Member
    novembre 2013 modifié
    Salut, pourquoi ne pas mettre les paramètres dans la fonction :
    public function MyPluginFunction() {
    $aaa = 'AZERTY';
    $bbb = 'QWERTY';
    $ccc = 'QWERTZ';
    // print(''.$aaa.':'.$bbb.':'.$ccc.'');
    // if ... else 
    }
    
    <?php eval($plxShow->callHook('MyPluginFunction')); ?>
    
  • aruhunoaruhuno Member
    novembre 2013 modifié
    Parce que dans ce cas ma fonction ne sert à rien et n'est plus du tout évolutive...
  • Tu as mal lu le wiki. Tu as oublié de récupérer ton array dans une variable.
    [== PHP ==]
    <?php $a = eval($plxShow->callHook('MyPluginFunction', array('AZERTY', 'QWERTY', 'QWERTZ'))); 
    echo $a[0].' : '.$a[1].' :  '.$a[1];
    
    devrait te retourner le bon résultat
  • StéphaneStéphane Member, Former PluXml Project Manager
    <?php eval($plxShow->callHook('MyHook', array('azerty', 'qwerty'))) ?>
    
    <?php
    class test extends MyPlugin {
       public function __construct($default_lang) {
       # Appel du constructeur de la classe plxPlugin (obligatoire)
       parent::__construct($default_lang);
       # Déclaration des hooks
          $this->addHook('MyHook', 'MyHookFunction');
       }
       public function MyHookFunction($params) {
          echo $param[0];
          echo $param[1];
       }
    ?>
    

    $param[0] renvoit azerty
    $param[1] renvoit qwerty

    voir la doc sur les plugins page 58/59

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Merci à vous deux, je n'ai absolument pas compris ça avec le wiki ><
    Enfin bon, maintenant que vous me le mettez sous le nez, c'est logique ^^

    Merci encore !
  • StéphaneStéphane Member, Former PluXml Project Manager
    aruhuno a écrit:
    Merci à vous deux, je n'ai absolument pas compris ça avec le wiki ><

    tu peux me donner stp le lien dans le wiki pour que je vérifie ce qui a été écrit.
    merci

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • aruhunoaruhuno Member
    novembre 2013 modifié
    Dans le premier poste au premier mot wiki, sinon c'est là : http://devzone.pluxml.org/index.php?page=plxShow-callHook

    Ce n'est pas que le wiki est mal écrit, c'est qu'il ne m'a pas permit de comprendre comment l'utiliser ensuite dans un plugin ^^
  • StéphaneStéphane Member, Former PluXml Project Manager
    ok ;)

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

Connectez-vous ou Inscrivez-vous pour répondre.