source: spip-zone/_plugins_/alertes/trunk/formulaires/alertes_email.php @ 101339

Last change on this file since 101339 was 101339, checked in by teddy.spip@…, 3 years ago

PSR SPIP.

File size: 3.9 KB
Line 
1<?php
2/*
3 * Plugin Alertes
4 * Distribué sous licence GPL
5 *
6 * Formulaire d'enregistrement des abonnements.
7 */
8if (!defined("_ECRIRE_INC_VERSION")) {
9        return;
10}
11
12function formulaires_alertes_email_charger_dist($id_auteur) {
13        $valeurs = array();
14        $id_auteur = intval($id_auteur);
15        //Récuperation de la configuration de base
16        $a = @unserialize($GLOBALS['meta']['config_alertes']);
17        //A-t-on Accès restreint ?
18        $ar = filtre_info_plugin_dist('accesrestreint', 'est_actif');
19        if ($ar == true) {
20                $zones_restreintes = array();
21                if ($sql_zones = sql_select("id_zone", "spip_zones_liens",
22                        "objet = 'auteur' AND id_objet = " . intval($id_auteur))
23                ) {
24                        while ($zone = sql_fetch($sql_zones)) {
25                                if ($sql_z = sql_select("id_objet", "spip_zones_liens",
26                                        "objet = 'rubrique' AND id_zone = " . intval($zone['id_zone']))
27                                ) {
28                                        while ($z = sql_fetch($sql_z)) {
29                                                $zones_restreintes[] = $z['id_objet'];
30                                        }
31                                }
32                        }
33                }
34                $valeurs['rubriques_restreintes'] = $zones_restreintes;
35        }
36        if (is_array($a)) {
37                //Récuperation des abonnements au mots
38                if ($a['groupes']) {
39                        $mots = array();
40                        $sql_mots = sql_select("id_objet", "spip_alertes", "objet = 'mot' AND id_auteur = " . $id_auteur);
41                        while ($mot = sql_fetch($sql_mots)) {
42                                $mots[] = $mot['id_objet'];
43                        }
44                        $valeurs['mots'] = $mots ? $mots : '';
45                }
46                //Récuperation des abonnements aux rubriques
47                if ($a['rubriques']) {
48                        $rubriques = array();
49                        $sql_rubriques = sql_select("id_objet", "spip_alertes", "objet = 'rubrique' AND id_auteur = " . $id_auteur);
50                        while ($rub = sql_fetch($sql_rubriques)) {
51                                $rubriques[] = $rub['id_objet'];
52                        }
53                        $valeurs['rubriques'] = $rubriques ? $rubriques : '';
54                }
55                //Récuperation des abonnements aux secteurs
56                if ($a['secteurs']) {
57                        $secteurs = array();
58                        $sql_secteurs = sql_select("id_objet", "spip_alertes", "objet = 'secteur' AND id_auteur = " . $id_auteur);
59                        while ($sec = sql_fetch($sql_secteurs)) {
60                                $secteurs[] = $sec['id_objet'];
61                        }
62                        $valeurs['secteurs'] = $secteurs ? $secteurs : '';
63                }
64                //Récuperation des abonnements aux auteurs
65                if ($a['auteurs']) {
66                        $auteurs = array();
67                        $sql_auteurs = sql_select("id_objet", "spip_alertes", "objet = 'auteur' AND id_auteur = " . $id_auteur);
68                        while ($aut = sql_fetch($sql_auteurs)) {
69                                $auteurs[] = $aut['id_objet'];
70                        }
71                        $valeurs['auteurs'] = $auteurs ? $auteurs : '';
72                }
73        }
74
75        return $valeurs;
76}
77
78function formulaires_alertes_email_traiter_dist($id_auteur) {
79        $a = @unserialize($GLOBALS['meta']['config_alertes']);
80        $now = date('Y-m-d h:i:s');
81        if (is_array($a)) {
82                //Supprimer les anciennes configuration d'abonnements. Tous d'un coup, brutal mais efficace et comme ça on n'a que des insert à faire.
83                sql_delete('spip_alertes', 'id_auteur = ' . intval($id_auteur));
84                //Mots
85                $mots = _request('mots');
86                foreach ($mots as $mot) {
87                        //Insertion des nouveaux mots abonnés
88                        $ins_mot = sql_insertq('spip_alertes',
89                                array('id_objet' => intval($mot), 'objet' => 'mot', 'id_auteur' => $id_auteur, 'maj' => $now));
90                }
91                //Rubriques
92                $rubriques = _request('rubriques');
93                foreach ($rubriques as $rubrique) {
94                        //Insertion des nouvelles rubriques abonnés
95                        $ins_rub = sql_insertq('spip_alertes', array(
96                                'id_objet' => intval($rubrique),
97                                'objet' => 'rubrique',
98                                'id_auteur' => $id_auteur,
99                                'maj' => $now,
100                        ));
101                }
102                //Secteurs
103                $secteurs = _request('secteurs');
104                foreach ($secteurs as $secteur) {
105                        //Insertion des nouveaux secteurs abonnés
106                        $ins_sec = sql_insertq('spip_alertes',
107                                array('id_objet' => intval($secteur), 'objet' => 'secteur', 'id_auteur' => $id_auteur, 'maj' => $now));
108                }
109                //Auteurs
110                $auteurs = _request('auteurs');
111                foreach ($auteurs as $auteur) {
112                        //Insertion des nouveaux auteurs abonnés
113                        $ins_aut = sql_insertq('spip_alertes',
114                                array('id_objet' => intval($auteur), 'objet' => 'auteur', 'id_auteur' => $id_auteur, 'maj' => $now));
115                }
116        }
117        $message = _T('alertes:your_alertes_message_ok');
118        $res = array('message_ok' => $message);
119
120        return $res;
121}
122
Note: See TracBrowser for help on using the repository browser.