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

Discussion

One 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

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite / PostgreSQL
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparait.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

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