Dans la série "je déterre le sujets", pouf information les échanges évoqués par Anne. :)
---------- Message transféré ---------- De : Dsls <[email protected]> Date : 28 juin 2011 13:06 Objet : Héritage de templates suite À : Dotclear Bazar <[email protected]> Je reprends depuis le début. Oubliez le thème blowupRevisited tel que je l'ai proposé, c'était une erreur d'approche de ma part, j'aurais du discuter sur le fond avant de montrer la forme. On commence par les thèmes actuels, et comment les thémeurs les réalisent : 1. On crée un fichier de layout global, dont on extrait un _top, un _footer, un _head, une éventuelle sidebar 2. On crée à partir de ces éléments un home.html, intégrant les fichiers ci-dessus 3. On duplique home.html en category.html, qu'on adapte un peu 4. On duplique home.html en tags.html, qu'on adapte un peu 5. On duplique home.html en search.html, qu'on adapte un peu ... 153. On duplique home.html en post.html, dont on enlève la boucle, on adapte un peu plus 153. On duplique post.html en page.html, qu'on n'adapte presque pas 154. On duplique home.html en 404.html, tags.html et autres fichiers spécifiques, on enlève la boucle qu'on remplace par le contenu qu'on souhaite Maintenant, je veux ajouter une class au div content ? J'adapte home.html, puis category.html, puis tag.html, puis ... Je trouve ça très con. 90% du même code html se retrouve dans tous les fichiers template. Qu'on ajoute des include ou pas, le squelette de la page apparaît dans chaque template. Alors que, une page, c'est dans l'ordre: 1. Un squelette, définissant ou on va mettre le contenu (listes, billet, tags, ...), et les gadgets autour (widgets, top, header, footer, liens, ...) 2. un contenu, type liste d'éléments dans la zone correspondante du squelette 3. un contenu, type billet dans la zone correspondante du squelette 4. un contenu, type "libre" dans la zone correspondante du squelette Et je pense que dans cet ordre, c'est globalement ce que font les designers de thème. D'où ma proposition : * On définit un "layout.html" qui présente le squelette de la page * On définit un "list.html" qui va présenter le squelette des pages avec pour contenu liste * On définit un "single.html" qui va présenter le squelette des pages avec un simple contenu list.html va dire : "reprends la même chose que layout.html", mais remplace la zone "contenu" par ça single.html va dire : "reprends la même chose que layout.html", mais remplace la zone "contenu" par ça-bis Ensuite : * category.html va hériter (puisque c'est vraiment le terme) de list.html, en décrivant uniquement le contenu qu'elle spécialise * et de même pour toutes les pages liste * post.html va hériter de single.html * ... Pour définir les zones du squelette, twig utilise la notion de bloc, que j'avais reprise dans blowupRevisited. Chaque bloc est nommé, il suffit alors à la page fille de redéfinir le contenu d'un bloc ayant un nom donné. -- Bruno -- Dev mailing list - [email protected] - http://ml.dotclear.org/listinfo/dev
