Si je crée plusieurs événements à la suite sur un même article, quand j'enregistre, il me ramène à l'article avec en paramètre l'id de l'événement créé : ecrire/?exec=articles&id_evenement=4&id_article=3
Du coup, la page n'affiche qu'un événement et j'ai cru à un bug jusqu'à ce que je lise l'URL et comprenne que c'était volontaire de n'afficher que l'événement venant d'être créé.
Intuitivement, j'avais anticipé que je verrais _tous_ les événements après avoir enregistré.
D'autre part :
- je crée un groupe de mots clefs affectables aux évenements
- je crée 3 mots clefs dans ce groupe
- je crée un article et le publie
- dans l'article, je crée 3 événements et leur affecte à l'un les 2 premiers mots clefs, au 2e, le 3e mot clef, et au 3e aucun
Je teste ensuite le squelette suivant :
<ul>
<BOUCLE_ListeMots(MOTS)>
<li>#TITRE
<B_Evenements>
<ul>
<BOUCLE_Evenements(EVENEMENTS){id_mot}>
<li>#TITRE</li>
</BOUCLE_Evenements>
</ul>
</B_Evenements>
</li>
</BOUCLE_ListeMots>
</ul>
Objectif : lister les événements rattachés à tel ou tel mot clef.
Résultat :
Erreur sur le site boucle critère inconnu id_mot
2 <BOUCLE_Evenements>()
Erreur SQL
evenements.titre FROM spip_evenements AS `evenements`, spip_articles AS `articles` WHERE (id_mot = 1) AND (articles.id_article = evenements.id_article) AND (articles.statut = "publie")
Unknown column 'id_mot' in 'where clause'
</BOUCLE_Evenements>
Ceci marchait en 1.9 avec le plugin agenda pour SPIP 1.9
Dernière boucle cassée (il existe un mot clef mc1 relié à un événement) :
<BOUCLE_ListeEvenements(EVENEMENTS){titre_mot=mc1}>
<li>#TITRE</li>
</BOUCLE_ListeEvenements>
Qui donne :
Erreur sur le site boucle critère inconnu titre
2 <BOUCLE_ListeEvenements>()
Erreur SQL
evenements.titre FROM spip_evenements AS `evenements`, spip_articles AS `articles` WHERE (titre = 'mc1') AND (articles.id_article = evenements.id_article) AND (articles.statut = "publie")
Column 'titre' in where clause is ambiguous
</BOUCLE_ListeEvenements>
Pour les bugs, si dans base/agenda_evenements.php je remet la ligne :
$tables_principales['spip_evenements'] =
- array('field' => &$evenements, 'key' => &$evenements_key, 'join'=>array('id_article'=>'id_article'));
+ array('field' => &$evenements, 'key' => &$evenements_key);
comme elle était avant dans le plugin en 192, ça marche !
Par contre, le critère {branche} provoque avec le squelette :
<ul>
<BOUCLE_ListeSecteurs(RUBRIQUES){racine}>
<li>#TITRE
<B_EvenementsSecteur>
<ul>
<BOUCLE_EvenementsSecteur(EVENEMENTS){branche}>
<li>#TITRE</li>
</BOUCLE_EvenementsSecteur>
</ul>
</B_EvenementsSecteur>
</li>
</BOUCLE_ListeSecteurs>
</ul>
<BOUCLE_EvenementsSecteur>()
Erreur SQL
evenements.titre FROM spip_evenements AS `evenements`, spip_articles AS `articles` WHERE ((.id_rubrique IN (1))) AND (articles.id_article = evenements.id_article) AND (articles.statut = "publie")
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN (1))) AND (articles.id_article = evenements.id_article) AND (articles.statu' at line 3
</BOUCLE_EvenementsSecteur>
ben oui, faisons une jointure entre des elephants et des chaussettes, si ca marche sans comprendre c'est pas grave, on cherchera des heures le bug que ca provoque une autre fois.
merci de réserver ces recettes de marabout a tes plugins...
* cedric.morin@yterium.com tapuscrivait, le 31/10/2008 10:22:
ben oui, faisons une jointure entre des elephants et des chaussettes, si ca marche sans comprendre c'est pas grave, on cherchera des heures le bug que ca provoque une autre fois.
cedric.morin@yterium.com a écrit :
> ben oui, faisons une jointure entre des elephants et des chaussettes, si
> ca marche sans comprendre c'est pas grave, on cherchera des heures le
> bug que ca provoque une autre fois.
> merci de réserver ces recettes de marabout a tes plugins...
Hé Cédric, ne réserve pas la courtoisie aux femmes,
sinon on pourrait finalement te considérer comme sexiste !