notes·de·pit

Parfois j'apprends à pêcher à des gens qui n'aiment pas le poisson

Plugin Delicious pour Dotclear 2

Macarons fait par Cath

Pour commencer, deux constats;

De là, comment faire pour intégrer ça le mieux possible dans le blog. J’ai essayé diverses méthodes et je me penche sur l’écriture d’un plugin pour Dotclear.

Dans la version précédente, j’utilisais un javascript fourni par delicious 1 qui m’affichait une série de liens bien gentiment. Ça fonctionne bien et j’aurais pu continuer comme ça.

<script type="text/javascript" 
    src="http://del.icio.us/feeds/js/pit/blog?count=100;title=Liens">
</script>

Delicious, fournit également une liste de liens par une simple requête http2. Ceci a l’avantage que l’on pourra récupérer cette liste et la mettre en forme avec une feuille de style qui va bien 3.

Bref, je me dis que ceci pourrait faire l’objet d’un plugin et je me plonge dans la doc de Dotclear au sujet des plugins pour essayer de sortir quelque chose.

Il en sort une première ébauche de plugin téléchargeable en version pré alpha delicious-0.0.1.zip (lien mort).

La difficulté réside dans la compréhension de Dotclear que je suis en train de découvrir. À ce stade pourtant, le code du plugin se résume à quelques lignes emballées à la sauce « plugin de dotclear ».

const 
    URL = "http://feeds.delicious.com/html/USER/TAG?" . 
        "count=COUNT&tags=no&rssbutton=no";

// ...
$url = // Je remplace USER, TAG et COUNT
HttpClient::quickGet($url);

L’idée d’un plugin (une extension) est de pouvoir écrire quelque chose du style tpl:Delicious dans un fichier template de dotclear. Avec ce code, c’est chose faite avec en plus une page d’administration permettant de choisir des valeurs par défaut pour USER, TAG et COUNT. Ces trois valeurs signifient respectivement:

On utilise donc le plugin en écrivant dans un fichier template

// Si l'on veut les valeurs par défaut 
// (ou celles sauvegardées dans l'interface d'administration
{{tpl:Delicious}}  

// Si l'on veut préciser l'un ou l'autre (ou tous) les paramètres
{{tpl:Delicious user="pit" tag="blog" count="100"}}
{{tpl:Delicious tag="dotclear" count="100"}}
{{tpl:Delicious tag="geek" }}

Vous pouvez ajouter ça dans votre thème en éditant un des fichiers (home.html ou post.html par exemple) templates suivant vos envies 4

Je voudrais pouvoir créer une page liens.html qui contiendra toute une série de liens et qui sera facile à mettre à jour. On 5 m’a soufflé dans l’oreillette que je pouvais utiliser le plugin related de Pep et/ou ajouter moi-même une page publique.

Dans un premier temps, utilisons le plugin de Pep pour tester la chose ailleurs que dans une des pages du thème.

J’installe le plugin, j’essaie de comprendre, je crée une page avec extension html sur mon disque (un peu comme celle disponible dans l’archive sous le nom de liens.html) et j’ajoute une Nouvelle page incluse via le lien Pages connexes. Cet ajout me demandera de choisir un fichier et c’est donc bien liens.html que je choisis. Ensuite un appel à http://example.org/blog/index.php?static/nomdelapagerelated me montre le truc.

Bonne nuit les gens, n’hésitez pas à essayer et faites moi des retours, je verrai si je suis capable d’y donner suite.


Crédit photo par Cath qui aime bien cuisiner.


  1. Ce script et redirige vers la page d’aide 

  2. Ça aussi, c’est mort 

  3. D’accord, je pouvais déjà le faire avec le javascript mais en plus je peux choisir le nom de mon tag. 

  4. Ce n’est pas un Widget 

  5. Ce doit être des gourous de Dotclear; annso et Mirovinben