DokuWiki

It's better when it's simple

Outils pour utilisateurs

Outils du site


fr:devel:action_plugins

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:devel:action_plugins [2010-07-20 14:54] – [Sample Action Plugin 1] Arthur Lobertfr:devel:action_plugins [2013-11-02 02:14] (Version actuelle) Klap-in
Ligne 5: Ligne 5:
 ===== Description ===== ===== Description =====
  
-Les Plugins d'action sont chargés avant tout traitement de processus Dokuwiki. Suite à ce chargement, chaque plugin est appelé par sa méthode ''register()'',  pour lui permettre d'enregistrer chacun des gestionnaires d'événements ('event handlers'). Quand un des événements est signalé, tout les gestionnaire d'événements enregistrés pour cet événements sont appelés à leur tour (et sans ordre particulier), et font passer les objets 'événement' par leurs référence.  Le gestionnaire a la possibilité d'exécuter des actions basées sur les données de l'événementet de modifier soit les données de l'événement, soit les processus ultérieures de l'événement. Pour plus de détails concernant le fonctionnement du système et la liste des événements,  veuillez vous référer à la page [[devel:events]].+Les Plugins d'action sont chargés avant tout traitement de processus Dokuwiki. Suite à ce chargement, chaque plugin est appelé par sa méthode ''register()'',  pour lui permettre d'enregistrer chacun des gestionnaires d'événements ('event handlers'). Quand un des événements est signalé, tous les gestionnaires d'événements enregistrés pour cet événement sont appelés chacun leur tour (et sans ordre particulier), et font passer les objets 'événement' par leur référence.  Le gestionnaire a la possibilité d'exécuter des actions basées sur les données de l'événement et de modifier soit les données de l'événement, soit les processus ultérieurs de celui-ci. Pour plus de détails concernant le fonctionnement du système et la liste des événements, veuillez vous référer à la page [[devel:events]].
  
 ===== Technique ===== ===== Technique =====
Ligne 12: Ligne 12:
  
   * Chaque plugin est localisé dans son propre répertoire, dans ''lib/plugins''.   * Chaque plugin est localisé dans son propre répertoire, dans ''lib/plugins''.
