Changeset 59257 in spip-zone


Ignore:
Timestamp:
Mar 13, 2012, 12:52:30 PM (8 years ago)
Author:
abelass@…
Message:

Adaptation du formulaaire d'inscription de mailchimp lists à mailchimp lists plus

Location:
_plugins_/squirrels_love_chimps_lists_plus/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/squirrels_love_chimps_lists_plus/trunk/formulaires/editer_liste.html

    r59220 r59257  
     1
    12<div class="formulaire_spip  formulaire_#FORM">
    23        <form method="post" action="#ENV{action}">
  • _plugins_/squirrels_love_chimps_lists_plus/trunk/formulaires/editer_liste.php

    r59220 r59257  
    8080        $statut=_request('statut');
    8181       
    82         if($statut)$statut='prive';
     82        if(!$statut)$statut='prive';
    8383       
    8484        $valeurs = array(
  • _plugins_/squirrels_love_chimps_lists_plus/trunk/formulaires/squirrel_chimp_abonnement_liste_plus.html

    r59253 r59257  
    33#SET{listes,#CONFIG{squirrel_chimp/mailinglists}}
    44
    5 
    6 [(#GET{listes}|array_keys|serialize)]
    75<div class="formulaire_spip formulaire_#FORM">
    86        <BOUCLE_valide(CONDITION){si #GET{listes}}>     
     
    5957                                        <ul>                           
    6058               
    61                                         <BOUCLE_listes(LISTES){id_liste IN (#GET{listes}|array_keys)}
     59                                        <BOUCLE_listes(LISTES){id_liste IN (#GET{listes}|array_keys)} {statut=public}
    6260                                        <li><div class="choix">
    6361                                                        <input type="checkbox" class="checkbox" name="mailinglists[#ID_LISTE]" id="mailinglists_[(#GET{listes}|table_valeur{#ID_LISTE})]" value="[(#GET{listes}|table_valeur{#ID_LISTE})]"[(#GET{listes}|table_valeur{#ID_LISTE}|=={#ENV{mailinglists}|table_valeur{#ID_LISTE}})oui) checked="checked"]/>
  • _plugins_/squirrels_love_chimps_lists_plus/trunk/formulaires/squirrel_chimp_abonnement_liste_plus.php

    r59253 r59257  
    1111
    1212include_spip('squirrel_chimp_lists_fonctions');
     13
     14// Définit le fuseau horaire par défaut à utiliser, GMT est le fuseau utilisé par mailchimp.
     15date_default_timezone_set('GMT');
    1316
    1417
     
    4952                       
    5053        if(is_array($champs))$valeurs['_hidden'].='<input type="hidden" name="champs" value="'.implode(',',array_flip($champs)).'">';
     54        $valeurs['_hidden'].='<input type="hidden" name="email_type" value="html">';   
    5155        return $valeurs;
    5256}
     
    5963        $email2=_request('email2');
    6064        $listes=_request('mailinglists');
     65        $email_type=_request('email_type');
     66        $date=date('Y-m-d');
     67        $lang=_request('lang');
    6168       
    6269        // teste basique sur le mail, le reste c'est mailchimp qui s'en charge
     
    6875
    6976        // Les configurations
    70         $donnees_personnelles=explode(',',_request('champs'));
     77        $donnees_personnelles=lire_config('squirrel_chimp/mapping');
    7178        $apiKey = lire_config("squirrel_chimp/apiKey");
    7279        $optin = lire_config('squirrel_chimp/ml_opt_in')?false:true; //yes, send optin emails
     
    7481        // Composer l'array des donnes pour mailchimp
    7582        $donnees_auteur=array();
    76         foreach($donnees_personnelles AS $value){
    77                 $donnees_auteur[$value]=_request($value);
    78                 }
     83               
     84        $valeurs_mc=array();
     85       
     86        foreach($donnees_personnelles as $id_liste=>$donnees){
     87                foreach($donnees as $champs_spip=>$champ_mc){
     88                        $valeurs_mc[$champ_mc]=_request($champs_spip);
     89                        $valeurs_spip[$champs_spip]=$valeurs_mc[$champ_mc];
     90                        }
     91                }
     92       
    7993               
    8094        if ($apiKey){
    8195                # API mailchimp
    8296                include_spip('inc/1.3/MCAPI.class');
    83                
    84                 // Les Fonctions
    85                 include_spip('squirrel_chimp_lists_fonctions');
    86                
    87                
    88                 spip_log(__LINE__,'squirrel_chimp');
    89                 spip_log($apiKey,'squirrel_chimp');
    9097
    9198                // initialisation d'un objet mailchimp
     
    96103            }   
    97104
    98                
    99 
    100105                // Inscription dans mailchimp
    101                 if ($email AND $listes){
    102                         spip_log(__LINE__,'squirrel_chimp');
     106                if ($email AND is_array($listes)){
     107                       
     108                        $id_auteur=sql_getfetsel('id_auteur','spip_auteurs','email='.sql_quote($email));
     109
    103110                        // By default this sends a confirmation email - you will not see new members
    104111                        // until the link contained in it is clicked!
    105112                        // listSubscribe(string apikey, string id, string email_address, array merge_vars, string email_type, bool double_optin, bool update_existing, bool replace_interests, bool send_welcome)
    106113                       
    107                         foreach($listes AS $listId){
    108                                 $valeurs=inscription_liste_mc($valeurs,$api,$listId,$email,$donnees_auteur,$email_type,$optin,true);
     114                        foreach($listes AS $id_spip => $id_mailchimp){
     115                                $valeurs=inscription_liste_mc($valeurs,$api,$id_mailchimp,$email,$valeurs_mc,$email_type,$optin,true);
    109116                                $valeurs=$valeurs['data'];
     117                               
     118                                if(!$valeurs['message_erreur']){
     119                                                $statut=sql_getfetsel('statut','spip_auteurs_listes','id_liste='.sql_quote($id_spip).' AND id_auteur='.$id_auteur);
     120                                        if($id_auteur){
     121                                                if($statut=="a_valider")sql_updateq('spip_auteurs_listes',array('statut'=>'valide','maj'=>$date),'id_liste='.$id_spip.' AND id_auteur='.$id_auteur);
     122                                                elseif(!$statut){
     123                                                                                                       
     124                                                $valeurs=array(
     125                                                                'id_auteur'=>$id_auteur,
     126                                                                'id_liste'=>$id_spip,                                   
     127                                                                'statut'=>'valide',
     128                                                                'maj'=>$date,
     129                                                                'date_inscription'=>$date,
     130                                                                'date_syncro'=>$date,
     131                                                                'format'=>$email_type,                                                                                         
     132                                                                );     
     133                                                       
     134                                                       
     135                                                        sql_insertq('spip_auteurs_listes',$valeurs);
     136                                                }
     137                                                }
     138                                        else{
     139                                                $champs=donnees_sync_simple($id_liste,$valeurs_mc,'mc');
     140                                               
     141                                                $lang=$lang?$lang:lire_config('langue_site');
     142                                               
     143                                                $champs_additionnels=array(
     144                                                        'email'=>$email,
     145                                                        'statut'=>'6forum',
     146                                                        'maj'=>$date,
     147                                                        'date_syncro'=>$date,
     148                                                        'format'=>$email_type,
     149                                                        'lang'=>$lang,
     150                                                        );
     151               
     152                                                $champs_sync=$champs[1];
     153                                                if(!$champs_sync['nom']){
     154                                                        $explode=explode('@',$email);
     155                                                        $champs_sync['nom']=$explode[0];
     156                                                        }
     157                                                                                                                       
     158                                                //On actualise la bd
     159                                                $champs=array_merge($champs_sync,$champs_additionnels);
     160                                                $id_auteur=sql_insertq('spip_auteurs',$champs);
     161                                               
     162                                                $valeurs=array(
     163                                                                'id_auteur'=>$id_auteur,
     164                                                                'id_liste'=>$id_spip,                                   
     165                                                                'statut'=>'valide',
     166                                                                'maj'=>$date,
     167                                                                'date_inscription'=>$date,
     168                                                                'date_syncro'=>$date,
     169                                                                'format'=>$email_type,                                                                                         
     170                                                                );                                             
     171                                                sql_insertq('spip_auteurs_listes',$valeurs);
     172                                                $id_auteur='';                                                 
     173                                                }
     174                                        }
     175                               
     176                               
    110177                        }
    111178
     
    119186                        //erreur il faut configurer le plugin mailchimp
    120187                        $valeurs = array('message_erreur' => _T('mailchimp:config_erreur'));
    121                         spip_log("Admin"._T('scl:config_erreur'));
     188                        spip_log("Admin"._T('sclp:config_erreur'));
    122189                        return $valeurs;
    123190                }
     
    125192                        spip_log(__LINE__);
    126193                        // que le spiplog si on est juste un user
    127                         spip_log(_T('scl:config_erreur'));
     194                        spip_log(_T('sclp:config_erreur'));
    128195                        return $valeurs;
    129196                } // autoriser
  • _plugins_/squirrels_love_chimps_lists_plus/trunk/sclp_fonctions.php

    r59252 r59257  
    8686                        }
    8787                else{
    88                         $id_auteur=sql_getfetsel('id_auteur','spip_auteurs','email='.sql_quote($donnees['email']));
    89                         spip_log($id_auteur, 'sclp');
     88
    9089                        // l'auteur existe
    9190                        if($id_auteur){
    92                                 spip_log('update 1', 'sclp');
     91
    9392                                //On actualise si il a déjà été insscrit à la mailinglist
    9493                                $test=sql_getfetsel('maj','spip_auteurs_listes','id_liste='.$id_liste_spip.' AND id_auteur='.$id_auteur);
     
    108107                                }
    109108                        else{
    110                                 spip_log('2', 'sclp');
     109
    111110                                // On cherche les infos du membre mailchimp
    112111                                $member_info=membres_liste_info_mc($api,$id_liste_mc,$donnees['email']);
     
    115114                                $champs=donnees_sync_simple($id_liste,$member_info['data'],'mc');
    116115
    117                                 $champs=donnees_sync_simple($id_liste,$member_info['data'],'mc');
    118116                               
    119117                                $lang=$member_info['data'][0]['language']?$member_info['data'][0]['language']:lire_config('langue_site');
Note: See TracChangeset for help on using the changeset viewer.