--- /dev/null
+<?php
+
+// {traduction}
+// http://www.spip.net/@traduction
+// (id_trad>0 AND id_trad=id_trad(precedent))
+// OR id_article=id_article(precedent)
+function critere_traduction($idb, &$boucles, $param, $not) {
+ $boucle = &$boucles[$idb];
+
+ // cas des rubriques : on va chercher toutes les rubriques contenant
+ // des trads *publiees* de nos articles *publies*
+ if ($boucle->id_table == 'rubriques') {
+ if ($param == 'traduction') {
+ $boucle->from[] = "spip_articles AS source";
+ $boucle->from[] = "spip_articles AS dest";
+ $boucle->group = "rubriques.id_rubrique";
+ $boucle->where[] = "((source.id_trad=dest.id_trad
+ AND source.statut='publie'
+ AND dest.statut='publie'
+ AND rubriques.id_rubrique = source.id_rubrique
+ AND dest.id_rubrique = '\"."
+ . calculer_argument_precedent($idb, 'id_rubrique',
+ $boucles)
+ . ".\"') OR (rubriques.id_rubrique = '\"."
+ . calculer_argument_precedent($idb, 'id_rubrique',
+ $boucles)
+ . ".\"'))
+ ";
+ return;
+ } else
+ erreur_squelette(_T('zbug_info_erreur_squelette'), $param);
+ }
+
+ // cas normal (articles) : la table possede un champ id_trad
+ if ($param == 'traduction') {
+ $boucle->where[] = "((".$boucle->id_table.".id_trad > 0 AND "
+ . $boucle->id_table.".id_trad ='\"."
+ . calculer_argument_precedent($idb, 'id_trad',
+ $boucles)
+ . ".\"')
+ OR
+ (" . $boucle->id_table.".".$boucle->primary." ='\"."
+ . calculer_argument_precedent($idb, $boucle->primary,
+ $boucles)
+ . ".\"'))";
+ } else
+ erreur_squelette(_T('zbug_info_erreur_squelette'), $param);
+}
+
+?>
\ No newline at end of file