Changeset 107647 in spip-zone


Ignore:
Timestamp:
Nov 20, 2017, 1:48:26 PM (3 years ago)
Author:
erational@…
Message:

Permettre d'export des inscrits liste par liste

Location:
_plugins_/mailsubscribers/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/mailsubscribers/trunk/action/mailsubscribers_export.php

    r99117 r107647  
    22/**
    33 * Plugin mailsubscribers
    4  * (c) 2012 Cédric Morin
     4 * (c) 2017 Cédric Morin
    55 * Licence GNU/GPL v3
    66 */
    77
    8 if (!defined('_ECRIRE_INC_VERSION')) return;
     8if (!defined('_ECRIRE_INC_VERSION')) {
     9        return;
     10}
    911
    1012
     
    1214 * Exporter la base au format CSV
    1315 *
    14  * @param null|string $statut
     16 * @param null|string $arg
    1517 */
    16 function action_mailsubscribers_export_dist($statut = null) {
    17         if (is_null($statut)) {
     18function action_mailsubscribers_export_dist($arg = null) {
     19        if (is_null($arg)) {
    1820                $securiser_action = charger_fonction('securiser_action', 'inc');
    19                 $statut = $securiser_action();
     21                $arg = $securiser_action();
    2022        }
    2123
     
    2628        }
    2729
     30        $args = explode("-", $arg);
     31        $statut = $args[0];
     32        $id_liste = isset($args[1]) ? intval($args[1]) : false;
     33
    2834        $where = array();
    2935        // '' ou 'all' pour tout exporter (sauf poubelle)
    3036        if (in_array($statut, array('', 'all'))) {
    31                 $where[] = "statut<>" . sql_quote('poubelle');
     37                $where[] = "M.statut<>" . sql_quote('poubelle');
    3238        } else {
    33                 $where[] = "statut=" . sql_quote($statut);
     39                $where[] = "M.statut=" . sql_quote($statut);
    3440        }
    35 
    3641
    3742        $entetes = array(
     
    4449        );
    4550
    46         $titre = _T('mailsubscriber:titre_mailsubscribers') . "-" . $GLOBALS['meta']['nom_site'] . "-" . date('Y-m-d');
    4751        $exporter_csv = charger_fonction("exporter_csv", "inc");
    4852        $listes = sql_get_select('group_concat(L.identifiant)','spip_mailsubscriptions as S JOIN spip_mailsubscribinglists as L ON L.id_mailsubscribinglist=S.id_mailsubscribinglist','S.id_segment=0 AND S.id_mailsubscriber=M.id_mailsubscriber');
    49         $res = sql_select("M.email,M.nom,M.lang,M.date,M.statut,($listes) as listes", "spip_mailsubscribers AS M", $where);
     53        // si un id_liste est present, restreindre l'export à cette liste
     54        if ($id_liste) {
     55                $identifiant = sql_getfetsel('identifiant', 'spip_mailsubscribinglists', 'id_mailsubscribinglist        =' . intval($id_liste));
     56                $titre = _T('mailsubscriber:titre_mailsubscribers') . "-" . $GLOBALS['meta']['nom_site'] . "-" . $identifiant . "-" . date('Y-m-d');
     57                $where[] = "N.id_mailsubscribinglist=$id_liste";
     58                $res = sql_select(
     59                        "M.email,M.nom,M.lang,M.date,M.statut,($listes) as listes",
     60                        "spip_mailsubscribers AS M LEFT JOIN spip_mailsubscriptions as N ON M.id_mailsubscriber=N.id_mailsubscriber",
     61                        $where
     62                );
     63        } else {
     64        $titre = _T('mailsubscriber:titre_mailsubscribers') . "-" . $GLOBALS['meta']['nom_site'] . "-" . date('Y-m-d');
     65                $res = sql_select(
     66                        "M.email,M.nom,M.lang,M.date,M.statut,($listes) as listes",
     67                        "spip_mailsubscribers AS M",
     68                        $where
     69                );
     70        }
    5071        $exporter_csv($titre, $res, ',', $entetes);
    5172
  • _plugins_/mailsubscribers/trunk/paquet.xml

    r107224 r107647  
    22        prefix="mailsubscribers"
    33        categorie="communication"
    4         version="2.5.3"
     4        version="2.5.4"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
  • _plugins_/mailsubscribers/trunk/prive/squelettes/navigation/mailsubscribers.html

    r100927 r107647  
    77                <li class="item[(#ENV{id_mailsubscribinglist}|=={#ID_MAILSUBSCRIBINGLIST}|oui)on]">[(#SELF|parametre_url{s,''}|parametre_url{id_mailsubscribinglist,#ID_MAILSUBSCRIBINGLIST}|lien_ou_expose{#TITRE,#ENV{id_mailsubscribinglist}|=={#ID_MAILSUBSCRIBINGLIST}})]
    88                ([(#IDENTIFIANT|mailsubscribers_compte_inscrits)])
     9                        [(#ENV{id_mailsubscribinglist}|=={#ID_MAILSUBSCRIBINGLIST}|oui)
     10                                [(#PLUGIN{spip_bonux}|oui)
     11                                        [(#URL_ACTION_AUTEUR{mailsubscribers_export,valide-#ID_MAILSUBSCRIBINGLIST}|icone_horizontale{<:mailsubscriber:titre_export_mailsubscribers:>,mailsubscriber-24,export})]
     12                                ]
     13                        ]
    914                </li>
    1015        </BOUCLE_listes>
Note: See TracChangeset for help on using the changeset viewer.