[SPIP Zone] [Spip-zone-commit] r102819 - in _plugins_/partenaires

Bonjour

Une idée pourquoi la jointure avec spip_mots_liens ne fonctionne pas?

18 <BOUCLE_liste_partenaires_types(PARTENAIRES_TYPES
spip_mots_liens) {id_mot?}{id_auteur?}{where?}{recherche?}{tri #ENV{par,num
titre},#GET{defaut_tri}}{par titre}{pagination #ENV{nb,10}}>

Est-ce la faute de la PRIMARY KEY atypique "id_type" de la table
spip_partenaires_types?

Bonne journée
Rainer

Le 11 février 2017 à 16:12, <spip-zone-commit@rezo.net> a écrit :

Author: abelass@gmail.com
Date: 2017-02-11 16:12:11 +0100 (Sat, 11 Feb 2017)
New Revision: 102819

Modified:
   _plugins_/partenaires/
   _plugins_/partenaires/trunk/base/partenaires.php
   _plugins_/partenaires/trunk/prive/objets/liste/partenaires_types.html
Log:
jointure avec spip_mots_liens ne fonctionne pas, je ne vois pas ce qui
cloche

Details: Connexion · GitLab

_______________________________________________
Spip-zone-commit@rezo.net - http://listes.rezo.net/
mailman/listinfo/spip-zone-commit

je viens de l’essayer

[(#ENV{id_auteur}|oui)[(#VAL{auteur}|setenv{objet})][(#ENV{id_auteur}|setenv{id_objet})]]
[(#ENV{id_mot}|oui)[(#VAL{mot}|setenv{objet})][(#ENV{id_mot}|setenv{id_objet})]]

<BOUCLE_liste_partenaires_types(PARTENAIRES_TYPES){id_objet?}{objet?}{where?}{recherche?}{tri #ENV{par,num titre},#GET{defaut_tri}}{par titre}{pagination #ENV{nb,10}}>

ne fonctionne pas car le join porte sur spip_partenaires_types_liens au lieu de spip_mots_liens

SELECT partenaires_types.id_type, 0 as points, ‹  ›, partenaires_types.titre, partenaires_types.titre AS titre_rang
FROM spip_partenaires_types AS partenaires_types
INNER JOIN spip_partenaires_types_liens AS L1 ON ( L1.id_type = partenaires_types.id_type )
WHERE (L1.objet = ‹ mot ›)
AND (L1.id_objet = 4000021)
GROUP BY partenaires_types.id_type
ORDER BY 0+partenaires_types.titre, partenaires_types.titre

<BOUCLE_liste_partenaires_types(PARTENAIRES_TYPES){spip_mots_liens.id_mot?}{id_auteur?}{where?}{recherche?}{tri #ENV{par,num titre},#GET{defaut_tri}}{par titre}{pagination #ENV{nb,10}}>

donne un fausse requette

SELECT partenaires_types.id_type, 0 as points, ‹  ›, partenaires_types.titre, partenaires_types.titre AS titre_rang
FROM spip_partenaires_types AS partenaires_types
INNER JOIN spip_mots_liens AS L1 ON ( L1.id_objet = partenaires_types.id_type AND L1.objet=‹ type ›)
WHERE (L1.id_mot = 4000021)
GROUP BY partenaires_types.id_type
ORDER BY 0+partenaires_types.titre, partenaires_types.titre

L1.objet=‹ type ›

au lieu de

L1.objet=‹ partenaires_type ›

Visiblement spip déduit que lobjet est ‹ type ›, vu que la clé est ‹ id_type ›, comment lui faire comprendre que l’objet de liaison est ‹ partenaires_type › ?