source: spip-zone/_core_/plugins/forum/formulaires/activer_forums_objet.php @ 113294

Last change on this file since 113294 was 113294, checked in by spip.franck@…, 22 months ago

Il parait que le futur c'est maintenant :-D

File size: 3.1 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2019                                                *
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/**
14 * Gestion du formulaire de configuration indiquant où les forums peuvent
15 * être activés
16 *
17 * @package SPIP\Forum\Formulaires
18 **/
19if (!defined("_ECRIRE_INC_VERSION")) {
20        return;
21}
22
23/**
24 * Récupérer le réglage des forums publics d'un objet
25 *
26 * @param int $id_objet
27 * @param string $objet
28 * @return bool
29 *     true si les forums publics sont autorisés, false sinon
30 **/
31function get_forums_publics($id_objet = 0, $objet = 'article') {
32
33        if ($objet == 'article' and $id_objet) {
34                $obj = sql_fetsel("accepter_forum", "spip_articles", "id_article=" . intval($id_objet));
35
36                if ($obj) {
37                        return $obj['accepter_forum'];
38                }
39        } else { // dans ce contexte, inutile
40                return substr($GLOBALS['meta']["forums_publics"], 0, 3);
41        }
42
43        return $GLOBALS['meta']["forums_publics"];
44}
45
46/**
47 * Charger
48 *
49 * @param int $id_objet
50 * @param string $objet
51 * @return array
52 *     Contexte du squelette du formulaire
53 */
54function formulaires_activer_forums_objet_charger_dist($id_objet, $objet = 'article') {
55        if (!autoriser('modererforum', $objet, $id_objet)) {
56                return false;
57        }
58
59        include_spip('inc/presentation');
60        include_spip('base/abstract_sql');
61        $nb_forums = sql_countsel("spip_forum",
62                "objet=" . sql_quote($objet) . " AND id_objet=" . intval($id_objet) . " AND statut IN ('publie', 'off', 'prop', 'spam')");
63        $editable = ($objet == 'article') ? true : false;
64        if (!$editable and !$nb_forums) {
65                return false;
66        }
67
68        return array(
69                'editable' => $editable,
70                'objet' => $objet,
71                'id_objet' => $id_objet,
72                'accepter_forum' => get_forums_publics($id_objet, $objet),
73                '_suivi_forums' => $nb_forums ? _T('forum:icone_suivi_forum', array('nb_forums' => $nb_forums)) : "",
74        );
75
76}
77
78/**
79 * Traiter
80 *
81 * @param int $id_objet
82 * @param string $objet
83 * @return array
84 *     Retours des traitements
85 */
86function formulaires_activer_forums_objet_traiter_dist($id_objet, $objet = 'article') {
87        include_spip('inc/autoriser');
88        if ($objet == 'article' and autoriser('modererforum', $objet, $id_objet)) {
89                $statut = _request('accepter_forum');
90                include_spip('base/abstract_sql');
91                sql_updateq("spip_articles", array("accepter_forum" => $statut), "id_article=" . intval($id_objet));
92
93                if ($statut == 'abo') {
94                        ecrire_meta('accepter_visiteurs', 'oui');
95                }
96                include_spip('inc/invalideur');
97                suivre_invalideur("id='$objet/$id_objet'");
98        }
99
100        return array('message_ok' => _T('config_info_enregistree'), 'editable' => true);
101}
Note: See TracBrowser for help on using the repository browser.