Forum

Créations de Modules » Menu Action Ajouter un menu action à un module

cff

Booster Fronde

rank_0.png

Avatar

Groupe: Membre

Inscrit le: 10/11/2017

Messages: 7

Le 11/09/2018 à 23h34
Bonjour à toutes et tous,

Je suis actuellement en train de concevoir un module pour une association utilisant PHPBoost 5.1.

Avec le WIKI, la documentation et ce forum j'ai réussi a trouver nombre de réponses a mes questions.

Néanmoins je ne trouve aucune info pour implémenter un menu d'action dans le module.

Si j'ai bien compris une instance de la classe du menu est créée dans le fichier (Nom_du_Module)ExtensionPointController.class.php et le contenu du menu est géré dans le fichier (Nom_du_Module)TreeLinks.class.php mais je ne trouve pas comment l'afficher.

Quelqu'un pour m'aider ?

Merci d'avance


Claude
   

Booster Fusée

rank_6.png

Avatar

Equipe Assistance

Inscrit le: 07/12/2007

Messages: 6246

Le 12/09/2018 à 05h25
Bonjour,

si mes souvenir sont bon il suffit juste dans MONModuleExtensionPointController.class.php de créer une fonction public "tree_links()" puis dans MONModueTreeLinks.class.php
Code PHP :
 
class MONMTreeLinks implements ModuleTreeLinksExtensionPoint
{
    public function get_actions_tree_links()
    {
        $lang = LangLoader::get('common', 'MONModule');
        $tree = new ModuleTreeLinks();
 
        /* ICI le menu d'acion */
 
        return $tree;
    }
}
 

Exemple : https://github.com/PHPBoost/PHPBoost/blob/5.1/articles/phpboost/ArticlesTreeLinks.class.php

Cordialement, janus57


Ma boule de cristal est en panne. merci de donner les détails de votre problème
   
cff

Booster Fronde

rank_0.png

Avatar

Groupe: Membre

Inscrit le: 10/11/2017

Messages: 7

Le 12/09/2018 à 14h59
Merci beaucoup pour la réponse rapide !

Je vais inspecter ces fichiers sur d'autres modules pour en comprendre le fonctionnement et je reviendrai vers vous en cas de problème...


Claude
   
cff

Booster Fronde

rank_0.png

Avatar

Groupe: Membre

Inscrit le: 10/11/2017

Messages: 7

Le 30/09/2018 à 19h45
Bonjour,

Je reviens vers vous car j'ai toujours le même problème d'affichage du menu action :

