source: spip-zone/_plugins_/clevermail/2_0/formulaires/clevermail_list_edit.php @ 49988

Last change on this file since 49988 was 49988, checked in by nicolas@…, 10 years ago

un peu d'explications ne nuit pas, format texte maintenant optionnel

File size: 5.7 KB
Line 
1<?php
2function formulaires_clevermail_list_edit_charger_dist($lst_id = -1) {
3        if ($valeurs = sql_fetsel('*', 'spip_cm_lists', 'lst_id='.intval($lst_id))) {
4                $valeurs['lst_auto_week_days'] = explode(',', $valeurs['lst_auto_week_days']);
5        } else {
6    $cm_mail_admin = sql_getfetsel('set_value', 'spip_cm_settings', 'set_name="CM_MAIL_ADMIN"');
7                $valeurs = array(
8                        'lst_id' => -1,
9                        'lst_name' => '',
10                        'lst_comment' => '',
11                        'lst_moderation' => 'closed',
12                        'lst_moderator_email' => $cm_mail_admin,
13                        'lst_subscribe_subject' => _T('clevermail:confirmation_votre_inscription'),
14                        'lst_subscribe_text' => _T('clevermail:confirmation_votre_inscription_text'),
15                        'lst_subject' => '',
16                        'lst_unsubscribe_subject' => _T('clevermail:confirmation_votre_desinscription'),
17                        'lst_unsubscribe_text' => _T('clevermail:confirmation_votre_desinscription_text'),
18                        'lst_subject_tag' => 1,
19                        'lst_url_html' => 'clevermail_nouveautes_html',
20                        'lst_url_text' => 'clevermail_nouveautes_text',
21                  'lst_auto_mode' => 'none',
22                  'lst_auto_hour' => 8,
23      'lst_auto_week_days' => array(1),
24                  'lst_auto_month_day' => 1,
25                  'lst_auto_subscribers' => '',
26                  'lst_auto_subscribers_mode' => 0
27                );
28        }
29        return $valeurs;
30}
31
32function formulaires_clevermail_list_edit_verifier_dist($lst_id = -1) {
33        $erreurs = array();
34        foreach(array('lst_name', 'lst_moderator_email', 'lst_url_html') as $obligatoire) {
35                if (!_request($obligatoire)) {
36                        $erreurs[$obligatoire] = _T('clevermail:ce_champ_est_obligatoire');
37                }
38        }
39        $nb = sql_countsel("spip_cm_lists", "lst_id != ".intval(_request('lst_id'))." AND lst_name = ".sql_quote(_request('lst_name')));
40  if ($nb > 0) {
41        $erreurs['lst_name'] = _T('clevermail:lettre_meme_nom');
42  }
43        include_spip('inc/filtres');
44        if (_request('lst_moderator_email') && !email_valide(_request('lst_moderator_email'))) {
45                $erreurs['lst_moderator_email'] = _T('clevermail:cette_adresse_email_n_est_pas_valide');
46        }
47        if (_request('lst_auto_mode') && _request('lst_auto_mode') != 'none') {
48                if (in_array(_request('lst_auto_mode'), array('day', 'week', 'month'))) {
49                  if (_request('lst_auto_hour') && (intval(_request('lst_auto_hour')) < 0 || intval(_request('lst_auto_hour')) > 23)) {
50                    $erreurs['lst_auto_hour'] = _T('clevermail:auto_erreur_cette_heure_existe_pas');
51                  }
52                        switch(_request('lst_auto_mode')) {
53                                case 'day':
54                                        break;
55                          case 'week':
56          if (!_request('lst_auto_week_days') || count(_request('lst_auto_week_days')) == 0) {
57            $erreurs['lst_auto_week_days'] = _T('clevermail:auto_erreur_choisir_un_jour_minimum');
58          } elseif (min(_request('lst_auto_week_days')) < 0 || max(_request('lst_auto_week_days')) > 6) {
59            $erreurs['lst_auto_week_days'] = _T('clevermail:auto_erreur_ce_jour_semaine_existe_pas');
60          }
61                                        break;
62                                case 'month':
63                                  if (_request('lst_auto_month_day') && (intval(_request('lst_auto_month_day')) < 0 || intval(_request('lst_auto_month_day')) > 31)) {
64                                    $erreurs['lst_auto_month_day'] = _T('clevermail:auto_erreur_ce_jour_mois_existe_pas');
65                                  } elseif (intval(_request('lst_auto_month_day')) > 28) {
66                                    $erreurs['lst_auto_month_day'] = _T('clevermail:auto_erreur_ce_jour_mois_pas_possible');
67                                  }
68                                        break;
69                        }
70                } else {
71      $erreurs['lst_auto_mode'] = _T('clevermail:auto_erreur_ce_mode_automatisation_existe_pas');
72                }
73        }
74  if (_request('lst_auto_subscribers') != '') {
75        include_spip('inc/distant');
76    if ($adresses = recuperer_page(_request('lst_auto_subscribers'))) {
77            include_spip('inc/clevermail_abonnes');
78            if (!clevermail_verification_adresses_email($adresses)) {
79              $erreurs['lst_auto_subscribers'] = _T('clevermail:le_format_des_adresses_email_ne_semble_pas_bon');
80            }
81    } else {
82        $erreurs['lst_auto_subscribers'] = _T('clevermail:fichier_adresses_distant_impossible_telecharger');
83    }
84  }
85  if (count($erreurs)) {
86                $erreurs['message_erreur'] = _T('clevermail:veuillez_corriger_votre_saisie');
87        }
88        return $erreurs;
89}
90
91function formulaires_clevermail_list_edit_traiter_dist($lst_id = -1) {
92  $champs = array(
93    'lst_name' => _request('lst_name'),
94    'lst_comment' => _request('lst_comment'),
95    'lst_moderation' => _request('lst_moderation'),
96    'lst_moderator_email' => _request('lst_moderator_email'),
97    'lst_subscribe_subject' => _request('lst_subscribe_subject'),
98    'lst_subscribe_text' => _request('lst_subscribe_text'),
99    'lst_subject' => _request('lst_subject'),
100    'lst_unsubscribe_subject' => _request('lst_unsubscribe_subject'),
101    'lst_unsubscribe_text' => _request('lst_unsubscribe_text'),
102    'lst_subject_tag' => _request('lst_subject_tag'),
103    'lst_url_html' => _request('lst_url_html'),
104    'lst_url_text' => _request('lst_url_text'),
105    'lst_auto_mode' => _request('lst_auto_mode'),
106    'lst_auto_hour' => intval(_request('lst_auto_hour')),
107    'lst_auto_week_days' => implode(',', _request('lst_auto_week_days')),
108    'lst_auto_month_day' => intval(_request('lst_auto_month_day')),
109    'lst_auto_subscribers' => _request('lst_auto_subscribers'),
110    'lst_auto_subscribers_mode' => intval(_request('lst_auto_subscribers_mode'))
111  );
112
113  // Handle checkbox value
114  if (isset($list['lst_subject_tag']) && ($list['lst_subject_tag'] == 'on' || $list['lst_subject_tag'] == 1)) {
115    $champs['lst_subject_tag'] = 1;
116  }
117
118  if (_request('lst_id') == -1) {
119    sql_insertq('spip_cm_lists', $champs);
120    // TODO : log en chaîne de langue
121    spip_log('Nouvelle liste « '._request('lst_name').' »', 'clevermail');
122  } else {
123        sql_updateq('spip_cm_lists', $champs, "lst_id = ".intval(_request('lst_id')));
124        // TODO : log en chaîne de langue
125    spip_log('Modification de la liste « '._request('lst_name').' » (id = '._request('lst_id').')', 'clevermail');
126  }
127
128        return array('message_ok' => 'ok', 'redirect' => generer_url_ecrire('clevermail_lists'));
129}
130?>
Note: See TracBrowser for help on using the repository browser.