13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
* Point de vente (caisse)
* Import depuis un format spécifique
* Envoi de mails au format HTML
<h3>Structure archive PHAR</h3>
* garradin_plugin.ini : informations sur le plugin
* www/index.php : affiché quand on clique sur le plugin
* www/admin/index.php (optionnel) : affiché quand on clique sur le plugin dans le menu admin (si menu=1)
* install.php (optionnel) : appelé lors de l'installation du plugin
* upgrade.php (optionnel) : appelé lors de la mise à jour du plugin, qu'elle soit une mise à jour vers une version supérieure ou inférieure (downgrade)
* uninstall.php (optionnel) : appelé lors de la suppression du plugin
* signals.php (optionnel) : appelé quand un signal enregistré est activé
* www/config.php (optionnel, si le plugin peut être configuré) : appelé depuis la page de configuration des plugins
* config.json (optionnel, si le plugin peut être configuré) : configuration par défaut du plugin
<h3>Contenu de garradin_plugin.ini</h3>
<pre>
nom="Nom du plugin"
description="Description courte du plugin"
auteur="Nom de l'auteur"
url="URL du site du plugin"
version="Numéro de version"
menu=0 ; ou 1 pour qu'une sous-entrée apparaisse dans le menu des plugins
menu=0 ; ou 1 pour qu'une sous-entrée apparaisse dans le menu des plugins sur la partie privée (admin), en ce cas le fichier www/admin/index.php est obligatoire
config=0 ; ou 1 pour que le plugin ait une configuration personnalisable, dans ce cas il faut fournir les fichiers config.json (configuration par défaut) et config.php (modification de la configuration par l'utilisateur)
</pre>
Ces informations sont enregistrées dans la base de données de l'association
<h3>Méthodes de l'objet \Garradin\Plugin</h3>
* __construct(string $id)
* setConfig(string $key, string $value) : enregistre la configuration du plugin, si $value est null alors cette 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 PHAR du plugin
<h3>Dans le plugin : templates</h3>
Garradin fournit la lib Template_Lite, 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>
$tpl->display(PLUGIN_ROOT . '/templates/index.tpl');
</pre>
Inclure un template de Garradin depuis un template :
<pre>
{include file="admin/_head.tpl"}
</pre>
Inclure un template du plugin depuis un autre template du plugin :
<pre>
{include file="`$plugin_root`/templates/_nav.tpl"}
</pre>
Faire un lien vers une autre page du plugin :
<verbatim>
<a href="{plugin_url file="liste.php"}">Liste des trucs</a>
</verbatim>
Inclure une feuille de style CSS supplémentaire sur les pages du plugin (chemin relatif à la racine du plugin) :
<pre>
$tpl->assign('plugin_css', 'styles/bleu.css');
</pre>
<h2>Plugins officiels</h2>
Garradin offre deux possibilités d'installer des plugins :
* simplement en copiant un fichier PHAR dans le répertoire 'plugins' de Garradin
* en passant par un "répertoire" officiel, sorte d'appstore des plugins Garradin
|