Bonjour,
Un ravalement de façade du plugin Albums est sur le feu, mais avant tout j'aimerais résoudre un point technique sur lequel je butte depuis un moment.
J'essaie de déclarer une jointure spécifique, et après avoir épluché la doc (programmer, spip.net et contrib) et fais des myriades d'essais en vain, j'en suis arrivé à la triste conclusion que je n'y arriverai pas tout seul :-/
Pour rappel, les albums sont des «conteneurs» à documents, donc ils ont toujours des documents qui leur sont liés.
Voilà ce que je cherche à faire : pouvoir sélectionner des albums en fonction de critères propres aux documents, par ex.:
<BOUCLE_x(ALBUMS){id_document=6} albums contenant le document N° 6
<BOUCLE_x(ALBUMS){media=image} albums contenant des documents de type «image»
<BOUCLE_x(ALBUMS){extension=jpg}> albums contenant des documents JPG
<BOUCLE_x(ALBUMS){fichier LIKE %toto%} albums contenant des documents avec un nom de fichier comprenant «toto»
<BOUCLE_x(ALBUMS){hauteur > 500} albums contenant des documents d'une hauteur supérieure à 500px
etc.
Je sais qu'on peut faire <BOUCLE_x(ALBUMS documents){document.media=image}, mais ce serait chouette de pouvoir utiliser l'écriture simplifiée au dessus et que la jointure sur spip_documents se fasse toute seule.
Une boucle (ALBUMS) avec le critère {id_document} fonctionne déjà, ça veut dire que théoriquement c'est possible pour les autres critères.
Malheureusement, je suis un peu perdu entre les différents endroits où on peut déclarer les jointures :
* dans declarer_tables_interfaces
- $interfaces['tables_jointures']...
- $interfaces['exceptions_des_jointures']...
* dans declarer_tables_objets_sql
- $tables['spip_albums']['join'] = ...
Et surtout, sur la façon de le faire. J'ai essayé ceci, mais ça ne marche pas :
$interfaces['tables_jointures']['spip_albums'][]= 'documents';
$interfaces['tables_jointures']['spip_albums'][]= 'documents_liens';
Voilà, j'ai l'impression de pas être trop loin de la solution, mais qu'il y a un point important qui m'échappe.
Bref, si quelqu'un à l'aise avec tout ça avait l'heur de me dépanner, ce serait super bath !
C.R
P.S. : le critère «media» tout vilain présent actuellement dans le plugin est à oublier.