Avertissement

Cet article fait désormais partie de la documentation de Dotclear 1.2 et ne sera plus mis à jour ici. La version « de référence » est incluse dans cette page

Pour faire différentes tambouilles auxquelles je ne comprends pas tout, dont – et celle-là est déjà plus claire – savoir quel fichier afficher dans la partie main, DotClear définit des modes. En fonction du mode, le moteur du blog va varier son comportement.

Inventaire

mode == 'post'

  • Fichier inclus : post.php
  • Accès : url directe (url-de-monblog/année/mois/jour/numéro-[titrefacultatif]), lien sur le titre du billet ou la zone « post-info-co » depuis un affichage en liste, ou, s'il y figure, depuis la liste des billets « A retenir » dans le sidebar.

C'est le mode dans lequel le billet s'affiche tout seul, en entier, avec ses commentaires et trackbacks, son formulaire pour ajouter un commentaire.

mode == 'cat'

  • Fichier inclus : list.php
  • Accès : url directe (url-de-mon-blog/Categorie ou url-de-mon-blog?Categorie selon que le format est Path Info ou Query String), lien dans les infos situées sous le titre du billet, lien direct depuis le sidebar.

Affiche la liste des billets en effectuant un tri sur la catégorie. Le nombre de billets par page est limité par le paramètre indiqué dans Outils --> Configuration de DotClear.

mode == 'search'

Fichier inclus : list.php

  • Accès : url directe (url-de-mon-blog/?q=[mot-cherché]) ou via le formulaire de recherche dans le sidebar.

Le moteur opère un tri sur les critères indiqués dans le champ de recherche et les affiche en liste selon la forme définie dans le fichier list.php. A savoir : dans ce mode, le nombre de billets par page n'est pas limité par l'indication que vous aurez donnée dans Outils --> Configuration de DotClear.

mode == 'month' - mode == 'day'

Fichier inclus : list.php

  • Accès : url directe (url-de-mon-blog/année/mois/), ou via la liste des mois du sidebar pour month, url directe (url-de-mon-blog/année/mois/jour), ou clic sur la date dans le calendrier du sidebar pour day.

Month pour les billets d'un mois donné, day pour une date précise, comme pour le mode search, le tri s'effectue sur le mois (ou le jour pour le mode day) choisi sans limitation du nombre d'entrées. C'est en cela que ce mode est celui qui est tout indiqué pour visiter les archives.

mode == 'home'

Fichier inclus : list.php

C'est le mode qui correspond à l'accueil du blog.

(Note : la mention du "fichier inclus" concerne le thème par défaut. C'est le principe qu'il faut retenir ; les modes en question pourraient appeler des fichiers tartopom.php ou clafoutis.php, si lesdits fichiers contenaient des informations/instructions que DotClear connaît ça marcherait tout aussi bien.)

Un centre d'aiguillage

En observant le fichier template.php on remarque que juste après l'ouverture du bloc central du blog (<div id="main">) des codes indiquent ce que doit afficher le moteur en fonction de telle ou telle circonstance. Cette suite de if et elseif, après avoir traité le cas d'une erreur quelconque ou du postage de commentaire par un visiteur détermine deux cas : le mode n'est pas post ou il l'est. Dans le premier cas, on affiche une liste de billets (list.php), sinon le billet seul (fichier post.php). C'est la raison pour laquelle (si ces instructions ne sont pas modifiées) toutes les listes de billets sont organisées de la même façon.

Ajouter un aiguillage

On peut très bien intervenir à cet instant, après la condition du message d'erreur,[1] pour appeler un fichier précis en telle ou telle circonstance. C'est par exemple ce qu'on fait lorsqu'on installe une page spécifique en interceptant le mode home (voir le tuto qui va bien).

Sur le même principe, on pourrait imaginer une condition supplémentaire (elseif) qui déterminerait un autre fichier appelé pour le mode month (appelons-le month.php histoire de ne pas se compliquer la vie) et qui serait constitué de façon à n'afficher que les titres des billets du mois ou je ne sais quoi z'avez qu'à réfléchir un peu aussi...

Invités

Il existe un certain nombre de plugins qui créent un mode spécialement pour eux. Exemples répandus : Gallery, qui permet d'afficher des images sous forme d'album, Table des matières, pour constituer un sommaire des billets, Related, qui offre la possibilité d'adjoindre des pages connexes au blog.

Pour afficher leur(s) pages, eux aussi vont s'intercaler après la condition du message d'erreur et signaler au moteur que le fichier à afficher est celui-ci ou celui-là. C'est pourquoi tous ceux d'entre eux qui affichent une page qui leur est propre comme ceux que je viens de citer vous demandent d'ajouter des lignes de code à cet endroit.

Aller plus loin

Ce panorama peut-être grandement approfondi par la lecture de quelques pages :

  • La cinématique.
  • Autres liens vers la doc pour développeurs dès qu'un sorcier passe dans le coin...

Notes

[1] Ce point est très important. Il faut en effet que le message en cas d'erreur ait la priorité absolue sur l'affichage à opérer dans la page.