Cette extension fonctionne très simplement : elle recherche dans les dossiers de thème tous les fichiers se terminant par ".widget.html" et elle crée un widget à partir de chacun d'entre eux.

Exemple minimaliste de fichier ".widget.html" :

<tpl:WidgetName>Mini</tpl:WidgetName>
Bonjour {{tpl:WidgetText name="nom" title="Entrez votre nom :" default="visiteur"}} !<br/>
Vous &ecirc;tes sur le blog {{tpl:BlogName}}.<br/>

Le <tpl:WidgetName> définit le nom du Widget tel qu'il apparait dans la zone d'administration. Le {tpl:WidgetText} définit un paramètre de type texte pour le widget dont le contenu sera inséré à l'affichage. widget.mini.display.png widget.mini.admin.png

A titre d'exemple, deux fichiers widget sont installés en même temps que l'extension. Un pour insérer le code nécessaire à Google Analytics, l'autre pour en faire de même avec PhpMyVisites.

L'insertion de paramètres de type texte est ce qu'il y a de plus simple mais on peut définir d'autres types de paramètres (grande zone de texte, case à cocher, liste de choix) en utilisant les balises appropriées. Voici la liste complète :

  • {tpl:WidgetText} : paramètre de type texte ou grande zone de texte en rajoutant un attribut type="textarea".
  • <tpl:WidgetCheckboxIf> : paramètre de type case à cocher. L'attribut value détermine si le contenu du block est affiché. Avec value="1", le contenu est affiché si la case est cochée. Avec value="0", le contenu est affiché si la case n'est pas cochée.
  • <tpl:WidgetComboIf> : paramètre de type liste de choix. Fonctionnement similaire à <tpl:WidgetCheckboxIf>. L'attribut options définit la liste des choix possibles (séparés par des ":").
  • {tpl:WidgetCombo} : paramètre de type liste de choix. Fonctionnement similaire à {tpl:WidgetText}. Attribut options identique à celui de <tpl:WidgetComboIf>.

Outre les attributs spécifiques, chaque balise possède les attributs :

  • name (obligatoire) : nom du paramètre
  • title (obligatoire) : texte affiché à côté du paramètre dans la zone de définition du widget
  • default (optionnel) : valeur initiale
  • order (optionnel) : ordre d'apparition dans la zone de définition du widget

Pour utiliser plusieurs fois le même paramètre dans le fichier html, il n'est pas nécessaire de répéter l'ensemble des attributs. La totalité des attributs obligatoires doivent être présents à la première apparition du paramètre. Par la suite, seul l'attribut "name" nécessite d'être précisé.

Les fichiers "demo.widget.html" et "last.comments.widget.html" fournis avec l'extension démontrent l'éventail de ces possibilités.

D'autres balises facilitent l'écriture de widgets :

  • <tpl:WidgetDefineBlock> : définit un block html réutilisable. L'attribut "name" identifie le block.
  • {tpl:WidgetUseBlock} : insère le contenu d'un block réutilisable. L'attribut "name" identifie le block.
  • <tpl:WidgetPageTypeIf> : conditionne l'affichage d'un block au type de page. L'attribut "type" définit le type de page. Permet, par exemple de n'afficher un widget que sur la page d'accueil.

La méthode préférée pour remonter les problèmes est le gestionnaire de demandes sur Google Code. Concernant les explications sur l'utilisation, je peux répondre en commentaire ici-même ou sur le forum dotclear.
Toute suggestion est la bienvenue.