Le 21 novembre 2011 10:15, Dsls <dsls(a)morefnu.org> a écrit :
> Tu parles de $core->getBehaviors ? Il n'y a aucune
restriction sur
>
> > cette classe...
>
> Étrange, car à l'exécution il me renvoyait dans mes buts en me disant
> que la méthode n'existait pas ! Du coup je suis passé par une fonction
> helper exécutée à chaque fois pour l'afficher sur une page côté
> public. Si je codais ça côté template ($core->getBehaviours()) alors
> j'avais une erreur.
>
C'était pas plutôt une histoire de visibilité de $core (vs $GLOBALS['core'])
?
Je ne pense pas parce que dans le code PHP (dans le cache), l'objet
$core était utilisé normalement.
Voilà le code que j'injectais :
$code =
'echo \'<h3>'.__('Behaviours
list').'</h3><ul>\';'."\n".
'$bl = $core->getBehaviours();'."\n".
'foreach ($bl as $b => $f) {'."\n".
' echo \'<li>\'.$b.\' : \';'."\n".
' if (is_array($f)) {'."\n".
' echo \'<ul>\';'."\n".
' foreach ($f as $fi) {'."\n".
' echo \'<li><code>\';'."\n".
' if (is_array($fi)) {'."\n".
' echo $fi[0].\'::\'.$fi[1].\'()\';'."\n".
' } else {'."\n".
' echo $fi.\'()\';'."\n".
' }'."\n".
' echo \'</code></li>\';'."\n".
' }'."\n".
' echo \'</ul>\';'."\n".
' } else {'."\n".
' echo $f.\'()\';'."\n".
' }'."\n".
' echo \'</li>\';'."\n".
'}'."\n".
'echo \'</ul>\';'."\n";
return '<?php '.$code.' ?>';
Pour la balise {{tpl:SysInfoBehaviours}}