Je reposte car c'était "sans-objet" désolé.
MJ
-----Message d'origine-----
De : spip-bounces <at> rezo.net [mailto:spip-bounces <at> rezo.net] De
la part de Michel Jorda
Envoyé : mardi 3 juin 2008 22:11
À : Utilisateurs SPIP; SPIP Zone
Objet : [Spip] doublons et/ouJe remplis un doublon avec des articles que l'utilisateur
choisit ( combinaison de mots clefs) {doublons A}J'en remplis un autre avec des articles que l'utilisateur
choisit aussi (texte libre dans plusieurs champs) {doublons B}Jusque là ca va une boucle
<BOUCLE_A(ARTICLES){!doublons A}>
me donne mes articles répondant aux conditions A et pareil pour BMaintenant je souhaites retrouver les articles qui répondent
à la fois à A et à B.Je sèche.
<BOUCLE_AB(ARTICLES){!doublons A}{!doublons B}>me donne TOUS les articles de A + les articles de B. Je
souhaite l'intersection....J'ai réussi avec une solution HORRIBLE à deux boucles (et à
deux balles)<BOUCLE_A(ARTICLES){!doubons A}>
<BOUCLE_B(ARTICLES{!doublons B}>Mais ca me parait une horreur en temps d'exécution, requétes
générées (dès que A est un peu grand..... voire contient
toute la base....)
Tu ne peux pas générer {doublons B} avec {!doublons A} ? Voire avec les
critères de la première boucle ?
-----Message d'origine-----
De : spip-bounces <at>> rezo.net [mailto:spip-bounces <at>> rezo.net] De
la part de Michel Jorda
Envoyé : mardi 3 juin 2008 22:11
À : Utilisateurs SPIP; SPIP Zone
Objet : [Spip] doublons et/ouJe remplis un doublon avec des articles que l'utilisateur
choisit ( combinaison de mots clefs) {doublons A}J'en remplis un autre avec des articles que l'utilisateur
choisit aussi (texte libre dans plusieurs champs) {doublons B}Jusque là ca va une boucle
<BOUCLE_A(ARTICLES){!doublons A}>>
me donne mes articles répondant aux conditions A et pareil pour BMaintenant je souhaites retrouver les articles qui répondent
à la fois à A et à B.Je sèche.
<BOUCLE_AB(ARTICLES){!doublons A}{!doublons B}>>me donne TOUS les articles de A + les articles de B. Je
souhaite l'intersection....J'ai réussi avec une solution HORRIBLE à deux boucles (et à
deux balles)<BOUCLE_A(ARTICLES){!doubons A}>>
<BOUCLE_B(ARTICLES{!doublons B}>>Mais ca me parait une horreur en temps d'exécution, requétes
générées (dès que A est un peu grand..... voire contient
toute la base....)
Tu ne peux pas générer {doublons B} avec {!doublons A} ? Voire avec les
critères de la première boucle ?
Hé bien j'ai des effets de bord je crois...
doublons A est calculé avec une boucle qui cherche l'égalité à un mot clef
(s'il est donné dans le formulaire) et une boucle qui cherche
l'appartenance à un groupe de mots-clefs (s'il est dans le formulaire) /*
pour info, le mot-clef= commune, le groupe=province */
{!doublons A} contient soit tous les articles, soit les articles
correspondants au mot-*clef, soit les articles correpondant au groupe de
mots-clefs.
doublons B est calculé avec des boucles qui font du regexp de texte dans le
titre, le sous-titre, le texte, .... de l'article.
{!doublons B} contient soit les articles qui répondent à 1 des regexp, soit
tous les articles.
partant de la, comment faire {!doublons A} ET {!doublons B} /* donc les
articles qui sont dans la bonne province-commune, et qui vérifient le
regexp */
Merci de ton temps et de l'idée, mais je ne comprends pas comment l'adapter.
voila les boucles pour info
[(#REM) mots communes ou régions ]
<BOUCLE_mprov(ARTICLES){id_rubrique}{id_groupe=#ENV{prov,0}}{doublons com}>
</BOUCLE_mprov>
</B_mprov>
<BOUCLE_mcomD(ARTICLES){id_rubrique}{id_mot=(#ENV{com,0})}{doublons com}>
</BOUCLE_mcomD>
<//B_mprov>
[(#REM) texte libre ]
<BOUCLE_atitre(ARTICLES) {id_rubrique=26}{titre== #ENV{_r,"xx"} }{doublons
dtitre}>
</BOUCLE_atitre>
<BOUCLE_ast(ARTICLES) {id_rubrique=26}{soustitre== #ENV{_r,"xx"}
}{doublons dst}>
</BOUCLE_ast>
<BOUCLE_atxt(ARTICLES) {id_rubrique=26}{texte== #ENV{_r,"xx"} }{doublons
dtxt}>
</BOUCLE_atxt>
<BOUCLE_r(ARTICLES){!doublons dtxt}{!doublons dst}{!doublons
dtitre}{doublons r}>
</BOUCLE_r>
a ce stade, doublons r contient les articles de la regexp, doublons com les
articles commune/province.