[PLUGINS] ~abomailman 1.1.6 --> 1.1.9
[lhc/web/www.git] / www / plugins / abomailmans / formulaires / editer_abomailman.php
1 <?php
2
3 if (!defined('_ECRIRE_INC_VERSION')) {
4 return;
5 }
6
7 include_spip('inc/autoriser');
8 include_spip('inc/actions');
9 include_spip('inc/editer');
10
11 // chargement des valeurs par defaut des champs du formulaire
12 function formulaires_editer_abomailman_charger_dist($id_abomailman = 'new', $retour = '', $config_fonc = '', $row = array(), $hidden = '')
13 {
14 $valeurs = array();
15
16 //initialise les variables d'environnement pas défaut
17 if (!autoriser('creer', 'abomailman', 'oui')) {
18 $editable = false;
19 } else {
20 $valeurs = formulaires_editer_objet_charger('abomailman', $id_abomailman, 0, 0, $retour, $config_fonc, $row, $hidden);
21 $editable = true;
22 }
23
24 if (!$valeurs['langue']) {
25 $valeurs['langue'] = lang_select();
26 }
27 unset($valeurs['lang']);
28
29 $recuptemplate = explode('&', _request('modele_defaut'));
30 $valeurs['template'] = $recuptemplate[0];
31 $valeurs['envoi_liste_parametres'] = recup_param(_request('modele_defaut'));
32 $valeurs['editable'] = $editable;
33
34 return $valeurs;
35 }
36
37 /**
38 * Identifier le formulaire en faisant abstraction des parametres qui
39 * ne representent pas l'objet edite.
40 */
41 function formulaires_editer_abomailman_identifier_dist($id_abomailman = 'new', $retour = '', $associer_objet = '', $config_fonc = 'auteurs_edit_config', $row = array(), $hidden = '')
42 {
43 return serialize(array(intval($id_abomailman), $associer_objet));
44 }
45
46 function formulaires_editer_abomailman_verifier_dist($id_abomailman = 'new', $retour = '', $config_fonc = '', $row = array(), $hidden = '')
47 {
48
49 //initialise le tableau des erreurs
50 $erreurs = formulaires_editer_objet_verifier('abomailman', $id_abomailman, array('titre', 'email'));
51 spip_log($erreurs, 'test');
52 // Faire une fonction de verif sur le mail et le titre pour validite
53 $desactive = _request('desactive');
54
55 // Si on fait une suppression, on ne vérifie pas le reste
56 if ($desactive != '2') {
57 if (count($erreurs) < 1) {
58 include_spip('inc/filtres'); # pour email_valide()
59 if (!email_valide(_request('email'))) {
60 $erreurs['email'] = _T('abomailmans:email_valide');
61 }
62 }
63 }
64
65 //message d'erreur genéralisé
66 if (count($erreurs) > 0) {
67 $erreurs['message_erreur'] .= _T('abomailmans:verifier_formulaire');
68 }
69
70 return $erreurs; // si c'est vide, traiter sera appele, sinon le formulaire sera resoumis
71 }
72
73 function formulaires_editer_abomailman_traiter_dist($id_abomailman = 'new', $retour = '', $config_fonc = '', $row = array(), $hidden = '')
74 {
75 $res = formulaires_editer_objet_traiter('abomailman', $id_abomailman, 0, 0, $retour, $config_fonc, $row, $hidden);
76
77 $message = array();
78 $valeurs['envoi_liste_parametres'] = _request('envoi_liste_parametres');
79
80 $datas = array();
81
82 // Récupération des données
83 $datas['titre'] = _request('titre');
84 $datas['descriptif'] = _request('descriptif');
85 if (_request('abo_type') && in_array(_request('abo_type'), array('news', 'ml'))) {
86 $datas['abo_type'] = _request('abo_type');
87 }
88 $datas['email'] = _request('email');
89 $datas['email_subscribe'] = _request('email_subscribe');
90 $datas['email_unsubscribe'] = _request('email_unsubscribe');
91 $datas['email_sympa'] = _request('email_sympa');
92 $datas['desactive'] = _request('desactive');
93 $datas['modele_defaut'] = str_replace('\'', '', _request('template')).''.$valeurs['envoi_liste_parametres'];
94 $datas['periodicite'] = _request('periodicite');
95 $datas['lang'] = _request('langue');
96
97 // on récupère les données de la liste
98 if (intval($id_abomailman)) {
99 if ($datas['desactive'] == '2') {
100 sql_delete('spip_abomailmans', "id_abomailman = $id_abomailman");
101 $message['message_ok'] = _T('abomailmans:liste_supprimee', array('id' => $id_abomailman, 'titre' => $datas['titre']));
102 $message['editable'] = false;
103 } else {
104 sql_updateq('spip_abomailmans', $datas, "id_abomailman = $id_abomailman");
105 $message['message_ok'] = _T('abomailmans:liste_updatee', array('id' => $id_abomailman, 'titre' => $datas['titre']));
106 }
107 } else {
108 $message['message_ok'] = _T('abomailmans:liste_creee', array('id' => $id_abomailman, 'titre' => $datas['titre']));
109 $message['editable'] = false;
110 }
111
112 if (!$retour) {
113 $message['redirect'] = parametre_url(parametre_url(self(), 'id_abomailman', $res['id_abomailman']), 'abomailman', '');
114 } else {
115 // sinon on utilise la redirection donnee.
116 $message['redirect'] = parametre_url($retour, 'id_abomailman', $res['id_abomailman']);
117 }
118
119 return $message;
120 }