WDD_replace: un plugin, des smileys et des galeries !
Depuis la réfection de Warriordudimanche.net, l'affichage des smileys est assuré par un plugin appliquant des règles de remplacement.
Avant de l'offrir en pâture à mes chers visiteurs, je voulais le tester assez longtemps.
Puis, avec la série des auto_thumbs et auto_galerie, j'ai eu l'idée de perfectionner ce plugin en lui ajoutant la possibilité de créer une galerie d'image à partir d'une simple balise <galerie>...
Après travail et test, ben ça marche plutôt bien et c'est même paramétrable
Les hooks
Ce plugin crée plusieurs nouveaux hooks qui encadrent l'affichage du contenu de l'article et permettent de comprendre comment il agit:
- WDD_replace_start (qui démarre simplement la mise en tampon)
- WDD_replace_end: récupère le tampon et applique les rêgles de remplacement
-
WDD_replace_list: liste les remplacements disponibles (ici les smileys). Trois paramètres sont applicables:active_emotes (les smileys cliquables), emotes (smileys seuls), list (liste simple)
Par exemple, pour afficher les emotes actifs des commentaires, voici le code utilisé sur WDD:
<div class="list_emotes"><?php eval($plxShow->callHook('WDD_replace_list','active_emotes')); ?></div>
Les règles de remplacement se trouvent dans le fichier rules.php, sous forme d'un array('chaine à remplacer'=>'valeur de remplacement'); à noter que pour le chemin des images contenues dans le dossier du plugin, on utilise #PLUGINPATH# qui sera remplacé par le chemin du dossier du plugin.
$rule=array( ""=>"<img class=\"smile\" src=\"#PLUGINPATH#img/mdr.jpg\"/>", ""=>"<img class=\"smile\" src=\"#PLUGINPATH#img/mdr.jpg\"/>", ""=>"<img class=\"smile\" src=\"#PLUGINPATH#img/content.jpg\"/>",
etc.
La galerie
Je voulais que l'ajout d'une galerie soit aussi simple que l'utlisation des smileys: il fallait que le plugin détecte la balise à changer mais également les éventuels paramètres.
Ainsi, on pourra utiliser la balise <galerie> de la façon suivante:
// galerie simple (images proportionnelles, sans infos, sans titre, sans stylage css) <galerie src="http://www.warriordudimanche.net/chemin/vers/le/dossier">// galerie avec titre <galerie src="http://www.warriordudimanche.net/chemin/vers/le/dossier" title="Ma galerie qu'elle est trop bien">
// galerie avec images recadrées <galerie src="http://www.warriordudimanche.net/chemin/vers/le/dossier" crop="true">
// galeries affichant le nom et la taille des photos au survol <galerie src="http://www.warriordudimanche.net/chemin/vers/le/dossier" infos="true">
// galerie intégrant le stylage css <galerie src="http://www.warriordudimanche.net/chemin/vers/le/dossier" style="true">
// galerie avec la taille des images (par défaut 100x100) <galerie src="http://www.warriordudimanche.net/chemin/vers/le/dossier" width="150" height="150">
// on peut bien entendu utiliser plusieurs balises <galerie src="http://www.warriordudimanche.net/chemin/vers/le/dossier" width="150" height="150" infos="true" crop="true">
Un exemple
La galerie suivante est obtenue avec la balise: <galerie src="http://www.warriordudimanche.net/xxxx" infos="true" crop="true" width="150"height="150" title="Exemple de galerie avec titre">
(il faut bien entendu que le chemin et les droits d'accès soient corrects.)
Le zip et l'installation !
Le zip suivant contient le plugin tel qu'il est utilisé sur warriordudimanche (images, règles et galerie), il ne reste plus qu'à le télécharger puis le dézipper dans le dossier plugins.
Ensuite, il faut placer les hooks dans article.php,
eval($plxShow->callHook('WDD_replace_start')); $plxShow->artContent(); eval($plxShow->callHook('WDD_replace_end'));
commentaires.php,
eval($plxShow->callHook('WDD_replace_start')); $plxShow->comContent(); eval($plxShow->callHook('WDD_replace_end',true));
categorie.php
eval($plxShow->callHook('WDD_replace_start')); $plxShow->artChapo(); eval($plxShow->callHook('WDD_replace_end'));
...ainsi que dans d'autres pages pouvant afficher du contenu à modifier (archives.php, home.php etc)
Et c'est tout ...
❝ 3 commentaires ❞
Fil RSS des commentaires de cet article
✍ Écrire un commentaire
les commentaires relevant du SPAM seront filtrés et dégagés direct...