Changes to "Plugins" between 2014-03-21 01:48:11 and 2014-03-21 04:02:52

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