Plugin

Dernière modification : -


// 2007/11/06 10:49 / 64.208.49.22
Cette possibilité existe uniquement à partir de WiKiss 0.3

! Principes
Les plugins sont des extensions à WiKiss permettant de lui ajouter de nouvelles fonctionnalités.

* un plugin <--> un fichier php commençant par '''wkp_''' <--> une classe
* regroupés dans un répertoire et chargés automatiquement --> plugins/

! Liste de plugins
* [wkp_Rss] : Genération de flux RSS
* [wkp_Themes]: Choix du thème d'affichage
* [wkp_ListPlugins] : Liste des plugins installés
* [wkp_Tables] : Permet de faire des tableaux dans vos pages Wiki

! Développement d'un plugin

!! Structure
Un plugin se présente sous la forme d'un fichier ''.php'' installé dans le répertoire ''plugins'' de votre WiKiss.
Le nom de ce fichier doit être de la forme '''wkp_'''<LeNomDuPlugin>'''.php'''. Ce fichier ne contient qu'une classe nommée LeNomDuPlugin.
{{
<?php # coding: utf-8
/* fichier wkp_MyWikissPlugin.php */
class MyWikissPlugin
{
/* votre code */
}
?>}}

!! Méthodes
!!! __construct
* appelée à l'initialisation du plugin
!!! __destruct
* appelée à la destruction du plugin
!!! writedPage
* appelée après l'écriture (la modification) d'une page
* utilisable typiquement pour un flux rss, un envoi de mail ...
!!! action
* appelée lorsqu'une action est inconnue
* in: le nom de l'action
* out: ''TRUE'' si action traitée, ''FALSE'' sinon
!!! formatBegin
* appelée au début de l'analyse du formatage de la page
!!! formatEnd
* appelée à la fin de l'analyse du formatage de la page
!!!template
* appelée lors de la phase de remplissage du template html
!! Attributs
!!! description
* ce que fait le plugin en une ligne
* public

!! Archive
Le plugin doit être fournit sous forme d'une archive contenant tous les fichiers nécessaires au plugin. La racine de celle-ci doit être la racine de WiKiss. De plus elle doit contenir l'arborescence du plugin.
Le nom de celle-ci doit être le nom du plugin.
Par exemple l'archive d'un plugin très simple devra contenir :
{{plugins/
plugins/wkp_TresSimple.php}}


!! Exemples
Vous trouverez dans le répertoire ''plugins'' de WiKiss quelques plugins simples sur lesquels vous pouvez vous baser.
Un [squelette de plugin|?page=wkp_Test] est aussi disponible.

! Idées de Plugins
* Upload
* '--Genération de flux RSS [wkp_Rss]--'
* Intégration de page dynamique
* Ajout de contenu ''embeded'' (vidéo YouTube ...)
* '--Gestion des templates (à la [fvaTigerWiki|http://vado.fabrice.free.fr/tigerwiki/]) [wkp_Themes]--'
* Fil d'Arianne
* Hiérarchisation des pages
* gestion des pages (verrouiller ...)
* '--Liste des plugins installés [wkp_ListPlugins]--'

! Performances
Le nombre de plugins peut faire chuter les performances de WiKiss.
Tests réalisés sur un vieux Celeron, moyenne de 100 affichages de la page [TestSpeed|http://kubuntu.free.fr/TigerWiki/?page=TestSpeed] avec instrumentation du code et avec la version WiKiss 0.3rc1.
Entre () le nombre de plugins. Les chiffres sont en secondes
{{WiKiss 0.2.1 : 0,388500
WiKiss 0.3dev ( 0): 0,370330
WiKiss 0.3dev ( 2): 0,392012
WiKiss 0.3dev (12): 0,494774
WiKiss 0.3dev (12): 0,530683 *

* : version abandonnée (avec passage de paramètres)
}}

TOC