Un PliciTag est un outil qui va vous permettre d'afficher une information dans une page de votre site. Plici est distribué avec plusieurs PliciTag de bases (comme insérer du code html, exécuter une requête SQL, la liste complète étant disponible sur http://wiki.plici.net/list_plicitag ).
Il existe plusieurs types prédéfinis de PliciTag, comme les plicitags de détail ou de lien (il est bien sûr possible d'en créer de nouveau). Plus précisemment, il s'agit d'une instruction qui peut être appelée depuis n'importe quelle page, qui va être interprétée par le moteur de Plici pour exécuter le code définit dans le source du PliciTag.
Plusieurs répertoires peuvent accueillir des PliciTag :
- /common_plicitags/ ;
- /view/sites/my/BDD/plicitag/ (où BDD représente le nom d'un site).
Dans le premier cas, on trouve tous les PliciTags qui peuvent être utilisés de manière commune sur tous les sites. Le second répertoire contient les PT propres à chaque site (ils doivent être créés/déposés par le super admin et activés avant de pouvoir être utilisés).
En terme de code PHP, un PT est une classe étendue d'une autre classe nommée xPliciTag. Avant de débuter la création du code, il vous faut déterminer le type de PT que vous voulez concevoir : détail, lien, ou autre chose. Ensuite, il suffit de créer un dossier du nom de votre PT dans le répertoire correspondant au type choisit (ou de créer un nouveau répertoire si ce type n'existe pas déjà.
Exemple :
Pour créer un PT commun, nommé 'monplicitag', de type détail, il faut créer un répertoire 'monplicitag' dans /common_plicitags/detail/. Pour un PT spécifique au site 'toto', de type 'panier' et nommé 'affichagepanier', il faut : - d'abord créer /view/sites/my/toto/plicitag/panier ; - et ensuite /view/sites/my/toto/plicitag/panier/affichagepanier.
Le fichier contenant le code doit s'appeler plicitag_nomduplicitag.class.php (en suivant les exemples ci-dessus il faudra créer pour le premier cas /common_plicitags/detail/monplicitag/plicitag_monplicitag.class.php, et dans le second /view/sites/my/toto/plicitag/panier/affichagepanier/plicitag_affichagepanier.class.php).
Il ne reste plus qu'à écrire votre PT !
Déclaration d'un PT :
Cette classe doit étendre la classe xPlicitag, voici un exemple de code pour PliciTag_time.
// force classe to not be loaded twice if inherited from another class if (class_exists("PliciTag_time")) return; class PliciTag_time extends xPliciTag { function replacePliciTag($params, $content, &$smarty) { return "hello World"; } }
Quelques points importants :
- Quand vous créez votre PT, il est important de lui donner un nom assez explicite, ainsi que de bien documenter les lignes qui permettent d'identifier l'auteur, la description du PT, etc.
- Le retour de la fonction replacePliciTag doit être une chaîne, sinon votre PT ne fera rien du tout !
- Quand vous souhaitez réaliser un requête SQL (création d’une table, selection, etc.), vous devez préfixer le nom de votre table par : $this→m_table_prefix
Voici la liste des fonctions qui seront appelées pour utiliser la classe de votre PliciTag :
Comme notre PliciTag étend xPliciTag, on peut ne déclarer que les fonctions dont on a besoin.
Pour tout PliciTag, la classe qui le définit n’est chargé qu’une seule fois, ainsi une variable membre pourra être incrémenté de Tag en Tag. Il est possible qu'un PliciTag hérite d'un autre pour l'améliorer.
Place du xPlicitag : core/internal_components/common/plicitag/xplicitag.class.php
Le patron smarty qu’utilise le PliciTag doit seulement utiliser les données fournies par la classe de ce PliciTag, sinon le système de cache entraînera des résultats aléatoires.
Précisions sur l’utilisation d’un patron Smarty, {include file="xx"} va chercher le patron dans le site et {include file=$plicitag_basedir|cat:"test2.tpl"} va le chercher dans le répertoire du PliciTag.
Voici la liste des fonctions qui seront appelées pour utiliser la classe de votre PliciTag pour un lien :
Dans la description d’une page on peut utiliser un PliciTag avec cette syntaxe :
Pour cela, vous devez isoler vos fichiers (tout en contenant l’arborescence /link/nomdutag/..) et le compresser au format tar, gz, tgz, bz2, tbz, zip, ar (ou deb).
Ensuite, il est vivement conseillé de le placer sur le Wiki avec une notice explicative.
Ainsi, tout super utilisateur de Plici pourra utiliser votre PliciTag.
- Je vous propose vivement de regarder dans /common_plicitags/ les exemples de PliciTag qui sont directement disponibles dans Plici. L'exemple type et le plus complet est "common_plicitags/link/externallink/plicitag_externallink.class.php"