BoOz a écrit :
Hello,
En fait c'est du standard SPIP.
Ce n'est pas ininterressant d'en dire deux mots.
merci Booz.
aller, soyons fous, j'en rajoute une couche !
Comme vous le savez SPIP permet de boucler sur n'importe quelle table avec une <BOUCLE1(LA_TABLE)> et chacun des champs de la table est accessible via les balises #MON_CHAMP.
Par exemple, pour les auteurs, on a une une table spip_auteurs avec un champs email. Ce qui donne (le SPIP_ etant facultatif)
en fait, pour bien comprendre, ce qu'on peut faire c'est :
<BOUCLE1(NOM_LOGIQUE)>
ou
<BOUCLE1(nom_physique)>
quand on utilise les majuscules, on dit à spip d'aller piocher dans son parametrage (la globale tables_des_tables, et en 1.9.3, les tables_auxiliaires sont egalement disponibles).
en minuscule, c'est le nom de la table qu'il faut passer (je crois que si ca commence par spip_, c'est remplacé par le prefixe mais je suis pas sur à 100%)
l'avantage de passer par des noms logiques, c'est qu'on peut avoir a un parametrage.
on peut "dire" à spip de faire une jointure, systematiquement ou si il rencontre un champ d'une table externe ou encore donner des noms logiques à des champs.
c'est ce qui permet de faire :
<BOUCLE1(ARTICLES){titre_mot}>
(la ca fait meme 2 jointures et on a un nom logique de champ, titre_mot etant titre dans la table spip_mots)
si tu fais <BOUCLE1(spip_articles){titre_mot}>, il va te jeter car titre_mot n'est pas un champ de la table spip_articles
<BOUCLE1(AUTEURS spip_auteurs_elargis){id_auteur =1}>
#EMAIL
#PRENOM
</BOUCLE1>
ca, ca devrait marcher, il faut juste declarer les jointures je pense.
d'un point de vue SQL, c'est mieux de faire ca que 2 requetes
<BOUCLE1(INSCRITS){id_auteur =1}>
#EMAIL
#PRENOM
</BOUCLE1>
ca c'est quand meme plus clean pour l'utilisateur
mais autant l'appeler :
<BOUCLE1(AUTEURS_ELARGIS){id_auteur =1}>
#EMAIL
#PRENOM
</BOUCLE1>
et declarer la table avec une jointure systematique vers AUTEURS
non ?
Ceci dit, ca n'est pas exactement la meme chose puisqu'ici, on ne récupèrera que ceux ayant un une fiche, pas les auteurs sans fiche.
une troisieme solution peut etre de faire un critere {auteur_elargi} et permettre comme ca de choisir entre jointure droite ou gauche, et meme pourquoi pas gerer le "not" (ceux qui n'ont pas de fiche).
En plus ce genre de critere pourrait s'utiliser sur n'importe quelle table ayant un id_auteur (forms_donnees par exemple)
mes 2 sous
PS : <BOUCLE1(SPIP_ARTICLES){titre_mot}>, je ne pense pas que ca marche