[SPIP] ~maj SPIP v3.0.17 --> v3.0.19
[lhc/web/clavette_www.git] / www / plugins-dist / forum / formulaires / activer_forums_objet.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2014 *
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 // Recuperer le reglage des forums publics de l'article x
16 // http://code.spip.net/@get_forums_publics
17 function get_forums_publics($id_objet=0, $objet='article') {
18
19 if ($objet=='article' AND $id_objet) {
20 $obj = sql_fetsel("accepter_forum", "spip_articles", "id_article=".intval($id_objet));
21
22 if ($obj) return $obj['accepter_forum'];
23 } else { // dans ce contexte, inutile
24 return substr($GLOBALS['meta']["forums_publics"],0,3);
25 }
26 return $GLOBALS['meta']["forums_publics"];
27 }
28
29 /**
30 * Charger
31 *
32 * @param int $id_article
33 * @return array
34 */
35 function formulaires_activer_forums_objet_charger_dist($id_objet, $objet='article'){
36 if (!autoriser('modererforum', $objet, $id_objet))
37 return false;
38
39 include_spip('inc/presentation');
40 include_spip('base/abstract_sql');
41 $nb_forums = sql_countsel("spip_forum", "objet=".sql_quote($objet)." AND id_objet=".intval($id_objet)." AND statut IN ('publie', 'off', 'prop', 'spam')");
42 $editable = ($objet=='article')?true:false;
43 if (!$editable AND !$nb_forums)
44 return false;
45
46 return array(
47 'editable' => $editable,
48 'objet' => $objet,
49 'id_objet' => $id_objet,
50 'accepter_forum' => get_forums_publics($id_objet, $objet),
51 '_suivi_forums' => $nb_forums?_T('forum:icone_suivi_forum', array('nb_forums' => $nb_forums)):"",
52 );
53
54 }
55
56 /**
57 * Traiter
58 *
59 * @param int $id_objet
60 * @param string $objet
61 * @return array
62 */
63 function formulaires_activer_forums_objet_traiter_dist($id_objet, $objet='article'){
64 include_spip('inc/autoriser');
65 if ($objet=='article' AND autoriser('modererforum', $objet, $id_objet)){
66 $statut = _request('accepter_forum');
67 include_spip('base/abstract_sql');
68 sql_updateq("spip_articles", array("accepter_forum" => $statut), "id_article=". intval($id_objet));
69
70 if ($statut == 'abo') {
71 ecrire_meta('accepter_visiteurs', 'oui');
72 }
73 include_spip('inc/invalideur');
74 suivre_invalideur("id='$objet/$id_objet'");
75 }
76
77 return array('message_ok'=>_T('config_info_enregistree'),'editable'=>true);
78 }
79
80 ?>