source: spip-zone/_plugins_/clevermail/2_0/balise/clevermail_validation.php @ 29701

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

vers une meilleure gestion des chaines de langues

File size: 4.8 KB
Line 
1<?php
2function balise_CLEVERMAIL_VALIDATION($p) {
3        return calculer_balise_dynamique($p, 'CLEVERMAIL_VALIDATION', array());
4}
5
6function balise_CLEVERMAIL_VALIDATION_dyn() {
7        if (isset($_GET['id']) && $_GET['id'] != '') {
8                if (sql_countsel("spip_cm_pending", "pnd_action_id=".sql_quote($_GET['id'])) == 1) {
9                $action = sql_fetsel("*", "spip_cm_pending", "pnd_action_id=".sql_quote($_GET['id']));
10      switch ($action['pnd_action']) {
11        case 'subscribe':
12          if (sql_countsel("spip_cm_lists_subscribers", "lst_id = ".intval($action['lst_id'])." AND sub_id = ".intval($action['sub_id'])) == 1) {
13            sql_updateq("spip_cm_lists_subscribers", array('lsr_mode' => $action['pnd_mode'], 'lsr_id' => $action['pnd_action_id']), "lst_id = ".$action['lst_id']." AND sub_id = ".$action['sub_id']);
14            $return = '<p>'._T('clevermail:deja_inscrit', array('lst_name' => $list['lst_name'])).'</p>';
15          } else {
16            $sub = sql_fetsel("*", "spip_cm_subscribers", "sub_id = ".intval($action['sub_id']));
17            $list = sql_fetsel("*", "spip_cm_lists", "lst_id = ".intval($action['lst_id']));
18               
19            sql_insertq("spip_cm_lists_subscribers", array('lst_id' => $action['lst_id'], 'sub_id' => $action['sub_id'], 'lsr_mode' => $action['pnd_mode'], 'lsr_id' => $action['pnd_action_id']));
20            $return = '<p>'._T('clevermail:inscription_validee', array('lst_name' => $list['lst_name'])).'</p>';
21
22            // E-mail d'alerte envoye au moderateur de la liste
23            $destinataire = $list['lst_moderator_email'];
24            $sujet = '['.addslashes($list['lst_name']).'] '._T('clevermail:mail_info_inscription_sujet', array('sub_email' => addslashes($sub['sub_email'])));
25            $corps = _T('clevermail:mail_info_inscription_corps', array('nom_site' => $GLOBALS['meta']['nom_site'], 'url_site' => $GLOBALS['meta']['adresse_site'], 'sub_email' => addslashes($sub['sub_email']), 'lst_name' => addslashes($list['lst_name'])));
26            $expediteur = sql_getfetsel("set_value", "spip_cm_settings", "set_name='CM_MAIL_FROM'");
27            $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
28            $envoyer_mail($destinataire, $sujet, $corps, $expediteur);
29          }
30          break;
31              case 'unsubscribe':
32          if (sql_countsel("spip_cm_lists_subscribers", "lst_id = ".intval($action['lst_id'])." AND sub_id = ".intval($action['sub_id'])) == 0) {
33            $return = '<p>'._T('clevermail:deja_desinscrit').'</p>';
34          } else {
35                // remove the subscription to the list
36            sql_delete("spip_cm_lists_subscribers", "lst_id = ".intval($action['lst_id'])." AND sub_id = ".intval($action['sub_id']));
37            // remove posts from this list already queued
38            sql_delete("spip_cm_posts_queued", "sub_id = ".intval($action['sub_id'])." AND pst_id IN (".implode(',', sql_fetsel("lst_id", "spip_cm_posts", "lst_id=".intval($action['lst_id']), "lst_id")).")");
39           
40            $return = '<p>'._T('clevermail:desinscription_validee').'</p>';
41
42            // E-mail d'alerte envoye au moderateur de la liste
43            $sub = sql_fetsel("*", "spip_cm_subscribers", "sub_id = ".intval($action['sub_id']));
44            $list = sql_fetsel("*", "spip_cm_lists", "lst_id = ".intval($action['lst_id']));
45            $destinataire = $list['lst_moderator_email'];
46            $sujet = '['.addslashes($list['lst_name']).'] Désinscription de '.addslashes($sub['sub_email']);
47            $corps = _T('clevermail:mail_info_desinscription_corps', array('nom_site' => $GLOBALS['meta']['nom_site'], 'url_site' => $GLOBALS['meta']['adresse_site'], 'sub_email' => addslashes($sub['sub_email']), 'lst_name' => addslashes($list['lst_name'])));
48            $expediteur = sql_getfetsel("set_value", "spip_cm_settings", "set_name='CM_MAIL_FROM'");
49            $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
50            $envoyer_mail($destinataire, $sujet, $corps, $expediteur);
51          }
52               
53                      $abonnement = sql_fetsel("sub_id, lst_id", "spip_cm_lists_subscribers", "lsr_id=".sql_quote($lsr_id));
54                      $abonne = sql_getfetsel("sub_email", "spip_cm_subscribers", "sub_id=".intval($abonnement['sub_id']));
55                      $liste = sql_getfetsel("lst_name", "spip_cm_lists", "lst_id=".intval($abonnement['lst_id']));
56                      if (sql_countsel("spip_cm_lists_subscribers", "sub_id=".intval($abonnement['sub_id'])) == 0) {
57                        // Plus aucun abonnement, on retire l'adresse complètement
58                        sql_delete("spip_cm_subscribers", "sub_id = ".intval($abonnement['sub_id']));
59                      }
60                      spip_log('Suppression du l\'abonnement de « '.$abonne.' » de la liste « '.$liste.' » (id='.$abonnement['lst_id'].')', 'clevermail');
61          break;
62      }
63      sql_delete("spip_cm_pending", "pnd_action_id=".sql_quote($_GET['id']));
64                } else {
65            $return = '<p>'._T('clevermail:deja_validee').'</p>';
66    }
67  }
68        return $return;
69}
70?>
Note: See TracBrowser for help on using the repository browser.