Version 2 — Novembre 2021 — JLuc
Dans SPIP 4 et les plugins dist, on trouve 8 occurrences d’une jointure explicite à 3 tables : 7 font la même jointure du document vers la table des types de document, et 1 tente une jointure des documents vers l’article courant.
Accéder au type d’un document
Dans modeles/document_case.html
!
<BOUCLE_docslies(DOCUMENTS documents_liens types_documents){id_document}{id_objet}{objet}{statut?}>
Filtrer sur l’article auquel est associé un document
Mauvais exemple dans inclure/documents.html ça marche pas bien : https://git.spip.net/spip/dist/issues/4834
<BOUCLE_documents_decompte(DOCUMENTS spip_documents_liens articles) {id_article?}{objet?}{id_objet?} {media!=image} {texte=''} {vu=non}>
Des documents vers leurs types
Visiblement ces liaisons peuvent se faire avec 2 tables seulement.
Dans modeles/audio_emb.html
:
<BOUCLE_ext(DOCUMENTS types_documents) {id_document=#ENV{id,#ENV{id_document}}} {tout}>
Des MESSAGES vers leurs auteurs
Dans organiseur/prive/objets/liste/messages-recus.html :
<BOUCLE_compte_non_lus(MESSAGES auteurs){destinataire?#ENV{destinataire}}{id_auteur?}{type!=pb}{type?}{where?}{statut?}{recherche?}{non_lu}>[(#NOM|vide)]</BOUCLE_compte_non_lus>
Dans organiseur/prive/rss on trouve
<BOUCLE_A(messages auteurs_liens){doublons M}{auteurs_liens.id_auteur}>
mais aussitôt après :
<BOUCLE_RSS(messages auteurs){!par date_heure}{!doublons M}{0,10}>
puis
<BOUCLE_message_rv(messages auteurs_messages){lang_select=non}{par date_heure}{inverse}{statut="publie"}{rv=oui}{auteurs_messages.id_auteur=#ID_AUTEUR}>
spip/prive/ical_prive.html inverse l’ordre d’apparition des tables :
<BOUCLE_message_n_a(AUTEURS auteurs_messages){lang_select=non}{id_message}>
Modifications opérées par un auteur
Dans prive/rss/revisions.html :
<BOUCLE_RSS(VERSIONS auteurs){id_version >1}{!par date}{0,10}{id_secteur ?}{id_auteur ?}>