Project

General

Profile

Anomalie #2329

jointure mots/auteurs

Added by Alexandre C about 8 years ago. Updated about 8 years ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
09/15/2011
Due date:
% Done:

0%

Resolution:
Navigateur:

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

Revision 18639 (diff)
Added by cedric@yterium.com about 8 years ago

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 about 8 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 - about 8 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 about 8 years ago

oui ça marche

#4 Updated by cedric - about 8 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 about 8 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 - about 8 years ago

  • Status changed from Nouveau to Fermé

Appliqué par commit r18639.

#7 Updated by cedric - about 8 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>

Also available in: Atom PDF