•  » Plugins
  •  » [Dev Plugins] Comment gérer les priorités des triggers ?

#1 2009-11-28 22:06:40

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

[Dev Plugins] Comment gérer les priorités des triggers ?

Bonsoir à tous.

Pour l'essentiel, tout est dans le titre et fait suite à [Forum, topic 16444] Extended Description, Language Switch et NBC_UserAdvManager pour lequel je patauge...

Les plugins sont de plus en plus nombreux (et c'est une très bonne chose). Mais l'utilisation conjointe d'un même trigger par deux ou plusieurs plugin peut poser des problèmes de priorité des uns par rapport aux autres. J'ouvre donc un topic spécial destiné à apporter une réponse (que je n'ai pas !) pour l'ensemble de la communauté des développeurs de plugins pour Piwigo.

Bien entendu, la synthèse de ce qui sera rapporté ici donnera lieu à une explication détaillée et globale dans cette page du wiki.


Je expose ici, brièvement, mon problème personnel à titre d'exemple :

Le plugin NBC_UserAdvManager permet d'envoyer un certain nombre d'emails dont le contenu est personnalisable et (en théorie) variable en fonction de la langue de l'utilisateur destinataire grâce à Extended Description. Seulement, malgré les balises [lang] correctement positionnées, le contenu des mails arrive toujours en anglais (langue par défaut) sans tenir compte de la langue du destinataire.

La gestion de l'affichage de la langue de galerie et, par extension, de l'utilisateur est géré par le plugin Language Switch.

Il y a probablement un problème de priorité d'un plugin par rapport à l'autre. Mais comment connaitre l'ordre d'exécution ? Et comment faire pour modifier cet ordre (par exemple, que UserAdvManager appelle certains triggers après les autres plugins) ?

Hors ligne

#2 2009-11-28 22:55:15

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [Dev Plugins] Comment gérer les priorités des triggers ?

Exploiter le contenu de $pwg_event_handlers

Cf. http://code.piwigo.org/repositories/ent … nc.php#L43

Contient les points d'ancrages et les fonctions à solliciter.

http://code.piwigo.org/repositories/ent … nc.php#L63
Tri dès l'ajout d'une nouvelle fonction à solliciter.


http://code.piwigo.org/repositories/ent … c.php#L141
ou
http://code.piwigo.org/repositories/ent … c.php#L181
Les appels.


Si tu fais un var_dump($pwg_event_handlers['loc_end_index']);
par exemple:

array(2) {
  [50]=>
  array(1) {
    [0]=>
    array(2) {
      ["function"]=>
      string(13) "rvm_end_index"
      ["accepted_args"]=>
      int(1)
    }
  }
  [95]=>
  array(1) {
    [0]=>
    array(2) {
      ["function"]=>
      array(2) {
        [0]=>
        &object(language_controler)#1 (0) {
        }
        [1]=>
        string(6) "_flags"
      }
      ["accepted_args"]=>
      int(1)
    }
  }
}


Dans ton footer.tpl
{php}
global $pwg_event_handlers;
var_dump($pwg_event_handlers['loc_end_index']);
{/php}


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

  •  » Plugins
  •  » [Dev Plugins] Comment gérer les priorités des triggers ?

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2025 · Contact