Extension pour Dotclear 2 : créer des billet pré-remplis à partir de contenu en ligne
Par Oaz, le 7 avril 2008, 23:46 - Amanèls
- Lien permanent
-
Le blogueur lambda se caractérise autant par sa propension à relayer/critiquer/encenser toute information qu'il juge intéressante que par sa tendance à produire beaucoup de contenu avec un minimum d'effort.
Mon extension "Post Maker" pour dotclear vise à rejoindre la panoplie de ce blogueur lambda : elle permet de créer des billets avec un contenu prédéfini dont une partie peut être automatiquement récupérée depuis un flux rss/atom.
Prenons un exemple simple. Notre blogueur lambda souhaite commenter les grands titres de l'actualité. Il va par exemple se baser sur le flux "A la une" du journal "Le Monde".
Dans l'interface de configuration de l'extension, il définit un nouveau type de billet personnalisé "A la une" avec le flux en question :

Le choix "feed-item-list" représente le modèle de mise en page utilisé, en l'occurrence un liste des éléments du flux. C'est un des modèles présents dans l'installation standard de cette extension.
A partir de là, une nouvelle entrée de menu nommée <Nouveau billet "A la une"> est proposée dans le menu d'édition de dotclear :

En cliquant sur cette entrée de menu, un nouveau billet est créé. Son texte initial est basé sur le contenu du flux paramétré :

Le reste, c'est une édition classique de billet.
En couplant l'usage de cette extension à celui d'un lecteur de flux, on peut publier un contenu un peu plus personnalisé. Par exemple, le lecteur de flux Google Reader permet de marquer les articles qui retiennent notre attention et de publier la liste des articles marqués comme un nouveau flux. En utilisant celui-ci avec "Post Maker", on peut écrire rapidement des billets de "revue de web".
J'ai pour ma part déjà un tel flux. Il apparait sur la page d'accueil de mon blog sous l'intitulé "Au fil de mes lectures". Désormais, je vais essayer de publier des billets qui commentent ces lectures. D'où mon intérêt pour écrire une telle extension...
Rentrons maintenant dans la partie un peu plus technique. L'extension fournit par défaut 2 modèles de billet mais il est relativement simple d'en rajouter car le contenu des modèles est dans des fichiers texte.
2 types de fichiers sont utilisés : les ".hentry" et les ".wentry". Les premiers sont des modèles pour les billets composés en xhtml, les seconds sont pour les billets en syntaxe wiki. Le choix du modèle est effectué à partir des préférences de l'utilisateur.
Exemple de fichiers :
Le contenu est du html dans le premier cas, du texte wiki dans le second mais avec quelques balises en plus. Ces balises auront un air familier pour ceux qui connaissent les thèmes dotclear : le même moteur de template est utilisé pour définir les modèles de billet mais avec un jeu de balise entièrement dédié (les balises de thèmes dotclear n'ont aucun sens dans ce contexte).
Pour rajouter des modèles, il suffit de mettre les fichiers adéquats dans le dossier "templates" de l'extension.
La liste des balises disponibles dans la version 1.0 de "Post Maker" :
- <tpl:EntryTitle> : block qui définit le titre du billet
- <tpl:EntryExcerpt> : block qui définit l'extrait du billet
- <tpl:EntryContent> : block qui définit le contenu du billet
{{FeedURL}}: adresse du flux paramétré{{FeedProperty name="..."}}: propriété du flux.- Exemple :
{{tpl:FeedProperty name="title"}}pour le titre
- Exemple :
- <tpl:FeedItems> : block de boucle sur les éléments du flux
{{FeedItemProperty name=""}}: propriété de l'élément courant.- Exemple :
{{tpl:FeedItemProperty name="link"}}pour l'URL de l'élément
- Exemple :
{{FeedItemDate}}: date de publication de l'élément courant dans le format défini dans les paramètres du blog{{FeedItemTime}}: heure de publication de l'élément courant dans le format défini dans les paramètres du blog
Bonne utilisation !
Et j'attends bien sûr toutes les remarques utiles à l'amélioration de cette extension !


Commentaires
Trop puissant :-o
Je teste ça.
Tu me diras ce qu'il faut améliorer !
Pour l'instant, il correspond surtout à mon goût.
interressant d'autant que le plugin planet de pep n'est plus dans les bacs et que openplanet demble en déroute.
Si tu peux récupérer le corps du texte du flux et que tu l'enregistre automatiquement sur des billets cela nous donne un beau planet...
@ suivre avec impatience si le coeur t'en dis !!
bon courage
Cela semble fort intéressant, mais... y a-t-il une raison particulière de restreindre son utilisation uniquement aux super-admin ?
Je verrai bien une gestion des droits comme suit :
@julien,
Ta proposition me parait correcte. En fait, je ne me suis pas vraiment préoccupé plus que ça des droits...
Bonjour,
Il y a un couac dans les liens vers les fichiers.
C'est corrigé. Le problème était dû à ma config que n'a pas aimé ma récente upgrade vers une "vraie" DC2.
You're welcome !
Petite question :
Est-ce que ton plugin est utilisable pour faire des templates de billets indépendants de feeds ?
"indépendants de feeds" ? Tu veux dire avec un contenu initial fixe ?
Qui peut le plus peut le moins : il suffit de ne pas utiliser les balises qui accèdent au flux dans le fichier template.
Par contre, en écrivant cela, je me rends compte que le moteur de template utilisé pour générer le contenu initial est dans sa configuration par défaut et donc on ne peut pas utiliser de php directement dans le fichier template.
Cela aurait pu servir à générer d'autres genres de contenus.
Bonsoir,
J'ai créé un modèle statique (juste du HTML) et sans URL de feed
Quand je crée un nouveau post avec le modèle, le post est désespérement vide.
N'y aurait il pas un exit quand le feed n'est pas récupéré ?
Merci
@Fred,
Non, ça fonctionne (je l'ai testé).
Es-tu sûr d'avoir respecté la structure du fichier .wentry ou .hentry ? (avec <tpl:EntryTitle>, <tpl:EntryExcerpt> et <tpl:EntryContent>)
Effectivement, je suis allé un peu vite en besogne, cela fonctionne parfaitement.
Merci de ton aide !
Encore moi :-p
J'ai un petit problème avec les permissions : pour que les entrées postmaker soient visibles dans l'admin d'un utilisateur, il faut que celui-ci soit superadmin !
J'ai jeté un coup d'oeil à mon utilisateur (permission usage,media sur le blog) et _admin.php du plugin et tout semble correct.
Une idée ?
Fred: Il vous faut relire les commentaires 4 et 5 ci-dessus. ;-)
Il faut corriger les droits dans _define.php :
http://forum.dotclear.net/viewtopic...
Merci pour votre aide