Dotclear

Vous n'êtes pas identifié(e).

Annonce

13 février 2024 Sortie de Dotclear 2.29

#1 2009-01-03 13:26:37

bob2356
Membre
Inscription : 2009-01-03

[template] Imbriquer des balises de même nom

Bonjour à tous.

Après quelques tests infructueux pour adapter le theme Noviny à mes besoins, je me suis rendu compte qu'il est impossible d'imbriquer des balises de même nom (d'après la doc dispo ici.

Pourquoi ce choix ? Pourquoi ne pas avoir simplement compté le nombre de balise ouvrante rencontrée lors du parsing et les fermer au fur et à mesure des balises fermantes rencontrées ? Il y a forcément une subtilité qui m'échappe pour que ça ne soit pas possible...

Et du coup, ma deuxième question qui en découle : comment obtenir le genre de présentation que je veux sans imbriquer de balises de même nom ?

Voici ce que je cherche à faire : un magazine mensuel.
La page d'accueil, basée sur celle de Noviny pour la mise en page, affiche tous les billets du mois en court.
En haut se trouve l'édito (le billet de ce mois ci qui est dans la catégorie "Édito").
En dessous se trouvent tous les billets pour le mois en court.

Voici ce que j'avais tenté de faire (en simplifié), et qui ne fonctionne pas puisque des balises <tpl:LoopPosition> sont imbriquées.

<tpl:Archives type="month">
  <tpl:LoopPosition start="1" length="1">

    <!-- EDITO DU MOIS -->
    <tpl:Categories>
      <tpl:LoopPosition start="1" length="1">
        <tpl:Entries lastn="1">
          <!-- AFFICHAGE DE L'EDITO -->
        </tpl:Entries>
      </tpl:LoopPosition>
    </tpl:Categories>

    <!-- ARTICLES DU MOIS -->
    <tpl:Categories level="1">
      <tpl:LoopPosition start="2">
        <tpl:Entries>
          <!-- AFFICHAGE DE L'ARTICLE -->
        </tpl:Entries>
      </tpl:LoopPosition>
    </tpl:Categories>

   </tpl:LoopPosition>
</tpl:Archives>

Merci de bien vouloir m'indiquer comment faire.

Hors ligne

#2 2009-01-03 13:43:17

Mirovinben
M comme Mathusalem
Lieu : Dole (Jura)
Inscription : 2007-02-06
Site Web

Re : [template] Imbriquer des balises de même nom

Bonjour et bienvenue ici...

Je n'ai pas la réponse à ta question mais te propose, si tu ne l'as pas déjà lu, d'aller jeter un œil ici...
Notamment lire le chapitre 7 qui propose une méthode pour s'en sortir.

Hors ligne

#3 2009-01-03 14:02:26

Kozlika
Modo dcTeam
Inscription : 2004-05-08
Site Web

Re : [template] Imbriquer des balises de même nom

Je m'y prendrais comme ça pour ce que tu souhaites :

<tpl:Archives type="month">

    <!-- EDITO DU MOIS -->
        <tpl:Entries lastn="1" category="Edito">
          <!-- AFFICHAGE DE L'EDITO -->
        </tpl:Entries>

    <!-- ARTICLES DU MOIS -->
        <tpl:Entries category="Edito ?not">
          <!-- AFFICHAGE DE L'ARTICLE -->
        </tpl:Entries>

</tpl:Archives>

Tu n'as pas besoin de trier par catégorie puisque tu veux afficher tous les billets du mois en cours, sauf celui de la catégorie Édito.

(ou je n'ai pas compris ?)


La documentation : http://doc.dotclear.net/2.0/fulltoc
Le module de recherche du forum : http://www.dotclear.net/forum/search.php ?

Hors ligne

#4 2009-01-03 14:19:57

bob2356
Membre
Inscription : 2009-01-03

Re : [template] Imbriquer des balises de même nom

Merci pour ce lien, débutant à peine dans l'utilisation de DotClear, je vais lire ça avec le plus grand intérêt !

Sinon, j'ai répondu à ma première question en fouillant dans le code source de Clearbricks : les balises ne peuvent pas être imbriquée car elles sont parsées par l'expression régulière suivante :

<tpl:(nomDeLaBalise)(?:(\s+.*?)>|>)(.*)</tpl:nomDeLaBalise>

Comme je n'ai pas trop envie de refaire un parser avec empilement/dépilement des balises, donc je vais étudier ta proposition !

Hors ligne

#5 2009-01-03 14:32:24

bob2356
Membre
Inscription : 2009-01-03

Re : [template] Imbriquer des balises de même nom

Merci Kozlika, ta solution marche au poil (avec un petit LoopPosition pour limiter la boucle Archives au dernier mois).

Comme à mon habitude, je suis allé au plus compliqué alors qu'il y avait une solution simple !

Et désolé pour le post au dessus un peu à la masse... C'est ça de répondre sans rafraichir la page avant !

Hors ligne

#6 2009-01-03 17:33:27

olivier
Administrator
Inscription : 2004-10-11

Re : [template] Imbriquer des balises de même nom

Un patch est passé sur le trac pour pouvoir imbriquer les balises. Ça sera donc possible dans la 2.2, une fois qu'on aura bien vérifié que ça ne pose pas de souci qu'on n'a pas encore vu :)


La seule difference entre un fou et moi, c'est que je ne suis pas fou. (Dali)

Hors ligne

#7 2009-01-03 20:24:45

Franck
Footer de merde
Lieu : Paris
Inscription : 2004-11-09
Site Web

Re : [template] Imbriquer des balises de même nom

olivier a écrit :

Un patch est passé sur le trac pour pouvoir imbriquer les balises. Ça sera donc possible dans la 2.2, une fois qu'on aura bien vérifié que ça ne pose pas de souci qu'on n'a pas encore vu :)

Boudiou pour le coup c'est carrément Noël, nouvel an et Pâques à la fois !


Dotclear addicted since 2004

Hors ligne

#8 2009-01-03 21:06:15

PierreA
Membre
Lieu : Lyon
Inscription : 2008-05-09
Site Web

Re : [template] Imbriquer des balises de même nom

Bonne nouvelle pour la patch, cela me rendrais bien service.

Pierre


Cordialement Pierre Ammeloot
A consulter avant de poser une question : http://dotaddict.org/search/

Hors ligne

#9 2009-01-05 17:58:32

adjaya
Membre
Lieu : Provence - Luberon
Inscription : 2006-09-05
Site Web

Re : [template] Imbriquer des balises de même nom

Bonjour : j'ai trouvé, dans l'état, un peu accidentellement le moyen d'imbriquer des balises identiques en faisant un include, par exemple :
dans un fichier test.html :

<tpl:Entries lastn="4">
{{tpl:include src="_entries.html"}}
</tpl:Entries>

et dans _entries.html

<tpl:Entries lastn="3">
<!-- Reste du code de la boucle ici -->
</tpl:Entries>

Résultat amusant pour cet exemple, j'ai l'affichage de quatre séries des trois mêmes billets.


Photo, Art et Création Numérique : http://benoit-grelier.photo7.fr/

Hors ligne

Vous n'êtes pas identifié(e).

Pied de page des forums

Sites map