3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2019 *
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")) {
17 // https://code.spip.net/@action_instituer_forum_dist
18 function action_instituer_lot_forum_dist($arg = null) {
21 $securiser_action = charger_fonction('securiser_action', 'inc');
22 $arg = $securiser_action();
25 // verifier les droits
26 if (autoriser('instituer', 'forum', 0)) {
29 * Cas 1 : les arguments sont explicites
30 * statut-ip/email/id_auteur/auteur
33 if (preg_match(",^(\w+)-,", $arg, $match)
34 and in_array($statut = $match[1], array('publie', 'off', 'spam'))
36 $arg = substr($arg, strlen($statut) +
1);
38 $arg = explode('/', $arg);
39 $ip = array_shift($arg);
40 $email_auteur = array_shift($arg);
41 $id_auteur = intval(array_shift($arg));
42 $auteur = implode('/', $arg);
44 // pas de moderation par lot sur les forum prives
45 $where[] = sql_in('statut', array('privadm', 'prive', 'privrac'), 'NOT');
47 $where[] = "ip=" . sql_quote($ip);
50 $where[] = "email_auteur=" . sql_quote($email_auteur);
53 $where[] = "id_auteur=" . intval($id_auteur);
56 $where[] = "auteur=" . sql_quote($auteur);
58 $rows = sql_allfetsel("*", "spip_forum", $where);
63 include_spip('action/instituer_forum');
64 foreach ($rows as $row) {
65 instituer_un_forum($statut, $row);
68 * Cas 2 : seul le statut est explicite et signe
69 * les id concernes sont passes en arg supplementaires
70 * dans un taleau ids[]
72 elseif (preg_match(",^(\w+)$,", $arg, $match)
73 and in_array($statut = $match[1], array('publie', 'off', 'spam'))
74 and $id = _request('ids')
78 $ids = array_map('intval', $id);
80 // pas de moderation par lot sur les forum prives
81 $where[] = sql_in('statut', array('privadm', 'prive', 'privrac'), 'NOT');
82 $where[] = sql_in('id_forum', $ids);
83 $rows = sql_allfetsel("*", "spip_forum", $where);
88 include_spip('action/instituer_forum');
89 foreach ($rows as $row) {
90 instituer_un_forum($statut, $row);
94 spip_log("instituer_lot_forum interdit pour auteur " . $GLOBALS['visiteur_session']['id_auteur'], _LOG_ERREUR
);