Plugin gracefulCut 0.1 pour Dotclear

Jusqu’à maintenant, écourter certains textes dans l’affichage des billets de Dotclear, se faisait en utilisant le code suivant (extrait tiré du fichier entry_short.html du jeu de template currywurst) :

<p>
	{{tpl:EntryContent encode_html="1" remove_html="1" cut_string="300"}}
	<tpl:EntryIfContentCut encode_html="1" remove_html="1" cut_string="300">
		<span class="ellipsis"> […]</span>
	</tpl:EntryIfContentCut>
</p>

Et ça donnait quelque chose comme ça :

Extrait court de billet dans la 2.10

Pour peu que le billet ne comporta pas d’extrait, uniquement un contenu, ce dernier est déshabillé des balises HTML et on coupe brutalement au 300e caractère, tel que précisé dans la balise tpl:EntryContent …. Une balise supplémentaire se charge ensuite de déterminer si le contenu à été coupé et dans ce cas ajoute trois points de suspension entre crochets.

J’avoue que ça fait quelques temps que ça me titille de faire un peu mieux et j’ai déniché une petite fonction un peu plus intelligente (Alan Whipple en est l’auteur), capable de conserver des balises HTML en les refermant au besoin dans l’extrait rendu et d’ajouter à la fin les trois points de suspension si le texte a été découpé.

Du coup j’en ai fait un petit plugin, qui attendait que les filtres puissent être étendus — ce que vient de permettre la toute fraîche 2.11 sortie aujourd’hui — pour pouvoir fonctionner.

Le code dans le template se simplifie puisqu’à la place du précédent (voir en début de billet) on a maintenant :

<p>
	{{tpl:EntryContent graceful_cut="300"}}
</p>

Et ça donne cela :

Extrait court de billet dans la 2.11 avec le plugin gracefulCut

Ce qui est un peu mieux et qui permet de conserver, entre autre, les liens ou les images qui existaient au début du contenu.

J’ai même prévu de faire en sorte que gracefulCut s’occupe de la découpe à la place de la fonction d’origine de Dotclear, ce qui permettra de ne pas modifier les templates, au bémol près que les attributs remove_html="1" et encode_html="1" empêcheront la conservation des liens et des images, donc le remplacement ne sera actif que si ces deux attributs sont manquants ou positionnés à 0.

Ce nouveau filtre, graceful_cut sera probablement intégré dans une version future de Dotclear s’il donne toute satisfaction.

Attention ce plugin une fois installé est fonctionnel immédiatement, n’a aucune option ni réglage, et est valable pour tous les blogs installés. Ne soyez donc pas surpris du changement de comportement de l’attribut cut_string !


Ce billet servira de support pour cette version du plugin.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/13147

Haut de page