[spip-dev] Boucles spip 1.7.x incompatibles avec le compilo de la 1.8.2

Bonjour,

Je suis peut être un peu limite avec spip-user mais comme cela touche au
fonctionnement du compilo...

Je suis en train de migrer un site SPIP 1.7.2 en SPIP 1.8.2 et j'ai des
soucis au niveau du squelette :

Des boucles comme :

<BOUCLE_articles_actu(ARTICLES) {id_rubrique=194}{par mots.titre,
articles.date} {inverse} {id_groupe=2}>
  <tr>
    <td class="assnavliens" height="16">&middot;&nbsp;<A
HREF="[(#URL_ARTICLE)]" class="colornoir" [ title = "(#DESCRIPTIF
supprimer_tags|attribut_html)" ]

[(#TITRE|supprimer_numero)]</A> </td>

  </tr>
</BOUCLE_articles_actu>

Me remontent en erreur, y a un blocage apparemment au niveau de {par
mots.titre, articles.date}

J'obtiens des erreurs du type :

# Erreur(s) dans le squelette
    * Erreur sur le site, {par mots.titre} BOUCLE_actu_article
    * Erreur sur le site, {par articles.date} BOUCLE_actu_article
    * Erreur sur le site, {inverse ?} BOUCLE_actu_article
    * Erreur sur le site, {par mots.titre} BOUCLE_sortir_article
    * Erreur sur le site, {par articles.date} BOUCLE_sortir_article

(Je sais, ce n'est pas la même boucle que je vous ai montré mais elle est
construire de façon similaire)

2 questions :
- Pourquoi n'est-il plus possible de faire ces boucles ?
- Quelle serait la nouvelle syntaxe à suivre ?

Merci d'avance,
Nicolas

Nicolas Steinmetz <nsteinmetz <at> gmail.com> writes:

<BOUCLE_articles_actu(ARTICLES) {id_rubrique=194}{par mots.titre, >

articles.date} {inverse} {id_groupe=2}>

# Erreur(s) dans le squelette > * Erreur sur le site, {par

mots.titre} BOUCLE_actu_article > * Erreur sur le site, {par
articles.date} BOUCLE_actu_article > * Erreur sur le site, {inverse ?}
BOUCLE_actu_article > * Erreur sur le site, {par mots.titre}
BOUCLE_sortir_article > * Erreur sur le site, {par articles.date}
BOUCLE_sortir_article > > (Je sais, ce n'est pas la même boucle que je
vous ai montré mais elle est > construire de façon similaire)

Tu es sûr qu'elle a jamais marché ta boucle? parce que cette notation
me parrait pas très valide, même en 1.7.2

C'est peut être juste que en 1.7.2 il se plaignait beaucoup moins
quand il y avait des erreurs, mais ça veut pas dire que ça marchait.

En 1.8.2, je ne vois pas comment tu pourrais faire, il faudrait faire
ton propre critère, mais c'est difficile de savoir quel nom aura la
table qui fait la jointure.

Par contre, c'est bien une question courante sur la liste des
utilisateurs, tu pourrait voir là, Olivier a donné une solution pas
plus tard que ce matin (ou peut être ct hier soir)

Pierre

Bonjour,

Je suis peut être un peu limite avec spip-user mais comme cela touche au
fonctionnement du compilo...

Je suis en train de migrer un site SPIP 1.7.2 en SPIP 1.8.2 et j'ai des
soucis au niveau du squelette :

Des boucles comme :

<BOUCLE_articles_actu(ARTICLES) {id_rubrique=194}{par mots.titre,
articles.date} {inverse} {id_groupe=2}>
  <tr>
    <td class="assnavliens" height="16">&middot;&nbsp;<A
HREF="[(#URL_ARTICLE)]" class="colornoir" [ title = "(#DESCRIPTIF
supprimer_tags|attribut_html)" ]

[(#TITRE|supprimer_numero)]</A> </td>

  </tr>
</BOUCLE_articles_actu>

Me remontent en erreur, y a un blocage apparemment au niveau de {par
mots.titre, articles.date}

...

2 questions :
- Pourquoi n'est-il plus possible de faire ces boucles ?

C'est assez comique: il y a effectivement une régression, mais l'exemple n'est pas le bon.

1. En 1.7, seul le premier champ du critere Par était pris en compte, donc ici articles.date passait à la trappe

2. En 1.7 mots.titre était laissé tel quel, ce qui avait le bon gout de passer à SQL mais écrire du SQL dans les squelettes, c'est pas vraiment la philosophie de Spip

3. Sa philosophie c'est d'écrire "{par titre_mot}" ou "{par type_mot}", ça marchait en 1.7, mais ca ne marche plus depuis l'introduction des jointures automatiques. C'est réparé, et ça mérite réflexion sur automatiser les jointures aussi dans ce cas là.

Déesse A.