Dans le dossier phpboost de mon module qui s'appelle "loc", j'ai créé le fichier locExtensionPointProvider.class.php (dans mes messages précédents je parlais du fichier ModuleExtensionPointController.class.php mais après vérification sur les divers modules il semble bien qu'il faille utiliser 'Provider').
Ce fichier contient :
Code PHP :
 
<?php
/* INFORMATIONS DE COPYRIGHT */
class locExtensionPointProvider extends ExtensionPointProvider
{
    public function __construct()
    {
        parent::__construct('loc');
    }
 
    public function tree_links()
    {
        return new locTreeLinks();
    }
}
?>
 


Toujours dans le répertoire phpboost de mon module j'ai créé le fichier locTreeLinks.class.php qui contient :
Code PHP :
 
<?php
/* INFORMATIONS DE COPYRIGHT */
class locTreeLinks implements ModuleTreeLinksExtensionPoint
{
    public function get_actions_tree_links()
    {
        $lang = LangLoader::get('common', 'loc');
        $tree = new ModuleTreeLinks();
 
        $tree->addlink(new ModuleLink('test intitulé de menu', '/url_de_test/');    
 
        return $tree;
    }
}
 
?>
 


Malgré tout cela le menu action ne s'affiche toujours pas sur les diverses pages de mon module.

En comparant avec d'autres modules je ne vois pas où peut se trouver mon erreur.

Manque-t-il quelque chose ?

Merci d'avance pour vos éclairages.


Claude
   

Modérateur

rank_modo.png

Avatar

Equipe Rédaction
Equipe Modération

Inscrit le: 04/04/2016

Messages: 229

Le 30/09/2018 à 21h26
Bonsoir,

C'est ici que ça se passe :
Code PHP :
 $tree->addlink(new ModuleLink('test intitulé de menu', '/url_de_test/'); 

La bonne fonction à appeler est add_link(..... et non addlink(

Pas de message d'erreur lors de l'appel d'une fonction inexistante ?
Mipel



Edité par mipel Le 30/09/2018 à 21h29


Merci de penser à joindre le rapport système de votre site, il peut nous aider à mieux répondre à vos questions.
Mail Site web    
cff

Booster Fronde

rank_0.png

Avatar

Groupe: Membre

Inscrit le: 10/11/2017

Messages: 7

Le 30/09/2018 à 22h37
Merci pour la réponse rapide !

Corrigé dans le fichier mais toujours pas d'affichage, et aucune erreur non plus, tant en affichage que dans les erreurs archivées.

D'ailleurs j'ai l'impression que les classes locExtensionPointProvider et locTreeLinks ne sont jamais appelées :
J'ai placé dans ces classes :
  • des fonctions echo "appel de la classe (nom de la classe)"
  • des fautes de frappes (absence du ' ; ' en fin de ligne)

Résultat : rien ! aucun affichage des echos ni messsage d'erreur (et aucune page blanche), le module s'affiche normalement, sauf le menu action,

Une idée peut être ?


Claude
   

Booster Fusée

rank_6.png

Avatar

Equipe Assistance

Inscrit le: 07/12/2007

Messages: 6246

Le 30/09/2018 à 22h42
Bonjour,

possible d'avoir une copie du module ?

Cordialement, janus57


Ma boule de cristal est en panne. merci de donner les détails de votre problème
   
cff

Booster Fronde

rank_0.png

Avatar

Groupe: Membre

Inscrit le: 10/11/2017

Messages: 7

Le 30/09/2018 à 22h45
Lien vers le module au format zip envoyé par message privé...



Edité par cff Le 30/09/2018 à 23h34


Claude
   

Modérateur

rank_modo.png

Avatar

Equipe Rédaction
Equipe Modération

Inscrit le: 04/04/2016

Messages: 229

Le 02/10/2018 à 12h10
Bonjour,

Le problème est-il réglé ? Si non, merci de me passer également le lien vers le module afin que je vérifie son fonctionnement.
Merci


Merci de penser à joindre le rapport système de votre site, il peut nous aider à mieux répondre à vos questions.
Mail Site web    
cff

Booster Fronde

rank_0.png

Avatar

Groupe: Membre

Inscrit le: 10/11/2017

Messages: 7

Le 02/10/2018 à 16h10
Bonjour,

Merci pour l'intérêt et le temps passé sur ma question.

Je t'ai envoyé en MP le lien vers le fichier zip du module en question.

bonne journée !


Claude
   

Booster Fusée

rank_6.png

Avatar

Equipe Assistance

Inscrit le: 07/12/2007

Messages: 6246

Le 02/10/2018 à 20h21
Bonjour,

petit retour rapide (car j'aii pas trop eu le temps de regarder en profondeur).

Donc déjà je vois des anomalies, à savoir :
  1. que il y a un fichier "locExtensionPointController.class.php" dans /controllers qui commence par un jolie "class locExtensionPointProvider"
  2. que dans /phpboost il y a un locExtensionPointController.class.php avec un "extends ExtensionPointController" (qui n'existe pas à priori)
  3. error_reporting et ini_set dans le index.php (mauvaise pratique car si vous voulez des message d'erreur il suffit d'activer le mode DEV de PHPBoost [A NE JAMAIS FAIRE SUR UN SITE LIBREMENT ACCESSIBLE VIA INTERNET]
  4. un echo dans locTreeLinks (préférer la class de débug de phpboost)


Mais déjà ce qui est sûr c'est qu'il faut éliminer les fichier en doublons pour éviter que le mauvais soit chargé dans l'autoload.

Cordialement, janus57


Ma boule de cristal est en panne. merci de donner les détails de votre problème
   
cff

Booster Fronde

rank_0.png

Avatar

Groupe: Membre

Inscrit le: 10/11/2017

Messages: 7

Le 02/10/2018 à 22h55
Merci pour la réponse,

Les erreurs remarquées sont le résultat des nombreux tests que j'ai tenté avant de poster sur ce forum et il semble que j'ai oublié de les supprimer.

le fichier /controllers/locExtensionPointController.class.php a été supprimé,
ainsi que le fichier /phpboost/locExtensionPointController.class.php.

Dans le fichier index.php j'ai commenté l'error_reporting ainsi que l'ini_set

La ligne 'echo' dans locTreeLinks me servait à vérifier que la classe était appelée, ce qui ne semble pas être le cas. Je l'ai également commentée.

Malgré toutes ces corrections (pour lesquelles je te remercie !) ce f**** menu ne s'affiche toujours pas !

Je me demande où j'ai encore pu commettre une boulette !


Claude
   

Modérateur

rank_modo.png

Avatar

Equipe Rédaction

Inscrit le: 26/12/2015

Messages: 289

Le 08/10/2018 à 08h40
Bonjour,

réponse et début de solution envoyées par mp.
Pour toutes questions, poursuivons sur le forum.

Cordialement,
Xela.
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie
1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté