b9091545f968594ef171f65cdc97bc341a594d51
[lhc/web/www.git] / www / plugins-dist / petitions / formulaires / activer_petition_article.php
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 if (!defined("_ECRIRE_INC_VERSION")) {
14 return;
15 }
16
17 /**
18 * Charger
19 *
20 * @param int $id_article
21 * @return array
22 */
23 function formulaires_activer_petition_article_charger_dist($id_article) {
24
25 $valeurs = array();
26
27 $valeurs['editable'] = true;
28
29 if (!autoriser('modererpetition', 'article', $id_article)) {
30 $valeurs['editable'] = false;
31 }
32
33 include_spip('inc/presentation');
34 include_spip('base/abstract_sql');
35 $nb_signatures = 0;
36 $petition = sql_fetsel("*", "spip_petitions", "id_article=$id_article");
37 if ($petition) {
38 $nb_signatures = sql_countsel("spip_signatures", "id_petition=" . intval($petition['id_petition']));
39 }
40
41 $valeurs['id_article'] = $id_article;
42 $valeurs['petition'] = $petition;
43 $valeurs['_controle_petition'] = $nb_signatures ? singulier_ou_pluriel($nb_signatures, 'petitions:une_signature',
44 'petitions:nombre_signatures') : "";
45
46 return $valeurs;
47
48 }
49
50 /**
51 * Traiter
52 *
53 * @param int $id_article
54 * @return array
55 */
56 function formulaires_activer_petition_article_traiter_dist($id_article) {
57
58 include_spip('inc/autoriser');
59
60 if (autoriser('modererpetition', 'article', $id_article)) {
61 switch (_request('change_petition')) {
62 case 'on':
63 foreach (array('email_unique', 'site_obli', 'site_unique', 'message') as $k) {
64 if (_request($k) != 'oui') {
65 set_request($k, 'non');
66 }
67 }
68
69 include_spip('action/editer_petition');
70 if (!$id_petition = sql_getfetsel('id_petition', 'spip_petitions', 'id_article=' . intval($id_article))) {
71 $id_petition = petition_inserer($id_article);
72 }
73
74 petition_modifier(
75 $id_petition,
76 array(
77 'email_unique' => _request('email_unique'),
78 'site_obli' => _request('site_obli'),
79 'site_unique' => _request('site_unique'),
80 'message' => _request('message'),
81 'texte' => _request('texte_petition'),
82 'statut' => 'publie',
83 )
84 );
85 break;
86 case 'off':
87 if ($id_petition = sql_getfetsel('id_petition', 'spip_petitions', 'id_article=' . intval($id_article))) {
88 include_spip('action/editer_petition');
89 petition_modifier($id_petition, array('statut' => 'poubelle'));
90 }
91 break;
92 }
93 }
94
95 return array('message_ok' => _T('config_info_enregistree'));
96
97 }