Boucle Documents récursive

Réaliser une boucle récursive sur des documents attachés à un article.

Si vous avez quelques petites lacunes, consultez la page consacrée aux boucles récursives sur www.spip.net.

Ici, nous souhaitons afficher 2 documents par ligne de tableau.
Nous nous aiderons de la boucle DOCUMENTS.

Document 1 | Document 2

Document 3 | Document 4

Document 5 | Document 6

etc...

<B_docs>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<BOUCLE_docs(DOCUMENTS){id_article}{0,2}{doublons}> 
<td align="center" valign="top">
<p>[(#LOGO_DOCUMENT|#URL_DOCUMENT)] <br />[(#TITRE)] :: [(#TAILLE|taille_en_octets)] [(#DESCRIPTIF)]</p>
</td>
</BOUCLE_docs>
</tr>
<BOUCLE_docs_suite(BOUCLE_docs)></BOUCLE_docs_suite>
</table>
</B_docs>


-  On réalise un table en html avec les tags qui vont bien.
<table ...>  (Début de la table)
  <tr ...>     (Début d'une ligne)
    <td ...>     (Début d'une colonne)
             Contenu du tableau
    </td>    (Fin d'une colonne)
  </tr>       (Fin d'une ligne)
</table>   (Fin de la table)

-  Ce que nous souhaitons, c’est faire une récursivité sur la colonne de notre tableau. Plaçons notre boucle DOCUMENTS entre le tag <tr> et <td >. Fermer ensuite votre boucle et le tableau html.

<table ...>
<tr ...>
<BOUCLE_docs(DOCUMENTS){id_article}{0,2}{doublons}> 
    <td ...>   (Début d'une colonne)
            Contenu du tableau
    </td>     (Fin d'une colonne)
</BOUCLE_docs>
</tr>
</table>

Détails de la BOUCLE
-  Nous plaçons le critére {0,2} pour n’afficher que deux documents par ligne de tableau.
-  Pour éviter de re-sélectionner des éléments déjà affichés ! Nous ajoutons le critére {doublons}.
Si ce critére est omis, la boucle sélectionnera les deux premiers éléments a afficher. La boucle récursive tourne alors à l’infinie.
(Big up gouarfig)

<BOUCLE_docs_suite(BOUCLE_docs)></BOUCLE_docs_suite>
</table>  (Fin de la table)
</B_docs>

-  Placez votre boucle récursive avant la fermeture votre tableau </table>
-  Rajoutons ensuite le code optionnel <B_docs >, </B_docs> (syntaxe optionnelle doc de référence) au début et à la fin de notre code.

Cette boucle récursive est inspirée de la boucle d’affichage des langues sur la page d’accueil de www.spip.net.

Ici, nous effectuons une récurisivité sur la boucle DOCUMENTS.
Vous pouvez l’adapter à vos besoins en utilisant les boucles ARTICLES, RUBRIQUES, etc...

Dernière modification de cette page le 29 avril 2007

Discussion

Une discussion

  • On peut obtenir le même résultat avec des listes de définition et la boucle documents.

    Par exemple :

    <dl class="gallerie">
    <dt>#TITRE</dt>
    <dt>#LOGO_DOCUMENT</dt>
    <dt>Taille : #LARGEUR X #HAUTEUR | Poids : [(#TAILLE|taille_en_octets)]</dt>
    <dl>

    On pourra facilement personnaliser la présentation dans le fichier de style :

    dl.gallerie {width: 350px;}
    .gallerie dt img{width: 300px;}
    .gallerie dd {margin: 0px;text-align:left;}

    Un exemple sur le squelette gratuit ci-dessous.

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom