Overview
Comment:doc signaux plugins
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 44ec6720011385e6cd98c2db8c16a8817329c3d2
User & Date: bohwaz on 2015-01-31 06:44:41
Other Links: manifest | tags
Context
2015-02-04
02:27
Fix [16af9ccf92] : comptes de crédit et débit lors du report à nouveau automatique check-in: e5a990bf5a user: bohwaz tags: trunk
2015-01-31
06:44
doc signaux plugins check-in: 44ec672001 user: bohwaz tags: trunk
02:56
correction appel namespace check-in: 9aab6f827b user: bohwaz tags: trunk
Changes

Modified doc/dev/plugins.skriv from [b8ff24ef4e] to [3950e62c06].

81
82
83
84
85
86
87

88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121

122

123
124
125
126
127
128
129
=== Scripts magiques ===

Chaque archive peut comporter certains ''scripts magiques'' qui seront appelés automatiquement par Garradin lors de certains événements.

* **install.php** est appelé quand le plugin a été téléchargé et qu'il est déjà noté comme installé (post-installation), utile notamment pour créer une table dans la base de données
* **upgrade.php** : quand la version de l'archive (notée dans garradin_plugin.ini) ne correspond pas à la version enregistrée en base de donnée
* **uninstall.php** : juste avant que le plugin ne soit supprimé, utile par exemple pour supprimer une table créée dans la base de données


Ces scripts ne peuvent pas être appelés par une requête HTTP via l'interface privée ou publique.

=== Objet Garradin\Plugin ==

* __construct(string $id)
* setConfig(string $key, string $value) : enregistre la configuration du plugin, si $value est null alors tte clé est effacée de la configuration
* getConfig(string $key) : récupère la valeur de la clé $key pour la configuration du plugin
* getInfos() : renvoie les informations enregistrées sur le plugin
* upgrade() : mise à jour du plugin
* needsUpgrade() : le plugin doit-il être mis à jour ?
* uninstall() : désinstaller le plugin
* id() : renvoie l'identifiant du plugin
* path() : renvoie le chemin vers l'archive du plugin
* registerSignal(string $signal, string $callback) 

=== Base de données ===

Tous les plugins ont un accès illimité à la base de données principale de Garradin. Cependant il est interdit d'ajouter, modifier ou supprimer des données directement dans les tables de cette BDD afin de ne pas compromettre l'intégrité des données. Pour modifier ces données il faut utiliser les méthodes de Garradin.

Chaque plugin peut créer une ou plusieurs tables dans cette BDD, elles devront par contre être supprimées à la désinstallation. Dans ce cas un plugin peut modifier directement ses tables.

=== Fichiers ===

Les plugins ne doivent pas créer, modifier ou supprimer de fichiers dans l'arborescence de Garradin.

Les seuls fichiers qu'un plugin devrait modifier sont :
* du cache : utiliser de préférence l'objet Static_Cache de Garradin, ou faire attention aux collisions de noms ;
* les squelettes dans le répertoire **www/squelettes/**

Pour enregistrer et récupérer des documents il faut utiliser les méthodes de stockage de fichiers fournies par Garradin.

=== Signaux ===





=== Dans les templates ===

Garradin fournit la lib Template_Lite pour les pages privées (répertoire /admin/), où elle est déjà chargée par défaut. C'est une version allégée de Smarty 2.

Afficher un template contenu dans le plugin :
<pre>







>














|



















>

>







81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
=== Scripts magiques ===

Chaque archive peut comporter certains ''scripts magiques'' qui seront appelés automatiquement par Garradin lors de certains événements.

* **install.php** est appelé quand le plugin a été téléchargé et qu'il est déjà noté comme installé (post-installation), utile notamment pour créer une table dans la base de données
* **upgrade.php** : quand la version de l'archive (notée dans garradin_plugin.ini) ne correspond pas à la version enregistrée en base de donnée
* **uninstall.php** : juste avant que le plugin ne soit supprimé, utile par exemple pour supprimer une table créée dans la base de données
* **signals.php** : inclus quand un signal enregistré est appelé

Ces scripts ne peuvent pas être appelés par une requête HTTP via l'interface privée ou publique.

=== Objet Garradin\Plugin ==

* __construct(string $id)
* setConfig(string $key, string $value) : enregistre la configuration du plugin, si $value est null alors tte clé est effacée de la configuration
* getConfig(string $key) : récupère la valeur de la clé $key pour la configuration du plugin
* getInfos() : renvoie les informations enregistrées sur le plugin
* upgrade() : mise à jour du plugin
* needsUpgrade() : le plugin doit-il être mis à jour ?
* uninstall() : désinstaller le plugin
* id() : renvoie l'identifiant du plugin
* path() : renvoie le chemin vers l'archive du plugin
* registerSignal(string $signal, string $callback) : enregistre un callback associé à un signal

=== Base de données ===

Tous les plugins ont un accès illimité à la base de données principale de Garradin. Cependant il est interdit d'ajouter, modifier ou supprimer des données directement dans les tables de cette BDD afin de ne pas compromettre l'intégrité des données. Pour modifier ces données il faut utiliser les méthodes de Garradin.

Chaque plugin peut créer une ou plusieurs tables dans cette BDD, elles devront par contre être supprimées à la désinstallation. Dans ce cas un plugin peut modifier directement ses tables.

=== Fichiers ===

Les plugins ne doivent pas créer, modifier ou supprimer de fichiers dans l'arborescence de Garradin.

Les seuls fichiers qu'un plugin devrait modifier sont :
* du cache : utiliser de préférence l'objet Static_Cache de Garradin, ou faire attention aux collisions de noms ;
* les squelettes dans le répertoire **www/squelettes/**

Pour enregistrer et récupérer des documents il faut utiliser les méthodes de stockage de fichiers fournies par Garradin.

=== Signaux ===

Les plugins peuvent se « brancher » sur des signaux émis par Garradin lors de certaines actions.

FIXME plus de doc.

=== Dans les templates ===

Garradin fournit la lib Template_Lite pour les pages privées (répertoire /admin/), où elle est déjà chargée par défaut. C'est une version allégée de Smarty 2.

Afficher un template contenu dans le plugin :
<pre>