[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_www.git] / www / plugins-dist / petitions / action / traiter_lot_signature.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2016 *
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 function action_traiter_lot_signature_dist($arg=null) {
16
17 if (is_null($arg)){
18 $securiser_action = charger_fonction('securiser_action', 'inc');
19 $arg = $securiser_action();
20 }
21
22 /**
23 * $arg contient l'action relancer/supprimer/valider
24 * les id sont dans un tableau non signe ids[]
25 */
26 if (preg_match(",^(\w+)$,",$arg,$match)
27 AND in_array($statut=$match[1],array('relancer','supprimer','valider'))
28 AND autoriser('modererlot','petition')){
29 $where = '';
30 if (intval($id_petition = _request('id_petition'))){
31 $where="id_petition=".intval($id_petition);
32 // pour relancer ou valider on ne prend que celles en attente
33 if (in_array($statut,array('relancer','valider')))
34 $where.=" AND statut!='publie' AND statut!='poubelle'";
35 }
36 else {
37 $ids=_request('ids');
38 if (is_array($ids)) {
39 $ids = array_map('intval',$ids);
40 $where = sql_in('id_signature',$ids);
41 }
42 }
43
44 if ($where){
45 $rows = sql_allfetsel("id_signature", "spip_signatures", $where);
46 if (!count($rows)) return;
47 $rows = array_map('reset',$rows);
48 if ($action = charger_fonction($statut."_signature",'action',true))
49 foreach ($rows as $id_signature) {
50 $action($id_signature);
51 }
52 }
53 }
54 }
55
56 ?>