source: spip-zone/_core_/plugins/forum/action/instituer_lot_forum.php @ 93640

Last change on this file since 93640 was 93640, checked in by marcimat@…, 5 years ago

Meilleure compatibilité avec PSR-2 et nos règles d'écriture, en appliquant
différents fix avec php-cs-fixers. Fixers appliqués ici :

'encoding', utf8
'eof_ending',
un saut de ligne en fin de fichier
'elseif', elseif plutôt que else if
'function_call_space',
espaces sur fonctions
'function_declaration', espaces sur fonctions
'function_typehint_space',
espaces sur fonctions
'linefeed', sauts de ligne \n uniquement
'lowercase_constants',
true, false, null en munuscule
'lowercase_keywords', mots clés PHP en lowercase
'method_argument_space',
espaces sur appels de fonctions
'multiple_use', use unique sur fonctions anonymes
'newline_after_open_tag',
ouverture de php… et c'est tout sur cette ligne
'operators_spaces', espaces de part et d'autres des opérateurs binaires
'parenthesis',
pas d'espace juste après parenthèse ouvrante, ou avant parenthèse fermante
'php_closing_tag', pas de fermeture de php
'short_tag',
tag PHP corrects
'trailing_spaces', pas d'espace qui traîne en fin de ligne
'visibility',
déclarer 'public / private / protected' sur les méthodes

File size: 3.0 KB
Line 
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
13if (!defined("_ECRIRE_INC_VERSION")) {
14        return;
15}
16
17// http://code.spip.net/@action_instituer_forum_dist
18function action_instituer_lot_forum_dist($arg = null) {
19
20        if (is_null($arg)) {
21                $securiser_action = charger_fonction('securiser_action', 'inc');
22                $arg = $securiser_action();
23        }
24
25        // verifier les droits
26        if (autoriser('instituer', 'forum', 0)) {
27
28                /**
29                 * Cas 1 : les arguments sont explicites
30                 * statut-ip/email/id_auteur/auteur
31                 *
32                 */
33                if (preg_match(",^(\w+)-,", $arg, $match)
34                        and in_array($statut = $match[1], array('publie', 'off', 'spam'))
35                ) {
36                        $arg = substr($arg, strlen($statut) + 1);
37
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);
43                        $where = array();
44                        // pas de moderation par lot sur les forum prives
45                        $where[] = sql_in('statut', array('privadm', 'prive', 'privrac'), 'NOT');
46                        if ($ip) {
47                                $where[] = "ip=" . sql_quote($ip);
48                        }
49                        if ($email_auteur) {
50                                $where[] = "email_auteur=" . sql_quote($email_auteur);
51                        }
52                        if ($id_auteur) {
53                                $where[] = "id_auteur=" . intval($id_auteur);
54                        }
55                        if ($auteur) {
56                                $where[] = "auteur=" . sql_quote($auteur);
57                        }
58                        $rows = sql_allfetsel("*", "spip_forum", $where);
59                        if (!count($rows)) {
60                                return;
61                        }
62
63                        include_spip('action/instituer_forum');
64                        foreach ($rows as $row) {
65                                instituer_un_forum($statut, $row);
66                        }
67                } /**
68                 * Cas 2 : seul le statut est explicite et signe
69                 * les id concernes sont passes en arg supplementaires
70                 * dans un taleau ids[]
71                 */
72                elseif (preg_match(",^(\w+)$,", $arg, $match)
73                        and in_array($statut = $match[1], array('publie', 'off', 'spam'))
74                        and $id = _request('ids')
75                        and is_array($id)
76                ) {
77
78                        $ids = array_map('intval', $id);
79                        $where = array();
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);
84                        if (!count($rows)) {
85                                return;
86                        }
87
88                        include_spip('action/instituer_forum');
89                        foreach ($rows as $row) {
90                                instituer_un_forum($statut, $row);
91                        }
92                }
93        } else {
94                spip_log("instituer_lot_forum interdit pour auteur " . $GLOBALS['visiteur_session']['id_auteur'], _LOG_ERREUR);
95        }
96
97}
Note: See TracBrowser for help on using the repository browser.