Pages: 1
dans ce post la : http://forum.phpwebgallery.net/viewtopi … 374#p73374
p@t nous parle de priorité pour la fonction add_event_handler.
j'avais deja vu ce parametres dans les exemples du wiki, mais impossible de trouver une explication sur ce parametre.
pour ne pas faire de hs la bas, je poste ce nouveau sujet.
Hors ligne
pour de ce que j'ai vu en dépiautant le code, la priorité permet définir quel évènement est géré avant un autre.
imagine un plugin A :
add_event_handler('evement_particulier', 'ma_fonction_pluginA', 80);
imagine un plugin B :
add_event_handler('evement_particulier', 'ma_fonction_pluginB', 20);
les deux plugins font usage du même évènement.
la fontion du plugin B sera traitée avant celle du plugin A (plus le chiffre est fort, moins on est prioritaire). Si j'ai bien compris. çà reste à confirmer par des plus expérimenté que moi.
par défaut, on est à 50.
Hors ligne
C'est bien ça...
Ce qui permet temporairement de lever des incompatibilités.
rvelices a exprimé les choses ainsi.
Mais on peut dire aussi qu'en passant en dernier, on se mange les modifications des autres, mais on a le dernier mot.
En passant en premier, ramasse une situation claire et propre; et on fiche le bazar !!!
8-)
PS: C'est ce que j'ai fait avec Front2Back et PY GVideo, il y a deux jours mais le pb est réglé.
Hors ligne
merci, c'est clair maintenant.
question subsidiaire : est il possible de connaitre, pour un evenement donné, les fonctions (ou plugins) qui sont declenché par cet evenement ?
(a part de depouiller le code de tout les plugin ? ^^)
Hors ligne
je ne pense pas que çà soit possible sans aménagements spécifique de la gestion des plugins.
apr contre, tu peux faire un plugin, qui parcoure l'arborescence du répertoire plugin, ouvre tous les fichiers .php, et recherche la chaine add_event_handler pour dresser une liste.
çà doit être assez facile à faire.
limite je peux tenter de le faire là.
Hors ligne
ce n'est pas specialement un besoin pour moi, c'etait plus pour pousser le sujet un peu plus loin.
mais avec la multiplication des plugins, ca risque de devenir un bon outil pour les plug'eurs.
faut garder l'idée de coté ;)
(ou le faire ... t'as l'air motivé :) )
Hors ligne
hop, une version ultra simpliste.
http://phpwebgallery.net/ext/extension_view.php?eid=186
Hors ligne
Pour info, Menubar Manager utilise le trigger loc_end_menubar avec la priorité 60...
Pourquoi 60 me direz-vous?
Parce que pas mal de plugins utilisent ce trigger (avec la priorité par défaut), et la plupart doivent passer avant menubar manager... car celui-ci remplace completement le menubar.tpl par son propre template.
Donc, pour une parfaite compatibilté de son plugin personel (ou autre) avec menubar manager:
- si on veut intervenir uniquement sur du code php du menubar, on laisse la priorité par défaut (50)
- si on veut rajoutert un bloc menu complet en utilisant la fonction set_menubar_manager_data, on utilise aussi la priorité par défaut.
- si on veut modifier le code tpl du menuabar (par exemple avec la fonctions add_before_tpl_code décritent dans le wiki), on utilise une priorité > 60
Note: les plugins OnIndex (ComOnIndex, EditoOnIndex, etc...) font exception. Ils utilisent une priorité d'appel "dynamique" si Index Manager est installé...
Cela permet d'ordonner ces plugins sur la page d'accueil.
Dernière modification par P@t (2007-10-10 15:19:18)
Hors ligne
Pages: 1