Bonjour,
J'ai une table spip_lettres et j'ai créé une boucle LETTRES à partir de celle-ci.
J'ai aussi une boucle ABONNES (spip_abonnes). Je possède une table de liaison spip_abonnes_lettres qui me permet de mémoriser un couple (id_lettre, id_abonne)
Le code suivant fonctionne :
<BOUCLE_lettres(LETTRES)>
<h1>#TITRE</h1>
<BOUCLE_jonction(ABONNES_LETTRES) {id_lettre}>
<BOUCLE_abonnes(ABONNES) {id_abonne}>
- #EMAIL<br />
</BOUCLE_abonnes>
</BOUCLE_jonction>
</BOUCLE_lettres>
Mon but est d'arriver à faire :
<BOUCLE_lettres(LETTRES)>
<h1>#TITRE</h1>
<BOUCLE_abonnes(ABONNES) {id_lettre}>
- #EMAIL<br />
</BOUCLE_abonnes>
</BOUCLE_lettres>
De la même manière (avec des mots-clés) je voudrais être capable de faire
<BOUCLE_lettres(LETTRES) {titre_mot=flash}> ou <BOUCLE_lettres(LETTRES) {id_mot=##}> si j'en demande trop
<h1>#TITRE</h1>
<p>#TEXTE</p>
</BOUCLE_lettres>
qui me retourne :
" Unknown column 'id_lettre' in 'where clause'
SELECT abonnes.email FROM spip_abonnes AS `abonnes` WHERE id_lettre = '6' "
Pourtant j'ai suivi l'article http://www.spip-contrib.net/spikini/PagePrincipale?wiki=JonctionEntreTables et déclaré :
global $tables_relations;
$tables_relations['lettres']['id_abonne'] = 'abonnes_lettres';
$tables_relations['abonnes']['id_lettre'] = 'abonnes_lettres';
include_spip('base/serial');
ne résout pas le problème.
Je suis preneur d'un exemple qui marche (autre que motspartout car les déclarations sont différentes) où vous déclarez une nouvelle table spip_machins et où vous associez les mots-clés spip_mots_machins.
J'utilise SPIP 1.9 beta 1 et je développe un plugin de lettres d'information libre (je sais que spip-listes existe, merci de garder vos réactions pour le chan irc).
Pierre BASSON