[spip-dev] Compilo, 1.8.1. : Comment écrire un critère calculé ? Bug 1.8.1 ?

Bonsoir,

Ce message est probablement destiné à Emmanuel, puisqu’il semble concerner le compilateur 1.8.1
(y aurait-il eu des modifs sur ces aspects depuis la 1.8.1 ?)

Résumé : J’ai du mal avec le critère calculé {tag==((PageArticle)#ID_ARTICLE$)} ; je ne sais plus comment l’écrire, je crois avoir essayé toutes les combinaisons (en mettant des parenthèse autour de )#ID_ARTICLE, en ajoutant un point entre les deux chaînes, etc.), alors que {tag==((PageArticle)4$)} donne le résultat qui convient, et que l’affichage de #ID_ARTICLE montre qu’il vaut bien 4…

Détails : Mes difficultés sont (assez) visibles sur la page http://marcdebeaumont.free.fr/article.php3?id_article=4 :
j’y ai fait afficher les valeurs calculées #ID_ARTICLE et des lignes supplémentaires pour faire des comparaisons.

A. La boucle est :
<BOUCLE_wiki11(WIKINI_PAGES) {tag==((PageArticle)#ID_ARTICLE$)} >

<?php echo #ID_ARTICLE ?> (mis ici pour vérifier la valeur de #ID_ARTICLE)

& Wiki :
</BOUCLE_wiki11>

Cette boucle affiche en effet dans le menu “in another language” 2 valeurs (liées à id_article=4 et 41)
2EN (art2 en vo = english) 4& Wiki : 21 July 4& Wiki : 21 July
au lieu d’une liée à id_article=4. (le 4 devant & correspond à l’affichage de contrôle de #ID_ARTICLE)

Alors que la boucle suivante, en remplaçant la balise #ID_ARTICLE par la (bonne) valeur 4
<BOUCLE_wiki1(WIKINI_PAGES) {tag==((PageArticle)4$)} >
donne toute satisfaction (une seule page Wiki mentionnée, à chacune des 2 lignes précédentes, sur la page :

puisque quand je fais <?php echo #ID_ARTICLE ?> j’obtiens bien la valeur 4 avant chaque impression (4 et 41)

B. Serait-ce lié au fait que TAG est un champ d’une table Wikini_ et non Spip ??
A toutes fins utiles je viens de déclarer dans mes_fonctions.php3 :

function boucle_WIKINI_PAGES($id_boucle, &$boucles) {
$boucle = &$boucles[$id_boucle];
$id_table = $boucle->id_table;
$boucle->from[] = “wikini_pages AS $id_table”;
return calculer_boucle($id_boucle, $boucles);
}

selon ce que j’ai compris de http://www.spip-contrib.net/spikini/AutreTableSpip
Aurais je fait une erreur à e niveau là ??
Toujours est-il qu’avec ou sans cette déclaration de fonction, j’obtiens exactement le même (dys)fonctionnement.

Merci bien, par avance,

Marc

PS. Je poste à la fois sur spip et spip-dev, puisque cela concerne les deux listes.
Et je n’ai pas trouvé sur les deux listes de messages sur ce thème.

(y aurait-il eu des modifs sur ces aspects depuis la 1.8.1 ?)

oui, énormément, je crois même qu'en CVS ton problème seerait réglé (à
vérifier tout de même)

Alors que la boucle suivante, en remplaçant la balise #ID_ARTICLE par la (bonne) valeur 4
<BOUCLE_wiki1(WIKINI_PAGES) {tag==((PageArticle)4$)} >

Ah mais c'est une idée glorieuse, ça !!

Sur spip-contrib on a commencé à jouer avec "l'espace wiki associé à
l'article", mais là si je comprends bien tu l'intègres directement dans les
squelettes spip, c'est excellent.

-- Fil

Piou! Comment ce bug a-t-il pu passé inaperçu si longtemps ?
La recherche d'un champ dans l'URL se faisait en majuscules et pas en minuscule!
C'est corrigé, mais du coup j'ai des craintes pour la suite : ça sent le double bug se corrigeant mutuellement 9 fois sur 10, mais si c'est le cas je ne sais pas où est l'autre.

Déesse A.

bonjour Fil et Emmanuel,

j'ai passé pas mal de temps sur ce bug, parce qu'il me semblait très peu
probable que depuis le temps un tel bug n'ait pas été trouvé...

Simplement je ne sais pas comment faire simplement l'essai avec la CVS : il
suffit de faire une mise à jour comme les autres ? Et quelle est la dernière
version "stable" de la CVS ?

Et si le test réussit dans ce cas, cela ne voudra pas dire effectivement
qu'il n'y a pas d'autre cas similaires.

Merci bien,

Marc