Bon, je commets une version qui me semble refaire exactement ce que faisait l'ancien
compilo en ce qui concerne les doublons. Dites-moi si ça résout les pbs rencontrés.
On reprendra la discussion plus tard sur les variantes possibles il y a plus urgent.
Je retiens seulement que je n'étais pas le seul à trouver que ça méritait réflexion.
Bon, je commets une version qui me semble refaire exactement ce que faisait l'ancien
compilo en ce qui concerne les doublons. Dites-moi si ça résout les pbs rencontrés.
Pour moi, le problème semble bel et bien résolu. Je veux dire que partout où j'utilisais les doublons, cela fonctionne de nouveau.
Bon, je commets une version qui me semble refaire exactement ce que faisait l'ancien
compilo en ce qui concerne les doublons. Dites-moi si ça résout les pbs rencontrés.
On reprendra la discussion plus tard sur les variantes possibles il y a plus urgent.
Je retiens seulement que je n'étais pas le seul à trouver que ça méritait réflexion.
Poursuivant le dev du site sur une autre partie, j'ai fait 2 boucles :
<BOUCLE_lieu(RUBRIQUES){id_rubrique}{doublons}>
<li><a href="annonce-#ID_RUBRIQUE.html">Poster une nouvelle annonce dans « [(#TITRE|supprimer_numero)] »</a></li>
</BOUCLE_lieu>
<li><a href="annonce.html">Poster une nouvelle annonce</a></li>
<//B_lieu>
Pour être sûr, j'ai testé que ça fonctionne en 1.7.2
en 1.8a2 j'ai l'erreur SQL suivante sur la seconde boucle :
<BOUCLE_lieu>(rubriques)
Erreur MySQL
SELECT rubriques.id_rubrique, rubriques.titre, rubriques.lang FROM spip_rubriques AS rubriques WHERE rubriques.id_rubrique ='3' AND rubriques.id_rubrique NOT IN (0,) AND rubriques.statut='publie'
You have an error in your SQL syntax near ') AND rubriques.statut='publie'' at line 7
</BOUCLE_lieu>
le NOT IN est incomplet ce qui provoque l'erreur mais le premier item de la clause WHERE est manifestement l'inverse de ce qu'il devrait être, non ?
Pour les doublons, je me demandais si c'est possible de les faire fonctionner à l'intérieur d'une boucle, ca simplifirait peut etre la presentation par sujet triés par date de réponses.
Juste une remarque concernant le traitement des doublons, je n'ai pas le
temps de regarder le code pour le moment alors je jette l'info comme ca :
les clauses IN sont limitées à 255 elements, il faut donc fractionner en
plusieurs clauses AND IN(.... si on a plus d'elements.
Je ne sais pas si tu y as pensé en codant doublon, je viens de tomber sur
cet oubli sur un de mes projets, le developpeur est pourtant bon, mais il ne
connaissait pas ce "detail".
Quel boulot en tous cas !
Bravo, vivement que j'ai une petite heure pour tester ...
Juste une remarque concernant le traitement des doublons, je n'ai pas le
temps de regarder le code pour le moment alors je jette l'info comme ca :
les clauses IN sont limitées à 255 elements, il faut donc fractionner en
plusieurs clauses AND IN(.... si on a plus d'elements.
Pardon, NOT IN(...) AND NOT IN(... ) pour les doublons ...
Juste une remarque concernant le traitement des doublons, je n'ai pas le
temps de regarder le code pour le moment alors je jette l'info comme ca :
les clauses IN sont limitées à 255 elements, il faut donc fractionner en
plusieurs clauses AND IN(.... si on a plus d'elements.
Pardon, NOT IN(...) AND NOT IN(... ) pour les doublons ...
>>Juste une remarque concernant le traitement des doublons, je n'ai pas le
>>temps de regarder le code pour le moment alors je jette l'info comme ca
>>: les clauses IN sont limitées à 255 elements, il faut donc fractionner
>>en plusieurs clauses AND IN(.... si on a plus d'elements.
>
>Pardon, NOT IN(...) AND NOT IN(... ) pour les doublons ...
Le problème peut se poser ailleurs que sur les {doublons}, je suppose ? A ce
moment-là il faudrait peut-être intercepter la requête au niveau de
spip_query() et transformer les longs
IN (x,y,z...)
en
(IN (x,y) OR IN (z,...))