[spip-dev] Bug (?) sur boucle DOCUMENTS

Bonjour,
d'après la doc

{doublons} prend ici une importance particulière : elle permet non seulement de ne pas réafficher des documents déjà affichés par une autre boucle, mais également de ne pas réafficher les documents déjà intégrés à l’intérieur d’un article. Si l’on oublie ce critère, on affichera tous les documents associés à un article, y compris ceux qui auraient déjà été affichés à l’intérieur du texte.

En version 1.8 cvs, cela ne semble plus fonctionner, voici un bout de mon code

<BOUCLE_article_principal(ARTICLES) {id_article} {doublons}>
(...)

<BOUCLE_portfolio(DOCUMENTS){id_article}{extension==jpg|png|gif} {doublons} {0,2} {par hasard} >

(...)

</BOUCLE_article_principal>

Dans ce cas, les document insérés dans le texte de mon article sont également affichés par ma boucle documents...

David

Ce bug avait été signalé et corrigé; as-tu bien la dernière version ?
Si ton bug persiste avec elle, donne accès au squelette complet pour que je puisse tester.

      Emmanuel

Déesse A. wrote:

rubrique.html (5.37 KB)

Il est mal passé, comme souvent. Donne plutot une URL où le récupérer.

      Emmanuel

Déesse A. wrote:

Essayes :
http://www.echecs-bretagne.com/deesse/article.html

J'ai récupéré, mais il y a une chose qui me fait tiquer:

<BOUCLE_traiteGalerie1(ARTICLES) {titre_mot=diaporama} {id_article} >
<div id="annonces">
#_article_principal:TEXTE
</div>
</BOUCLE_traiteGalerie1>

n'a pas le critère "doublons". Si tu parles des documents qui sont dans ce texte, il est normal qu'ils ne soient pas considérés considérés comme déjà vus
par la boucle documents.

Autre chose, la boucle:

<BOUCLE_choixlang(RUBRIQUES) {id_parent=0} {doublons} {lang!=#LANG}>
</BOUCLE_choixlang>

ne sert à rien.

      Emmanuel

Déesse A. wrote:

Essayes :
http://www.echecs-bretagne.com/deesse/article.html

J'ai récupéré, mais il y a une chose qui me fait tiquer:

<BOUCLE_traiteGalerie1(ARTICLES) {titre_mot=diaporama} {id_article} >
<div id="annonces">
#_article_principal:TEXTE
</div>
</BOUCLE_traiteGalerie1>

n'a pas le critère "doublons". Si tu parles des documents qui sont dans ce texte, il est normal qu'ils ne soient pas considérés considérés comme déjà vus
par la boucle documents.

Autre chose, la boucle:

<BOUCLE_choixlang(RUBRIQUES) {id_parent=0} {doublons} {lang!=#LANG}>
</BOUCLE_choixlang>

ne sert à rien.

      Emmanuel

Bonjour,
et merci d'avoir pris le temps de me répondre.

En fait mon article principal :
<BOUCLE_article_principal(ARTICLES) {id_article} {doublons}>
possède bien le critère (c'est la boucle qui englobe les autres). Et ma boucle
<BOUCLE_portfolio(DOCUMENTS){id_article}{extension==jpg|png|gif} {doublons} {0,2} {par hasard} >
aussi. C'est pour cela que je pense qu'il y a un problème.

<BOUCLE_choixlang(RUBRIQUES) {id_parent=0} {doublons} {lang!=#LANG}>

</BOUCLE_choixlang>

ne sert à rien.

Si, elle permet de sélectionner les rubriques racines autres que celle de la langue en cours... On peut faire autrement, j'en conviens mais cela marche comme cela aussi...

David

Mais le corps de ta boucle est vide, donc elle ne sert à rien PAR DEFINITION.

Je vais re-regarder pour l'autre.

      Emmanuel

Déesse A. wrote:

<BOUCLE_choixlang(RUBRIQUES) {id_parent=0} {doublons} {lang!=#LANG}>

</BOUCLE_choixlang>

ne sert à rien.

Si, elle permet de sélectionner les rubriques racines autres que celle
de la langue en cours... On peut faire autrement, j'en conviens mais
cela marche comme cela aussi...

Mais le corps de ta boucle est vide, donc elle ne sert à rien PAR DEFINITION.

Je vais re-regarder pour l'autre.

      Emmanuel

Oui dans ce cas j'en conviens mais dans ce que je t'ai fourni il y a :

<BOUCLE_choixlang(RUBRIQUES) {id_parent=0} {doublons} {lang!=#LANG}>
<BOUCLE_RubPrincipale(RUBRIQUES) {id_parent} {par num titre} {0,1}>
<a href="#URL_RUBRIQUE"><img src="IMG/[(#_choixlang:LOGO_RUBRIQUE|fichier)]" alt="[(#TITRE|supprimer_numero)]"/></a>
</BOUCLE_RubPrincipale>
</BOUCLE_choixlang>

donc cela marche :slight_smile:

merci pour l'autre

Amicalement
David

ok, pardon j'avais regardé ma version expurgée (parce qu'il y a des includes de squelettes que je n'ai pas alors j'avais fait un gros ménage).

Encore une chose tout de même. Dans:

<BOUCLE_article_principal(ARTICLES) {id_article} {doublons}>
....
<BOUCLE_traiteGalerie1(ARTICLES) {titre_mot=diaporama} {id_article} >
<div id="annonces">
#_article_principal:TEXTE
</div>
</BOUCLE_traiteGalerie1>

je ne vois pas l'intéret de ne pas écrire plus simplement #TEXTE,
puisque cette boucle n'aura au plus qu'un tour avec, parce que id_article est la PrimaryKey
de la table Articles. J'aimerais savoir si tu as toujours le bug dans ce cas là.

      Emmanuel

Déesse A. wrote:

Oui dans ce cas j'en conviens mais dans ce que je t'ai fourni il y a :

<BOUCLE_choixlang(RUBRIQUES) {id_parent=0} {doublons} {lang!=#LANG}>
<BOUCLE_RubPrincipale(RUBRIQUES) {id_parent} {par num titre} {0,1}>
<a href="#URL_RUBRIQUE"><img src="IMG/[(#_choixlang:LOGO_RUBRIQUE|fichier)]" alt="[(#TITRE|supprimer_numero)]"/></a>
</BOUCLE_RubPrincipale>
</BOUCLE_choixlang>

ok, pardon j'avais regardé ma version expurgée (parce qu'il y a des includes de squelettes que je n'ai pas alors j'avais fait un gros ménage).

Encore une chose tout de même. Dans:

<BOUCLE_article_principal(ARTICLES) {id_article} {doublons}>
....
<BOUCLE_traiteGalerie1(ARTICLES) {titre_mot=diaporama} {id_article} >
<div id="annonces">
#_article_principal:TEXTE
</div>
</BOUCLE_traiteGalerie1>

je ne vois pas l'intéret de ne pas écrire plus simplement #TEXTE,
puisque cette boucle n'aura au plus qu'un tour avec, parce que id_article est la PrimaryKey
de la table Articles. J'aimerais savoir si tu as toujours le bug dans ce cas là.

      Emmanuel

Tu as parfaitement raison, cet appel est inutile (merci).

Non cela ne règle pas le problème car cette boucle n'est pas celle qui ne devrait pas afficher les doublons, le problème est avec :
<BOUCLE_portfolio(DOCUMENTS){id_article}{extension==jpg|png|gif} {doublons} {0,2} {par hasard} >
<div class="imc"><h1>#TITRE</h1><a href="affiche_image.php3?id_document=#ID_DOCUMENT" onclick="window.open(this.href, 'affiche_image', 'height=[(#HAUTEUR)], width=[(#LARGEUR)], top=20, left=20, toolbar=no, menubar=no, location=no, resizable=no, scrollbar=yes, status=no'); return false;">[(#LOGO_DOCUMENT|center||reduire_image{150}|nomargin)]<div class="clme">(+)</div></a></div>
</BOUCLE_portfolio>

et le texte de fin de page

</BOUCLE_traiteGalerie>
         [(#TEXTE|justifier)]
         <//B_traiteGalerie>

David

Tu voudrais que les documents dans le #TEXTE final ne soient pas dans la boucle avant #TEXTE ?
Si c'est ça, il n'y a pas de bug: la boucle est exécutée avant la mise en page de #TEXTE,
et donc aucun document n'a encore été affiché à ce moment là.

      Emmanuel