source: trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/abonnes_tous.php @ 90

Last change on this file since 90 was 90, checked in by guille, 15 years ago

importacion de spip-listes-1_9_2

File size: 8.5 KB
Line 
1<?php
2
3/******************************************************************************************/
4/* SPIP-listes est un systï¿œe de gestion de listes d'information par email pour SPIP      */
5/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
6/*                                                                                        */
7/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
8/* de la Licence Publique Gᅵᅵale GNU publiï¿œ par la Free Software Foundation            */
9/* (version 2).                                                                           */
10/*                                                                                        */
11/* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE,       */
12/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
13/* d'adaptation dans un but spï¿œifique. Reportez-vous ï¿œla Licence Publique Gᅵᅵale GNU  */
14/* pour plus de dï¿œails.                                                                  */
15/*                                                                                        */
16/* Vous devez avoir reï¿œ une copie de la Licence Publique Gᅵᅵale GNU                    */
17/* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla                  */
18/* Free Software Foundation,                                                              */
19/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis.                   */
20/******************************************************************************************/
21
22if (!defined("_ECRIRE_INC_VERSION")) return;
23
24include_spip('inc/presentation');
25include_spip('inc/mots');
26include_spip('inc/affichage');
27
28
29function exec_abonnes_tous(){
30        global $connect_statut;
31        global $connect_toutes_rubriques;
32        global $connect_id_auteur;
33        $type = _request('type');
34        $new = _request('new');
35        $id_auteur = _request('id_auteur');
36       
37        $options = 'avancees' ;
38       
39        $nomsite=lire_meta("nom_site"); 
40        $urlsite=lire_meta("adresse_site"); 
41       
42        // Admin SPIP-Listes
43        echo debut_page(_T('spiplistes:spip_listes'), "redacteurs", "spiplistes");
44       
45        if ($connect_statut != "0minirezo" ) {
46                echo "<p><b>"._T('spiplistes:acces_a_la_page')."</b></p>";
47                echo fin_page();
48                exit;
49        }
50       
51        if (($connect_statut == "0minirezo") OR ($connect_id_auteur == $id_auteur))
52                spip_listes_onglets("messagerie", _T('spiplistes:spip_listes'));
53       
54        debut_gauche();
55        spip_listes_raccourcis();
56        creer_colonne_droite();
57        debut_droite("messagerie");
58       
59        //
60        // Recherche d'auteur
61        //
62       
63        spiplistes_cherche_auteur();
64       
65        //Compter tous les abonnes a des listes
66        $result_pile = spip_query(
67          'SELECT listes.statut, COUNT(abonnements.id_auteur)
68           FROM spip_listes AS listes LEFT JOIN spip_auteurs_listes AS abonnements USING (id_liste)
69           GROUP BY listes.statut');
70        $nb_abonnes = array();
71        while ($row = spip_fetch_array($result_pile, SPIP_NUM)) {
72                $nb_abonnes[$row[0]] = intval($row[1]);
73        }
74
75        //evaluer les formats de tous les auteurs + compter tous les auteurs
76        $result = spip_query('SELECT `spip_listes_format` , COUNT(`spip_listes_format`) FROM `spip_auteurs_elargis` GROUP BY `spip_listes_format`');
77        $nb_inscrits = 0;
78
79        //repartition des formats
80        $cmpt = array('texte'=>0, 'html'=>0, 'non'=>0);
81       
82        while ($row = spip_fetch_array($result, SPIP_NUM)) {
83                $nb_inscrits += $row[1];
84                $abo =$row[0];
85                if ($abo) {
86                        $cmpt[$abo] += $row[1];
87                }
88        }
89       
90        //Total des auteurs qui ont un format html ou texte
91        $total_abo = $cmpt['html'] + $cmpt['texte'] ;
92       
93       
94        //Total des auteurs qui ne sont pas abonnes a une liste
95        $abonnes = spip_query("select a.id_auteur, count(d.id_liste) from spip_auteurs a 
96              left join spip_auteurs_listes d on a.id_auteur = 
97                  d.id_auteur group by a.id_auteur having count(d.id_liste) = 0;"); 
98        $nb_abonnes_auc = spip_num_rows($abonnes);
99       
100        echo debut_cadre_relief('forum-interne-24.gif');
101
102        echo"<div>";
103        echo"<div style='float:right;width:150px'>";
104        echo "<b>"._T('spiplistes:repartition')."</b>  <br /><b>"._T('spiplistes:html')."</b> : {$cmpt['html']} <br /><b>"._T('spiplistes:texte')."</b> : {$cmpt['texte']} <br /><b>"._T('spiplistes:desabonnes')."</b> : {$cmpt['non']}";
105        echo"</div>";
106       
107        $total = $cmpt['html'] + $cmpt['texte'] + $cmpt['non']; // ?
108       
109        echo _T('spiplistes:nbre_abonnes'). $total_abo .
110          _T('spiplistes:abonnes_liste_pub') . $nb_abonnes['liste'] .
111          _T('spiplistes:abonnes_liste_int') . $nb_abonnes['inact'] .
112         "<br />". _T('spiplistes:abonne_aucune_liste') . " : ". ($nb_abonnes_auc - $cmpt['non']) . "</p>";
113       
114        echo"</div>";
115       
116        $result = spip_query("SELECT id_auteur FROM spip_auteurs WHERE statut!='5poubelle' AND statut!='nouveau' LIMIT 2");
117        if (spip_num_rows($result) > 1) {
118                echo "<form action='?exec=abonnes_tous' METHOD='post'>";
119                echo "<div align=center>\n";
120                echo "<input type='text' name='cherche_auteur' class='fondl' value='' size='20' />";
121                echo " <input type='submit' name='Chercher' value='"._T('bouton_chercher')."' class='fondo' />";
122                echo "</div></form>";
123        }
124       
125        echo fin_cadre_relief();
126       
127        echo "<p>";
128       
129        // auteur
130       
131        $retour = generer_url_ecrire("abonnes_tous");
132       
133        $tri = _request('tri') ? _request('tri') : 'nom';
134        $retour = parametre_url($retour,"tri",$tri);
135       
136        //
137        // Construire la requete
138        //
139       
140        $sql_visible="1=1"; 
141        $partri = " " . _T('info_par_tri', array('tri' => $tri));
142       
143        $sql_sel = '';
144       
145        // tri
146        switch ($tri) {
147                case 'nombre':
148                        $sql_order = ' ORDER BY compteur DESC, unom';
149                        $type_requete = 'nombre';
150                        $partri = " "._T('info_par_nombre_article');
151                        break;
152                case 'statut':
153                        $sql_order = ' ORDER BY statut, login = "", unom';
154                        $type_requete = 'auteur';
155                        break;
156                case 'nom':
157                        $sql_order = ' ORDER BY unom';
158                        $type_requete = 'auteur';
159                        break;
160                case 'email':
161                        $sql_order = ' ORDER BY LOWER(email)';
162                        $type_requete = 'auteur';
163                        break;
164                case 'multi':
165                default:
166                        $type_requete = 'auteur';
167                        $sql_sel = ", ".creer_objet_multi ("nom", $spip_lang);
168                        $sql_order = " ORDER BY multi";
169        }
170
171       
172        //
173        // La requete de base est tres sympa
174        //
175       
176        $query = "SELECT
177                aut.id_auteur AS id_auteur,
178                aut.statut AS statut,
179                aut.login AS login,
180                aut.nom AS nom,
181                aut.email AS email,
182                aut.url_site AS url_site,
183                aut.messagerie AS messagerie,
184                UPPER(aut.nom) AS unom,
185                count(lien.id_liste) as compteur
186                $sql_sel
187                FROM spip_auteurs as aut
188                LEFT JOIN spip_auteurs_listes AS lien ON aut.id_auteur=lien.id_auteur
189                LEFT JOIN spip_listes AS art ON (lien.id_liste = art.id_liste)
190                WHERE
191                $sql_visible
192                GROUP BY aut.id_auteur
193                $sql_order";
194
195        spiplistes_afficher_auteurs($query, generer_url_ecrire('abonnes_tous'));
196
197        // MODE STATUT FIN -------------------------------------------------------------
198       
199        echo "<p style='font-family: Arial, Verdana,sans-serif;font-size:10px;font-weight:bold'>".$GLOBALS['spiplistes_version']."<p>" ;
200        echo fin_gauche(), fin_page();
201}
202
203/******************************************************************************************/
204/* SPIP-listes est un systï¿œe de gestion de listes d'abonnï¿œ et d'envoi d'information     */
205/* par email  pour SPIP.                                                                  */
206/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
207/*                                                                                        */
208/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
209/* de la Licence Publique Gᅵᅵale GNU publiï¿œ par la Free Software Foundation            */
210/* (version 2).                                                                           */
211/*                                                                                        */
212/* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE,       */
213/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
214/* d'adaptation dans un but spï¿œifique. Reportez-vous ï¿œla Licence Publique Gᅵᅵale GNU  */
215/* pour plus de dï¿œails.                                                                  */
216/*                                                                                        */
217/* Vous devez avoir reï¿œ une copie de la Licence Publique Gᅵᅵale GNU                    */
218/* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla                  */
219/* Free Software Foundation,                                                              */
220/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis.                   */
221/******************************************************************************************/
222?>
Note: See TracBrowser for help on using the repository browser.