Jointure COMMANDES et abonnement KO #8

Closed
opened 7 months ago by booz · 4 comments
booz commented 7 months ago
Collaborator

La boucle <BOUCLE_commande(COMMANDES){id_abonnement}>

Ne marche pas car spip va se tromper de jointure et faire un tour du coté des auteurs_liens au lieu des commandes_liens.

Ici ca n'affiche rien.

https://git.spip.net/spip-contrib-extensions/abonnements/src/branch/master/inclure/resume/abonnement.html#L38

Et ca va générer :

SPIP 3 et 4

SELECT commandes.id_commande, commandes.reference, commandes.echeances_type
FROM spip_commandes AS `commandes`  
INNER JOIN spip_auteurs_liens AS L1 ON ( L1.id_auteur = commandes.id_auteur )
WHERE (L1.id_objet = 86)
	AND (L1.objet = 'abonnement')
GROUP BY commandes.id_commande

Ici ca ne marche pas mieux

https://git.spip.net/spip-contrib-extensions/abonnements/src/branch/master/prive/squelettes/contenu/abonnement.html#L42

La boucle <BOUCLE_commande(COMMANDES){id_abonnement}> Ne marche pas car spip va se tromper de jointure et faire un tour du coté des auteurs_liens au lieu des commandes_liens. Ici ca n'affiche rien. https://git.spip.net/spip-contrib-extensions/abonnements/src/branch/master/inclure/resume/abonnement.html#L38 Et ca va générer : SPIP 3 et 4 ``` SELECT commandes.id_commande, commandes.reference, commandes.echeances_type FROM spip_commandes AS `commandes` INNER JOIN spip_auteurs_liens AS L1 ON ( L1.id_auteur = commandes.id_auteur ) WHERE (L1.id_objet = 86) AND (L1.objet = 'abonnement') GROUP BY commandes.id_commande ``` Ici ca ne marche pas mieux https://git.spip.net/spip-contrib-extensions/abonnements/src/branch/master/prive/squelettes/contenu/abonnement.html#L42
Poster
Collaborator

<BOUCLE_commande(commandes_liens abonnement){objet=abonnement}{id_abonnement}> marche déjà mieux.

`<BOUCLE_commande(commandes_liens abonnement){objet=abonnement}{id_abonnement}>` marche déjà mieux.

Des auteurs ? chelou, pourquoi des auteurs ? C'est vraiment mystérieux les jointures automatiques des fois…

Du coup faut expliciter des fois oui, mais ça dépend ce que tu cherches à lister en priorité (des commandes ou des abonnements ?).

(COMMANDES commandes_liens) {id_abonnement} ? ou {commandes_liens.objet=abonnement} ? Je sais pas faut tester…

Mais peut-être qu'il faut améliorer les déclarations dans l'API lister objet, enfin je sais pas si ça peut deviner tous les cas du monde… (mais là pourquoi auteurs quand même ?)

Des auteurs ? chelou, pourquoi des auteurs ? C'est vraiment mystérieux les jointures automatiques des fois… Du coup faut expliciter des fois oui, mais ça dépend ce que tu cherches à lister en priorité (des commandes ou des abonnements ?). `(COMMANDES commandes_liens) {id_abonnement}` ? ou `{commandes_liens.objet=abonnement}` ? Je sais pas faut tester… Mais peut-être qu'il faut améliorer les déclarations dans l'API lister objet, enfin je sais pas si ça peut deviner tous les cas du monde… (mais là pourquoi auteurs quand même ?)
Poster
Collaborator

c'est à cause de cette declaration

'tables_jointures' => array('spip_commandes_liens'),
'join' => array(
'id_auteur' => 'id_auteur',
),

https://git.spip.net/spip-contrib-extensions/commandes/src/branch/master/base/commandes.php#L86

Si je l'enleve la boucle <BOUCLE_commande(COMMANDES){id_abonnement}> fonctionne

Mais c'est la boucle <BOUCLE_commandes_auteurs(COMMANDES auteurs){tout}{fusion id_auteur}{par auteurs.nom}{pagination 15}> qui ne fonctionne plus ici :

https://git.spip.net/spip-contrib-extensions/commandes/src/branch/master/prive/squelettes/navigation/commandes.html#L183

c'est à cause de cette declaration 'tables_jointures' => array('spip_commandes_liens'), **'join' => array( 'id_auteur' => 'id_auteur', ),** https://git.spip.net/spip-contrib-extensions/commandes/src/branch/master/base/commandes.php#L86 Si je l'enleve la boucle `<BOUCLE_commande(COMMANDES){id_abonnement}>` fonctionne Mais c'est la boucle `<BOUCLE_commandes_auteurs(COMMANDES auteurs){tout}{fusion id_auteur}{par auteurs.nom}{pagination 15}>` qui ne fonctionne plus ici : https://git.spip.net/spip-contrib-extensions/commandes/src/branch/master/prive/squelettes/navigation/commandes.html#L183
Poster
Collaborator

Avec ceci les deux boucles fonctionnent !

		'join' => array(
			'id_commande' => 'id_commande',
			'id_auteur' => 'id_auteur',
		),
Avec ceci les deux boucles fonctionnent ! ``` 'join' => array( 'id_commande' => 'id_commande', 'id_auteur' => 'id_auteur', ), ```
booz closed this issue 6 months ago
Sign in to join this conversation.
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.