[SPIP] +2.1.12
[velocampus/web/www.git] / www / ecrire / balise / formulaire_forum.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2011 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
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 \***************************************************************************/
12
13 if (!defined('_ECRIRE_INC_VERSION')) return;
14
15 include_spip('inc/acces');
16 include_spip('inc/texte');
17 include_spip('inc/forum');
18
19 /*******************************/
20 /* GESTION DU FORMULAIRE FORUM */
21 /*******************************/
22
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
28
29 // http://doc.spip.org/@balise_FORMULAIRE_FORUM
30 function balise_FORMULAIRE_FORUM ($p) {
31
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'));
33
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);
38
39 return $p;
40 }
41
42 //
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[]
46
47 // http://doc.spip.org/@balise_FORMULAIRE_FORUM_stat
48 function balise_FORMULAIRE_FORUM_stat($args, $context_compil) {
49
50 // le denier arg peut contenir l'url sur lequel faire le retour
51 // exemple dans un squelette article.html : [(#FORMULAIRE_FORUM{#SELF})]
52
53 // recuperer les donnees du forum auquel on repond.
54 list ($idr, $idf, $ida, $idb, $ids, $am, $ag, $af, $url) = $args;
55 $idr = intval($idr);
56 $idf = intval($idf);
57 $ida = intval($ida);
58 $idb = intval($idb);
59 $ids = intval($ids);
60
61 $type = substr($GLOBALS['meta']["forums_publics"],0,3);
62
63 if ($ida) {
64 $titre = sql_fetsel('accepter_forum AS type, titre', 'spip_articles', "statut = 'publie' AND id_article = $ida");
65 if ($titre) {
66 if ($titre['type']) $type = $titre['type'];
67 $table = "articles";
68 }
69 if ($type == 'non') return false;
70 } else {
71 if ($type == 'non') return false;
72 if ($idb) {
73 $titre = sql_fetsel('titre', 'spip_breves', "statut = 'publie' AND id_breve = $idb");
74 $table = "breves";
75 } else if ($ids) {
76 $titre = sql_fetsel('nom_site AS titre', 'spip_syndic', "statut = 'publie' AND id_syndic = $ids");
77 $table = "syndic";
78 } else if ($idr) {
79 $titre = sql_fetsel('titre', 'spip_rubriques', "statut = 'publie' AND id_rubrique = $idr");
80 $table = "rubriques";
81 }
82 }
83
84 if (!$titre) return false; // inexistant ou non public
85
86 if ($idf>0) {
87 $titre_m = sql_fetsel('titre', 'spip_forum', "id_forum = $idf");
88 if (!$titre_m) return false; // URL fabriquee
89 $titre = $titre_m;
90 }
91
92 if ($GLOBALS['meta']["mots_cles_forums"] != "oui")
93 $table = '';
94
95 $titre = supprimer_numero($titre['titre']);
96
97 // Sur quelle adresse va-t-on "boucler" pour la previsualisation ?
98 // si vide : self()
99 $script = '';
100
101 return
102 array($titre, $table, $type, $script,
103 $idr, $idf, $ida, $idb, $ids, $am, $ag, $af, $url);
104 }
105
106 ?>