-  * Un plugin d'action (''action.php'') devrait être appelé , ou si celui-ci est localisé dans le sous répertoire ''action'', il peut être appelé autrement (voir [[devel:Plugin File Structure]]). +  * Un plugin d'action devrait être appelé ''action.php'', ou si celui-ci est situé dans le sous-répertoire ''action'', il peut être être nommé avec n'importe quel nom (voir [[devel:Plugin File Structure]]). 
-  * Un plugin d'action constitue une classe unique: ''action_plugin_<plugin name>'', qui étend la base de classe [[xref>DokuWiki_Action_Plugin]], situé            dans ''lib/plugins/action.php''. Si le fichier du plugin d'action est dans le sous-répertoire ''action'' du dossier du plugin,  alors la classe devra être ''action_plugin_<plugin name>_<action plugin filename>'' (ou les noms de fichier du plugin d'action n'incluent pas l'extension '.php'). +  * Un plugin d'action est constitué d'une classe unique: ''action_plugin_<plugin name>'', qui étend la classe de base [[xref>DokuWiki_Action_Plugin]], située dans ''lib/plugins/action.php''. Si le fichier du plugin d'action est dans le sous-répertoire ''action'' du dossier du plugin,  alors la classe devra être ''action_plugin_<plugin name>_<action plugin filename>'' (où les noms de fichier du plugin d'action n'incluent pas l'extension '.php'). 
-  * Le plugin est fourni avec une introspection standard, une localisation et des fonctions de configuration via la dernière base de classes, [[xref>DokuWiki_Plugin]], située dans ''inc/plugin.php'', voir [[devel:Common Plugin Functions]].+  * Le plugin est fourni avec une introspection standard, une localisation et des fonctions de configuration via la classe de base suprême, [[xref>DokuWiki_Plugin]], située dans ''inc/plugin.php'', cf. [[devel:Common Plugin Functions]].
   * Le plugin doit déclarer une méthode ''register()'', et certains gestionnaires qui y sont enregistrés.   * Le plugin doit déclarer une méthode ''register()'', et certains gestionnaires qui y sont enregistrés.
-  * les librairies externes doivent être chargés au moment où le plugin en a besoin ou dans le constructeur, et non pas en haut du fichier.+  * Les librairies externes doivent être chargées au moment où le plugin en a besoin ou alors dans le constructeur, et non pas en début du fichier.
  
 ==== register() ==== ==== register() ====
Ligne 28: Ligne 28:
      * @return   not required      * @return   not required
      */      */
-    function register(&$controller) {+    function register(Doku_Event_Handler $controller) {
       $controller->register_hook(<EVENT NAME>, <EVENT ADVISE>, $this, <event handler function>, <parameters to be passed to event handler>);       $controller->register_hook(<EVENT NAME>, <EVENT ADVISE>, $this, <event handler function>, <parameters to be passed to event handler>);
     }     }
Ligne 34: Ligne 34:
  
 ==== <event handler>() ===== ==== <event handler>() =====
-**optionnel** ont autant que nécessaire, peut avoir n'importe quel nom du moment que celui-ci n'est pas déjà utilisé dans ce plugin ou dans une classe ancêtre. +**optionnel** aussi nombreux que nécessaire, peuvent avoir n'importe quel nom du moment que celui-ci n'est pas déjà utilisé dans ce plugin ou dans une classe ancêtre. 
 <code php> <code php>
     /**     /**
Ligne 51: Ligne 51:
 ===== Exemple ===== ===== Exemple =====
  
-les plugins d'action sont un moyen de modifier plusieurs aspects du comportement de Dokuwiki dans certains cas, indépendamment à la syntaxe de la page. Pour pouvoir modifier un comportement interne de Dokuwiki, il faut un déclenchement d'événement. Votre plugin d'action peut inscrire ce gestionnaire tel un événement et travailler avec les donnés données par cet événement.   +Les plugins d'action sont un moyen de modifier plusieurs aspects du comportement de Dokuwiki et cela, dans certains cas, indépendamment de la syntaxe de la page. Pour pouvoir modifier un comportement interne de Dokuwiki, il faut un déclenchement d'événement. Votre plugin d'action peut inscrire ce gestionnaire tel un événement et travailler avec les donnés données par cet événement.   
-To learn more about eventsread the following pages:+Pour en savoir d'avantage sur les événementsconsulter les pages suivantes:
  
   * [[events]]   * [[events]]
Ligne 83: Ligne 83:
      * Register its handlers with the DokuWiki's event controller      * Register its handlers with the DokuWiki's event controller
      */      */
-    function register(&$controller) {+    function register(Doku_Event_Handler $controller) {
         $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this,         $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this,
                                    '_hookjs');                                    '_hookjs');
Ligne 104: Ligne 104:
 ==== Sample Action Plugin 2 ==== ==== Sample Action Plugin 2 ====
  
-Inserts a button into the editor toolbar:+Inserer un bouton dans la barre d'outils 'éditeur';
  
-  * registers as handler for the [[events_list#toolbar_define|TOOLBAR_DEFINE]] event with an AFTER advise +  * Enregistrer tel un gestionaire pour l' [[events_list#toolbar_define|TOOLBAR_DEFINE]] évenement avec un 'AFTER advise' 
-  * adds a button definition to the event'''data''+  * Ajouter une définition de bouton au''data'' de l'évenement.
  
 <code php> <code php>
Ligne 126: Ligne 126:
      * Register the eventhandlers      * Register the eventhandlers
      */      */
-    function register(&$controller) {+    function register(Doku_Event_Handler $controller) {
         $controller->register_hook('TOOLBAR_DEFINE', 'AFTER', $this, 'insert_button', array ());         $controller->register_hook('TOOLBAR_DEFINE', 'AFTER', $this, 'insert_button', array ());
     }     }
Ligne 145: Ligne 145:
 } }
 </code> </code>
- +vois aussi [[plugin_programming_tips]]
-see also [[plugin_programming_tips]]+
fr/devel/action_plugins.1279630440.txt.gz · Dernière modification : 2010-07-20 14:54 de Arthur Lobert

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki