source: spip-zone/_plugins_/spip-listes/spip-listes_1_9_3/exec/spiplistes_courriers_casier.php @ 45537

Last change on this file since 45537 was 45537, checked in by paladin@…, 9 years ago

rnommage noms des constantes de statuts de liste (suite remarque en forum pour listes privées non programmables. Ajout des constantes complémentaires à venir pour ces listes privées)

  • Property svn:eol-style set to LF
  • Property svn:keywords set to LastChangedBy LastChangedDate LastChangedRevision
File size: 12.0 KB
Line 
1<?php
2
3// exec/spiplistes_courriers_casier.php
4
5/******************************************************************************************/
6/* SPIP-listes est un système de gestion de listes d'information par email pour SPIP      */
7/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
8/*                                                                                        */
9/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
10/* de la Licence Publique Générale GNU publiée par la Free Software Foundation            */
11/* (version 2).                                                                           */
12/*                                                                                        */
13/* Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
14/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
15/* d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU  */
16/* pour plus de détails.                                                                  */
17/*                                                                                        */
18/* Vous devez avoir reçu une copie de la Licence Publique Générale GNU                    */
19/* en même temps que ce programme ; si ce n'est pas le cas, écrivez à la                  */
20/* Free Software Foundation,                                                              */
21/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.                   */
22/******************************************************************************************/
23
24// $LastChangedRevision: 45537 $
25// $LastChangedBy: paladin@quesaco.org $
26// $LastChangedDate: 2011-03-18 13:56:40 +0000 (Fri, 18 Mar 2011) $
27
28// _SPIPLISTES_EXEC_COURRIERS_LISTE
29
30if (!defined("_ECRIRE_INC_VERSION")) return;
31
32include_spip('inc/presentation');
33include_spip('inc/spiplistes_api_globales');
34include_spip('inc/spiplistes_api');
35include_spip('inc/spiplistes_api_courrier');
36include_spip('inc/plugin');
37include_spip('inc/spiplistes_lister_courriers_listes');
38include_spip('inc/spiplistes_api_abstract_sql');
39
40function spiplistes_afficher_pile_messages() {
41
42        $sql_select = "id_liste,titre,date,maj,periode,patron,statut";
43        $list = sql_select($sql_select, 'spip_listes', "message_auto='oui' AND date > 0");
44
45        if (sql_count($list) == 0) {
46                return (false); 
47        }
48       
49        $pile_result = ""
50                . debut_cadre_enfonce(_DIR_PLUGIN_SPIPLISTES_IMG_PACK.'stock_timer.gif', true, ''
51                        , _T('spiplistes:Messages_automatiques').spiplistes_plugin_aide(_SPIPLISTES_EXEC_AIDE, "casier_courriers"))
52                . "\n"
53                . "<table class='spiplistes-tab' width='100%'  border='0' cellspacing='1' cellpadding='0'>\n" 
54                . "<tr>\n"
55                . "<th>"._T('spiplistes:envoi_patron')."</th>\n"
56                . "<th>"._T('spiplistes:sur_liste')."</th>\n"
57                . "<th>"._T('spiplistes:prochain_envoi_prevu')."</th>\n"
58                . "</tr>\n"
59                ;
60
61        $couleur_ligne = 1;
62        while($row = sql_fetch($list)) {
63                foreach(explode(",", $sql_select) as $key) {
64                        $$key = $row[$key];
65                }
66       
67                $date_dernier = date(_T('spiplistes:format_date'), strtotime($maj)) ;
68                switch($statut) {
69                        case _SPIPLISTES_LIST_PUB_HEBDO:
70                        case _SPIPLISTES_LIST_PUB_WEEKLY:
71                                $periodicite = _T('spiplistes:Liste_hebdo');
72                                break;
73                        case _SPIPLISTES_LIST_PUB_MENSUEL:
74                        case _SPIPLISTES_LIST_PUB_MONTHLY:
75                                $periodicite = _T('spiplistes:Liste_mensuelle');
76                                break;
77                        case _SPIPLISTES_LIST_PUB_YEARLY:
78                                $periodicite = _T('spiplistes:Liste_annuelle');
79                                break;
80                        case _SPIPLISTES_LIST_PUB_DAILY:
81                                if($periode) {
82                                        $periodicite = _T('spiplistes:Tous_les_s'
83                                        , array('s' => spiplistes_singulier_pluriel_str_get($periode, _T('spiplistes:jour'), _T('spiplistes:jours')))
84                                        );
85                                } else {
86                                        $periodicite = _T('spiplistes:Listes_autre');
87                                }
88                                break;
89                        default:
90                                $periodicite = _T('spiplistes:envoi_manuel');
91                }
92       
93                $ii = 0;
94                $pile_result .= ""
95                        . "<tr " . ((($couleur_ligne++) % 2) ? "class='row-even'" : "") . ">\n"
96                        . "<td><a href='" . generer_url_public('patron_switch',"patron=$patron&date=$date_dernier")."'>$patron</a>"
97                        . "<br />$periodicite</td>\n"
98                        . "<td><a href='" . generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_GERER, "id_liste=$id_liste") . "'>$titre</a>"
99                        . "<br />".spiplistes_nb_abonnes_liste_str_get($id_liste)."."
100                        . "</td>"
101                        . "<td>"
102                        . spiplistes_affdate ($date)
103                        . "</td></tr>\n"
104                        ;
105        } // end while
106       
107        $pile_result .= ""
108                . "</table>\n"
109                . fin_cadre_enfonce(true)
110                ;
111        return ($pile_result);
112       
113} // end spiplistes_afficher_pile_messages()
114
115
116function exec_spiplistes_courriers_casier () {
117       
118        include_spip ('inc/acces');
119        include_spip ('inc/filtres');
120        include_spip ('inc/config');
121        include_spip ('inc/barre');
122       
123        include_spip ('inc/mots');
124        include_spip ('inc/documents');
125       
126        include_spip('inc/spiplistes_api_globales');
127        include_spip('inc/spiplistes_api');
128        include_spip('inc/spiplistes_api_presentation');
129        include_spip('inc/spiplistes_naviguer_paniers');
130
131        global $connect_statut
132                , $connect_toutes_rubriques
133                , $connect_id_auteur
134                , $supp_dest
135                ;
136
137        ///////////////////////////
138        // initialise les variables postées par formulaire (formulaire gerer)
139        foreach(array(
140                'btn_confirmer_envoi', 'id_courrier', 'id_liste', 'id_auteur_test', 'btn_annuler_envoi'
141                , 'statut'
142                , 'btn_supprimer_courrier'
143                , 'btn_arreter_envoi' // si valide, contient id du courrier
144                ) as $key) {
145                $$key = _request($key);
146        }
147        foreach(array('id_courrier', 'id_liste', 'id_auteur_test'
148                , 'btn_supprimer_courrier', 'btn_arreter_envoi'
149                ) as $key) {
150                $$key = intval($$key);
151        }
152
153        $flag_admin = ($connect_statut == "0minirezo") && $connect_toutes_rubriques;
154        $flag_moderateur = count($listes_moderees = spiplistes_mod_listes_id_auteur($connect_id_auteur));
155        $flag_createur = ($id_courrier && ($connect_id_auteur == spiplistes_courrier_id_auteur_get($id_courrier)));
156
157        $flag_modifiable = ($flag_admin || $flag_moderateur || $flag_createur);
158
159        if($flag_modifiable) {
160
161                // annuler le destinataire d'un courrier (retour de courrier_gerer)
162                // repasse le courrier en mode 'redac'
163                if($btn_annuler_envoi) {
164                        spiplistes_courrier_modifier(
165                                $id_courrier
166                                , array(
167                                        'email_test' => ''
168                                        , 'id_liste' => 0
169                                        , 'total_abonnes' => 0
170                                        , 'statut' => _SPIPLISTES_COURRIER_STATUT_REDAC
171                                )                                               
172                        );
173                }
174
175                // confirmer l'envoi d'un courrier
176                if($btn_confirmer_envoi) {
177                        // passe le courrier directement a la meleuse
178                        if($id_liste >= 0) {
179                                // destinataire(s) = abonnés à une liste
180                                // si id_liste == 0, destinataire = adresse email de test
181                                spiplistes_courrier_supprimer_queue_envois('id_courrier', $id_courrier);
182                                spiplistes_courrier_remplir_queue_envois($id_courrier, $id_liste, $id_auteur_test);
183                                if($id_liste > 0) {
184spiplistes_debug_log("SEND id_courrier #$id_courrier ON id_liste #$id_liste BY id_auteur #$connect_id_auteur");
185                                } else {
186spiplistes_debug_log("SEND id_courrier #$id_courrier TO #$id_auteur_test TEST BY id_auteur #$connect_id_auteur");
187                                }
188                        }
189                        spiplistes_courrier_statut_modifier($id_courrier, _SPIPLISTES_COURRIER_STATUT_ENCOURS);
190                }
191       
192                // supprimer un courrier des cases
193                if($btn_supprimer_courrier) {
194                        sql_delete("spip_courriers", "id_courrier=".sql_quote($btn_supprimer_courrier)." LIMIT 1");
195                        spiplistes_courrier_supprimer_queue_envois('id_courrier', $btn_supprimer_courrier);
196                }
197               
198                // arreter un courrier en cours d'envoi
199                if($btn_arreter_envoi) {
200                        spiplistes_courrier_modifier(
201                                $btn_arreter_envoi 
202                                , array(
203                                        'statut' => _SPIPLISTES_COURRIER_STATUT_STOPE
204                                        , 'date_fin_envoi' => "NOW()"
205                                )
206                        );
207                        spiplistes_courrier_supprimer_queue_envois('id_courrier', $btn_arreter_envoi);
208                }
209               
210        } // end if $flag_modifiable
211
212////////////////////////////////////
213// PAGE CONTENU
214////////////////////////////////////
215
216        $titre_page = _T('spiplistes:casier_a_courriers');
217        // Permet entre autres d'ajouter les classes a' la page : <body class='$rubrique $sous_rubrique'>
218        $rubrique = _SPIPLISTES_PREFIX;
219        $sous_rubrique = "courriers_casier";
220
221        $commencer_page = charger_fonction('commencer_page', 'inc');
222        echo($commencer_page(_T('spiplistes:spiplistes') . " - " . $titre_page, $rubrique, $sous_rubrique));
223       
224        // la gestion des courriers est réservée aux admins
225        if($connect_statut != "0minirezo") {
226                die (spiplistes_terminer_page_non_autorisee() . fin_page());
227        }
228
229        $page_result = ""
230                . "<br /><br /><br />\n"
231                . spiplistes_gros_titre($titre_page, '', true)
232                . barre_onglets($rubrique, $sous_rubrique)
233                . debut_gauche($rubrique, true)
234                . spiplistes_naviguer_paniers_courriers(_T('spiplistes:aller_au_panier_'), true)
235                . pipeline('affiche_gauche', array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
236                //. creer_colonne_droite($rubrique, true)  // spiplistes_boite_raccourcis() s'en occupe
237                . spiplistes_boite_raccourcis(true)
238                . spiplistes_boite_autocron()
239                . spiplistes_boite_info_spiplistes(true)
240                . pipeline('affiche_droite', array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
241                . debut_droite($rubrique, true)
242                ;
243                       
244        $icone = _DIR_PLUGIN_SPIPLISTES_IMG_PACK.'courriers_listes-24.png';
245       
246        $_skip_statut = "Sauter une table pour afficher chronos";
247
248        // Début de liste
249        $listes_statuts = array(
250                _SPIPLISTES_COURRIER_STATUT_ENCOURS, _SPIPLISTES_COURRIER_STATUT_REDAC
251                , _SPIPLISTES_COURRIER_STATUT_READY
252                , $_skip_statut
253                , _SPIPLISTES_COURRIER_STATUT_AUTO, _SPIPLISTES_COURRIER_STATUT_PUBLIE
254                , _SPIPLISTES_COURRIER_STATUT_VIDE, _SPIPLISTES_COURRIER_STATUT_IGNORE
255                , _SPIPLISTES_COURRIER_STATUT_STOPE, _SPIPLISTES_COURRIER_STATUT_ERREUR
256                );
257        $mes_statuts = ($statut && in_array($statut, $listes_statuts)) ? array($statut) : $listes_statuts;
258        foreach($mes_statuts as $statut) {
259
260                if($statut == $_skip_statut) {
261                        // liste des courriers programmés (des listes)
262                        $page_result .= ""
263                                . spiplistes_afficher_pile_messages()
264                                . "<br />"
265                                ;
266                }
267                else {
268                        $page_result .= ""
269                                . spiplistes_lister_courriers_listes(
270                                        spiplistes_items_get_item("tab_t", $statut)
271                                                .       (
272                                                        ($desc = spiplistes_items_get_item("desc", $statut))
273                                                        ? "<br /><span style='font-weight:normal;'>$desc</span>"
274                                                        : ""
275                                                        )
276                                        , spiplistes_items_get_item("icon", $statut)
277                                        , 'courriers'
278                                        , $statut
279                                        , false
280                                        , 'position'
281                                        , _SPIPLISTES_EXEC_COURRIER_GERER
282                                )
283                                ;
284                }
285        }
286
287        echo($page_result);
288       
289        echo pipeline('affiche_milieu',array('args'=>array('exec'=>$sous_rubrique),'data'=>''))
290                , spiplistes_html_signature(_SPIPLISTES_PREFIX)
291                , fin_gauche(), fin_page();
292
293} // exec_spip_listes()
294
295/******************************************************************************************/
296/* SPIP-listes est un système de gestion de listes d'information par email pour SPIP      */
297/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
298/*                                                                                        */
299/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
300/* de la Licence Publique Générale GNU publiée par la Free Software Foundation            */
301/* (version 2).                                                                           */
302/*                                                                                        */
303/* Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
304/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
305/* d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU  */
306/* pour plus de détails.                                                                  */
307/*                                                                                        */
308/* Vous devez avoir reçu une copie de la Licence Publique Générale GNU                    */
309/* en même temps que ce programme ; si ce n'est pas le cas, écrivez à la                  */
310/* Free Software Foundation,                                                              */
311/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.                   */
312/******************************************************************************************/
313?>
Note: See TracBrowser for help on using the repository browser.