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...

updated on 29 April 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.

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom