Overview
Comment: | mise à jour doc. plugins développeur |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
44152a38930cdb39a0b76928cfc0b486 |
User & Date: | bohwaz on 2015-01-18 02:20:58 |
Other Links: | manifest | tags |
Context
2015-01-18
| ||
02:21 | mise à jour version 0.7 et crédits du readme check-in: 5474892d24 user: bohwaz tags: trunk | |
02:20 | mise à jour doc. plugins développeur check-in: 44152a3893 user: bohwaz tags: trunk | |
02:20 | Correction bugs squelette par plugin check-in: bd066439f3 user: bohwaz tags: trunk | |
Changes
Modified doc/dev/plugins.skriv from [fbe43be174] to [e269494bdf].
︙ | |||
33 34 35 36 37 38 39 | 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 | - + - + - + + + + + + | == Détails techniques == === Format des plugins === Les plugins sont des archives .tar.gz : tous les fichiers du plugin (code PHP, CSS, templates, images, etc.) sont stockés dans l'archive et y restent. |
︙ | |||
109 110 111 112 113 114 115 | 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | - + | * 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. === Dans les templates === |
︙ | |||
135 136 137 138 139 140 141 | 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + | <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> === Site public === Le site public de l'association n'utilise pas Template_Lite mais des squelettes, qui sont très similaires aux squelettes utilisés par SPIP. Un plugin peut modifier les squelettes (dans ce cas il est intéressant de proposer une sauvegarde à l'utilisateur pour ne pas écraser les modifs qu'il a pu faire), via la méthode Squelette::editSource(string $file, string $content). Ne pas modifier les squelettes directement, mais seulement en utilisant cette méthode. Un plugin peut également implémenter de nouveaux types de boucles. Dans ce cas l'installation du plugin doit appeler la méthode $plugin->registerSkelLoopName(string $loop_name). Ensuite quand cette boucle sera utilisée dans un squelette, le fichier skel_loop.php à la racine du plugin sera appelé. Les variables fournies sont : * $loopName = le nom de la boucle (par exemple dans <BOUCLE_actu(ARTICLES)> c'est **actu**) * $loopType = le type de boucle * $loopCriterias = les critères de la boucle, sous forme de tableau, voir la doc de KD2\MiniSkel pour les détails * $loopContent = le contenu de la boucle * $preContent = le contenu (facultatif) pré-boucle qui ne sera renvoyé qu'en cas de succès * $postContent = le contenu (facultatif) post-boucle qui ne sera renvoyé qu'en cas de succès * $altContent = le contenu (facultatif) alternatif qui sera affiché si la boucle ne renvoie rien La manière la plus simple d'implémenter un nouveau type de boucle est de remplir la variable $query dans skel_loop.php. Exemple : <pre> if ($loopType == 'stats_articles') { $query = 'SELECT COUNT(*) AS nb_articles FROM wiki_pages;'; } </pre> Ainsi la requête SQL sera exécutée dans la base SQLite de Garradin et chaque itération de résultat donnera lieu à l'affichage de $loopContent, dont les tags seront remplacés (ici par exemple #NB_ARTICLES sera automatiquement remplacé). Il est possible aussi de remplir dans ce contexte la variable $loopStart avec du code PHP, qui sera exécuté à chaque itération de la boucle avant l'affichage. Par exemple on peut l'utiliser pour remplir une balise : <pre> $loopStart = '$row[\'iteration\'] = $i++;'; </pre> Enfin, une autre méthode est d'utiliser un return dans skel_loop.php. En ce cas il faut renvoyer un string contenant du code PHP, qui sera enregistré dans le fichier de cache compilé et exécuté. Consulter le code de \KD2\Squelette pour en savoir plus. |