3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2014 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
13 if (!defined('_ECRIRE_INC_VERSION')) return;
15 include_spip('inc/acces');
16 include_spip('inc/texte');
17 include_spip('inc/forum');
19 /*******************************/
20 /* GESTION DU FORMULAIRE FORUM */
21 /*******************************/
23 // Contexte du formulaire
24 // Mots-cles dans les forums :
25 // Si la variable de personnalisation $afficher_groupe[] est definie
26 // dans le fichier d'appel, et si la table de reference est OK, proposer
27 // la liste des mots-cles
29 // http://doc.spip.org/@balise_FORMULAIRE_FORUM
30 function balise_FORMULAIRE_FORUM ($p) {
32 $p = calculer_balise_dynamique($p,'FORMULAIRE_FORUM', array('id_rubrique', 'id_forum', 'id_article', 'id_breve', 'id_syndic', 'ajouter_mot', 'ajouter_groupe', 'afficher_texte'));
34 // Ajouter le code d'invalideur specifique aux forums
35 include_spip('inc/invalideur');
36 if (function_exists($i = 'code_invalideur_forums'))
37 $p->code
= $i($p, $p->code
);
43 // Chercher le titre et la configuration d'un forum
44 // valeurs possibles : 'pos'teriori, 'pri'ori, 'abo'nnement
45 // Donner aussi la table de reference pour afficher_groupes[]
47 // http://doc.spip.org/@balise_FORMULAIRE_FORUM_stat
48 function balise_FORMULAIRE_FORUM_stat($args, $context_compil) {
50 // le denier arg peut contenir l'url sur lequel faire le retour
51 // exemple dans un squelette article.html : [(#FORMULAIRE_FORUM{#SELF})]
53 // recuperer les donnees du forum auquel on repond.
54 list ($idr, $idf, $ida, $idb, $ids, $am, $ag, $af, $url) = $args;
61 $type = substr($GLOBALS['meta']["forums_publics"],0,3);
64 $titre = sql_fetsel('accepter_forum AS type, titre', 'spip_articles', "statut = 'publie' AND id_article = $ida");
66 if ($titre['type']) $type = $titre['type'];
69 if ($type == 'non') return false;
71 if ($type == 'non') return false;
73 $titre = sql_fetsel('titre', 'spip_breves', "statut = 'publie' AND id_breve = $idb");
76 $titre = sql_fetsel('nom_site AS titre', 'spip_syndic', "statut = 'publie' AND id_syndic = $ids");
79 $titre = sql_fetsel('titre', 'spip_rubriques', "statut = 'publie' AND id_rubrique = $idr");
84 if (!$titre) return false; // inexistant ou non public
87 $titre_m = sql_fetsel('titre', 'spip_forum', "id_forum = $idf");
88 if (!$titre_m) return false; // URL fabriquee
92 if ($GLOBALS['meta']["mots_cles_forums"] != "oui")
95 $titre = supprimer_numero($titre['titre']);
97 // Sur quelle adresse va-t-on "boucler" pour la previsualisation ?
102 array($titre, $table, $type, $script,
103 $idr, $idf, $ida, $idb, $ids, $am, $ag, $af, $url);