Changeset 67897 in spip-zone


Ignore:
Timestamp:
Nov 23, 2012, 10:47:22 AM (7 years ago)
Author:
cedric@…
Message:

import automatique depuis clevermail à l'installation (mais non testé, a valider sur une base test)

Location:
_plugins_/mailsubscribers/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/mailsubscribers/trunk/mailsubscribers_administrations.php

    r67896 r67897  
    2121                array('mailsubscribers_import_from_mesabonnes'),
    2222                array('mailsubscribers_import_from_spiplettres'),
     23                array('mailsubscribers_import_from_clevermail'),
    2324        );
    2425
     
    179180
    180181
     182function mailsubscribers_import_from_clevermail(){
     183        $trouver_table = charger_fonction("trouver_table","base");
     184        if ($desc = $trouver_table('spip_cm_subscribers')
     185          AND $trouver_table('spip_cm_lists_subscribers')
     186          AND $trouver_table('spip_cm_lists')
     187          ){
     188
     189                include_spip("inc/mailsubscribers");
     190
     191                // reperer les listes
     192                $rows = sql_allfetsel("lst_id,lst_name","spip_cm_lists");
     193                $listes = array();
     194                foreach ($rows as $row){
     195                        $listes[$row['lst_id']] = mailsubscribers_normaliser_nom_liste($row['lst_id']."-".strtolower($row['titre']));
     196                }
     197
     198
     199                include_spip("action/editer_objet");
     200                sql_alter("TABLE spip_cm_subscribers ADD imported tinyint NOT NULL DEFAULT 0");
     201                $res = sql_select('sub_id,sub_email AS email','spip_cm_subscribers',"imported=0");
     202                while ($row = sql_fetch($res)){
     203                        $email = $row['email'];
     204                        $set = array();
     205                        $set['statut'] = 'valide';
     206
     207                        $ll = sql_allfetsel("lst_id","spip_cm_lists_subscribers","sub_id=".intval($row['sub_id']));
     208                        if (count($ll)){
     209                                $set['listes'] = array();
     210                                while ($l = array_shift($ll))
     211                                        $set['listes'][] = $listes[$l['lst_id']];
     212                                $set['listes'] = implode(',',$set['listes']);
     213                        }
     214                        else {
     215                                // un abonnement suspendu est passe en md5(email)@example.com
     216                                if (strpos($email,'@example.com')!==false)
     217                                        $set['statut'] = 'refuse';
     218                                else
     219                                        $set['statut'] = 'prepa';
     220                        }
     221                        mailsubscriber_import_one($email,$set);
     222                        sql_updateq("spip_cm_subscribers",array('imported'=>1),"sub_id=".intval($row['sub_id']));
     223                        spip_log("import from clevermail $email ".var_export($set,true),"mailsubscribers");
     224
     225                        // timeout ? on reviendra
     226                        if (time() >= _TIME_OUT)
     227                                return;
     228                }
     229                sql_alter("TABLE spip_cm_subscribers DROP imported");
     230        }
     231}
     232
    181233
    182234function mailsubscriber_import_one($email,$set){
  • _plugins_/mailsubscribers/trunk/paquet.xml

    r67896 r67897  
    22        prefix="mailsubscribers"
    33        categorie="communication"
    4         version="0.6.3"
     4        version="0.6.4"
    55        etat="dev"
    66        compatibilite="[3.0.0;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.