Anomalie #2329
jointure mots/auteurs
0%
Description
Je retrouve l'anomalie #2110, en plus large
Sur un SPIP 3.0.0-alpha2 [18529] tout neuf, avec un mot lié a un auteur.
Ca fonctionne bien en admin, mais dans un squelette les boucles suivantes ne renvoient rien
<BOUCLE_testa(AUTEURS){id_mot=1}>
ID_AUTEUR : #ID_AUTEUR - #NOM
</BOUCLE_testa>
<BOUCLE_testb(MOTS){id_auteur=1}>
ID_MOT : #ID_MOT #TITRE / #MOT
</BOUCLE_testb>
<BOUCLE_testc(AUTEURS spip_mots_liens){id_objet=1}{objet=auteur}>
ID_AUTEUR : #ID_AUTEUR - #NOM
</BOUCLE_testc>
Pour cette dernière boucle, elle fonctionne bien si on retire le critere objet
Associated revisions
Suite a http://zone.spip.org/trac/spip-zone/changeset/53744, eviter les doublons dans les declarations de tables de jointure. Il faut eliminer celles-ci si les deux declarations ont une clé numérique uniquement, ce qui oblige à le faire manuellement.
Cela reste un cas particulier a faible occurence.
Ferme #2329
History
#1
Updated by Alexandre C over 9 years ago
en fait, pour les 3 boucles, spip fait la jointure automatique sur
spip_auteurs_liens
mais la liaison est stockée dans
spip_mots_liens
#2
Updated by cedric - over 9 years ago
<BOUCLE_testc(AUTEURS mots_liens){id_mot=1}> ID_AUTEUR : #ID_AUTEUR - #NOM </BOUCLE_testc>
devrait marcher, non ?
#3
Updated by Alexandre C over 9 years ago
oui ça marche
#4
Updated by cedric - over 9 years ago
- Priority changed from Haut to Normal
c'est le principe. Il y a une jointure privilégiée par défaut (ici auteurs_liens), mais on peut forcer l'autre en l'explicitant.
De même
<BOUCLE_testb(MOTS mots_liens){id_auteur=1}> ID_MOT : #ID_MOT #TITRE / #MOT </BOUCLE_testb>
par contre il serait bien que
<BOUCLE_testc(AUTEURS spip_mots_liens){id_objet=1}{objet=auteur}> ID_AUTEUR : #ID_AUTEUR - #NOM </BOUCLE_testc>
marche quand meme. Je baisse la priorité du coup.
#5
Updated by Alexandre C over 9 years ago
Je reste quand même surpris pour les boucles a et b :
- Ce qui ne me parait pas logique pour ce cas de liaison auteur<=>mot, c'est que spip, s'il fait un choix privilégié entre mots_liens et auteurs_liens, ne le fait pas dans le même sens partout :
- quand on utilise l'admin, il le note toujours dans mots_liens
- quand on demande la jointure automatique , il choisit plutôt auteurs_liens
- d'autant que ce sont des écritures qui paraissent vraiment logiques dans le sens spip, voire historiques (?) pour ceux qui utilisait l'un des plugin du type mot clé partout
(pardon si je reviens sur des points abordés, je ne retrouve plus certains détails écrits il y a deux mois quand la question s'était déjà posée)
Egalement , sur la page d'admin du mot clé, le récapitulatif des auteurs liés n'est pas filtré :
la page ?exec=mot&id_mot=1 mentionne tout les auteurs, liés ou non au mot clé en question.
(squelette ../prive/objets/liste/auteurs.html)
(testé également sur SPIP 3.0.0-alpha2 [18529])
#6
Updated by cedric - over 9 years ago
- Status changed from Nouveau to Fermé
Appliqué par commit r18639.
#7
Updated by cedric - over 9 years ago
Les écritures A et B du ticket sont désormais OK par défaut.
L'écriture C ne peut l'être.
Toutes ces écritures fonctionnent :
<h1>#SQUELETTE</h1> <BOUCLE_testa(AUTEURS){id_mot=1}> A : ID_AUTEUR : #ID_AUTEUR - #NOM </BOUCLE_testa> <BOUCLE_testb(MOTS){id_auteur=1}> B : ID_MOT : #ID_MOT #TITRE / #MOT </BOUCLE_testb> <BOUCLE_testc(AUTEURS spip_mots_liens){id_mot=1}> C : ID_AUTEUR : #ID_AUTEUR - #NOM </BOUCLE_testc> <BOUCLE_teste(AUTEURS mots_liens){id_mot=1}> E : ID_AUTEUR : #ID_AUTEUR - #NOM </BOUCLE_teste> <BOUCLE_testf(MOTS mots_liens){id_auteur=1}> F : ID_MOT : #ID_MOT #TITRE / #MOT </BOUCLE_testf>