Ajouter un hook du core dans un plugin
Bonjour,
J'ai réalisé un plugin qui créé un menu vertical avec les pages statiques (la fonction staticList ne me convient pas dans la mise en forme). Le problème est que je perds les hook du core de pluXml. J'ai essayé d'ajouter le hook plxShowStaticListEnd mais j'ai le message suivant :
Voici la fonction dans la classe de mon plugin
Dans le plugin plxContact j'ai modifié mais toujours même erreur
Au lieu de
J'ai réalisé un plugin qui créé un menu vertical avec les pages statiques (la fonction staticList ne me convient pas dans la mise en forme). Le problème est que je perds les hook du core de pluXml. J'ai essayé d'ajouter le hook plxShowStaticListEnd mais j'ai le message suivant :
Parse error: syntax error, unexpected T_STRING in /.../plugins/staticMenu/staticMenu.php(62) : eval()'d code on line 1
Voici la fonction dans la classe de mon plugin
function displayMenu() {
global $plxMotor;
if($plxMotor->aStats) {
$menus = array();
$group_name = '';
$group = '';
$menus[] = '<ul class="menu vertical">';
foreach($plxMotor->aStats as $k=>$v) {
if($v['active'] == 1 AND $v['menu'] == 'oui') {
if(!empty($v['group']) AND $group_name != $v['group'] AND $v['group'] == $v['name']) {
$subMenus = $this->getSubGroup($v['group']);
if(count($subMenus) > 0) {
$menus[] = '<li class="has-menu"><a href="'.$plxMotor->urlRewrite('?static'.intval($k).'/'.$v['url']).'" title="'.$v['group'].'">'.plxUtils::strCheck($v['group']).'</a>'."\n";
$menus[] = '<ul>'."\n";
foreach($subMenus as $i=>$s) {
$menus[] = $s['name'];
}
$menus[] = '</ul>'."\n";
}
$menus[] = '</li>'."\n";
} elseif(empty($v['group']) AND $v['menu'] == 'oui') {
$menus[] = '<li><a href="'.$plxMotor->urlRewrite('?static'.intval($k).'/'.$v['url']).'" title="'.plxUtils::strCheck($v['name']).'">'.plxUtils::strCheck($v['name']).'</a>'."\n";
}
}
$group_name = $v['group'];
}
# Hook Plugins
if(eval($plxMotor->plxPlugins->callHook('plxShowStaticListEnd'))) return;
$menus[] = '</ul>';
echo implode('', $menus);
}
}
La ligne 62 en erreur correspond à
# Hook Plugins
if(eval($plxMotor->plxPlugins->callHook('plxShowStaticListEnd'))) return;
Dans le plugin plxContact j'ai modifié mais toujours même erreur
public function plxShowStaticListEnd() {
# ajout du menu pour accèder à la page de contact
if($this->getParam('mnuDisplay')) {
echo "<?php \$class = \$plxMotor->mode=='contact'?'active':'noactive'; ?>";
echo "<?php array_splice(\$menus, ".($this->getParam('mnuPos')-1).", 0, '<li><a class=\"static '.\$class.'\" href=\"'.\$plxMotor->urlRewrite('?contact').'\">".$this->getParam('mnuName')."</a></li>'); ?>";
}
}
Au lieu de
public function plxShowStaticListEnd() {
# ajout du menu pour accèder à la page de contact
if($this->getParam('mnuDisplay')) {
echo "<?php \$class = \$this->plxMotor->mode=='contact'?'active':'noactive'; ?>";
echo "<?php array_splice(\$menus, ".($this->getParam('mnuPos')-1).", 0, '<li><a class=\"static '.\$class.'\" href=\"'.\$this->plxMotor->urlRewrite('?contact').'\">".$this->getParam('mnuName')."</a></li>'); ?>";
}
}
J'ai un string de l'array
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Dans la fonction plxShowStaticListEnd que tu as modifié la variable $plxMotor n'est pas définie.
Elle est utilisée comme une variable avec une portée locale à la fonction.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Mais toujours la même erreur, j'ai essayé aussi de mettre en global plxMotor dans la fonction plxShowStaticListEnd de plxMyContact mais pas mieux.
J'ai un string de l'array
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
J'ai un string de l'array
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Ligne 58
J'ai un string de l'array
Est-ce que le problème proviendrait de l'appel du hook dans mon plugin ?
J'ai un string de l'array
Il faudrait que tu essayes d'isoler la ligne qui génère l'erreur et mettant en commentaire toutes les lignes et en les réactivant une par une pour trouver celle qui pose problème. ça sera plus facile une fois la mauvaise ligne trouvée
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
J'ai un string de l'array
J'ai un string de l'array
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Il affiche les pages statiques avec la gestion des groupes (menu, sous-menus). il manque juste la possibilité d'appeler un hook (en commentaire dans le code).
J'ai un string de l'array