[SPIP] +2.1.12
[velocampus/web/www.git] / www / config / mes_fonctions.php
diff --git a/www/config/mes_fonctions.php b/www/config/mes_fonctions.php
new file mode 100755 (executable)
index 0000000..b31bf71
--- /dev/null
@@ -0,0 +1,50 @@
+<?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