Changeset 59313 in spip-zone


Ignore:
Timestamp:
Mar 14, 2012, 9:58:23 AM (8 years ago)
Author:
abelass@…
Message:
  • surcharger le traitement fait par squirrel_chimps_lists lors de modification d'un profil auteur
  • enlever l'option d'abonnement à mailionglists lors de la création d'un auteur -> ne fait pas de sens, l'inscription se fait via le formulaire prévu
Location:
_plugins_/squirrels_love_chimps_lists_plus
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/squirrels_love_chimps_lists_plus/branches/0.1/formulaires/auteur_listes.php

    r59252 r59313  
    4242               
    4343         $status=array();
    44          
     44       
    4545
    4646         foreach($listes_accordes AS $id_liste_spip=>$id_liste_mc){
    47                  
    48 
    49                  //echo $id_liste_mc."\n\n";
    50                  //echo date('i:s')."\n\n";
     47
    5148                $timestamp='';
    5249                 /*Faire d'abord un seul appel à Mc pour afficher plus raidement le formulaire
    5350                  * On en retire les informations sur les statut des listes
    5451                  */
    55                  if(!$member_info){
    56                          $member_info=membres_liste_info_mc($api,$id_liste_mc,$email);
     52               
     53                 if($id_liste_mc)$member_info=membres_liste_info_mc($api,$id_liste_mc,$email);
    5754                         $status[$id_liste_mc]=$member_info['data'][0]['status'];
    5855                         $timestamp=$member_info['data'][0]['timestamp'];
    5956                         if(is_array($member_info['data'][0]['lists']))$lists_members=array_merge($status,$member_info['data'][0]['lists']);
    6057                         else $lists_members=$status;
    61                         //echo serialize($lists_members);
    62                         }
    63                  //echo date('i:s')."\n\n";                     
    64                  //echo 'actualiser';
     58                       
     59 
    6560                 // Si le statut mc ne correpond pas au statut spip on syncronise
    6661                $statut_spip=$info_liste_spip[$id_liste_spip]['statut']?$info_liste_spip[$id_liste_spip]['statut']:'a_valider';
    67                 //echo $lists_members[$id_liste_mc];
     62
    6863                if($lists_members[$id_liste_mc]){
    6964                       
     
    7772       
    7873                                         if($timestamp=$member_info['data'][0]['timestamp']>$info_liste_spip[$id_liste_spip]['maj']){
    79                                         //echo '1';                     
     74               
    8075                                                 if($status_mc=$member_info['data'][0]['status']=='subscribed'){
    81                                                          //echo '1.1';
    82                                                          //echo '"'.$id_liste_spip.'-'.$id_liste_mc.'"';
     76
    8377                                                                $test=sql_updateq('spip_auteurs_listes',array('statut'=>'valide','maj'=>$timestamp),'id_auteur='.$id_auteur.' AND id_liste='.$id_liste_spip);
    8478                                                                if (!$teste) sql_insertq('spip_auteurs_listes',array('statut'=>'valide','maj'=>$timestamp,'id_auteur'=>$id_auteur,'id_liste'=>$id_liste_spip));
    8579                                                         }
    8680                                                else{
    87                                                         // echo '1.2'; 
    8881                                                         sql_updateq('spip_auteurs_listes',array('statut'=>'a_valider','maj'=>$timestamp),'id_auteur='.$id_auteur.' AND id_liste='.$id_liste_spip);                             
    8982                                                        }
     
    9184                                                 }
    9285                                        elseif($timestamp=$member_info['data'][0]['timestamp']<$info_liste_spip[$id_liste_spip]['maj']){
    93                                                 //echo '2';     
    94                                                 //echo serialize($info_liste_spip[$id_liste_spip]);     
     86
    9587                                                        // compilation des informations à envoyer à MailChimp
    9688                                                        $auteur=donnees_sync_simple($id_liste_spip,$info_liste_spip[$id_liste_spip]);
    97 
     89                                                       
     90                                                        spip_log($donnees_auteur,'sclp');
    9891                       
    9992                                                        $auteur=$auteur[1];
     
    10396                                                }
    10497                                        elseif($member_info['data'][0]['error']=='The email address passed does not exist on this list'){
    105                                                 //echo '3';
     98
    10699                                                if($info_liste_spip[$id_liste_spip]['statut']=='valide'){
    107                                                         // echo '3.1'; 
     100
    108101                                                        // compilation des informations à envoyer à MailChimp
    109102                                               
     
    123116                         // l'abonnée spip n'existe pas sur mc on désincrit
    124117                         elseif(!$lists_members[$id_liste_mc]){
    125                                  //echo '4';
    126                                  sql_delete('spip_auteurs_listes','id_auteur='.$id_auteur.' AND id_liste='.$id_liste_spip);                             
     118
     119                        sql_delete('spip_auteurs_listes','id_auteur='.$id_auteur.' AND id_liste='.$id_liste_spip);                             
    127120                                }       
    128121                                 
     
    228221
    229222                                        if($id_mailchimp AND $listes_accordes[$id_liste]){
    230                                                 $vals=desinscription_liste_mc('',$api,$listes_accordes[$id_liste],$id_mailchimp);
     223                                                if($listes_accordes[$id_liste])$vals=desinscription_liste_mc('',$api,$listes_accordes[$id_liste],$id_mailchimp);
    231224                                                $message_ok.='<li>'._T('sclp:liste').' - '.$id_liste.': '. $vals['data']['message_ok'].'</li>';
    232225                                                }
     
    252245
    253246                                $statut=$auteur['statut'];
    254                                 $vals=inscription_liste_mc($valeurs,$api,$liste,$email,$auteur,$format,$optin,true);
     247                                if($liste)$vals=inscription_liste_mc($valeurs,$api,$liste,$email,$auteur,$format,$optin,true);
    255248                               
    256249                                if($vals['data']['message_erreur']){
  • _plugins_/squirrels_love_chimps_lists_plus/branches/0.1/formulaires/inc-squirrel_chimps_lists_config-sclp.html

    r59220 r59313  
    6161                <li class="squirrel_chimp_mailinglists[ (#ENV**{erreurs}|table_valeur{mailinglist_actualiser}|oui)erreur]">
    6262                        <label><:scl:quand_actualiser_mailinglists:></label>
    63                         <div class="choix">
    64                                 [
    65                                 <span class='erreur'>(#ENV**{erreurs}|table_valeur{ml_act_ajout})</span>
    66                                 ]
    67                                 <input type="checkbox" class="checkbox" name="ml_act_ajout" id="ml_act_ajout" value='on' [(#ENV{ml_act_ajout}|=={on}) checked="ckecked"] />
    68                                 <label for="ml_act_ajout"><:scl:actualiser_mailinglists_ajout:></label>
    69                         </div>
    7063               
    7164                        <div class="choix optin">
  • _plugins_/squirrels_love_chimps_lists_plus/branches/0.1/plugin.xml

    r59261 r59313  
    33        <auteur>[Spade->http://blog.spade.be/] et [Rainer M&#252;ller->http://www.mychacra.net]</auteur>
    44        <licence>GNU/GLP</licence>
    5         <version>0.2.0</version>
     5        <version>0.2.1</version>
    66        <version_base>0.1.13</version_base>     
    77        <licence>MIT</licence>
     
    1717        <necessite id="SPIP" version="[2.0.14;2.1.99]" />
    1818        <necessite id="squirrel_chimp" version="[1.2.0;]" />
    19         <necessite id="squirrel_chimp_lists" version="[1.2.0;]" />
     19        <necessite id="squirrel_chimp_lists" version="[1.3.0;]" />
    2020        <necessite id="spip_bonux" version="[2.2.17;]" />
    2121        <install>base/installation.php</install>       
  • _plugins_/squirrels_love_chimps_lists_plus/branches/0.1/sclp_fonctions.php

    r59261 r59313  
    265265       
    266266}
     267
     268function inc_editer_auteur_traiter_listes($flux){               
     269                // necessaire pour utiliser les autorisations
     270                include_spip('inc/autoriser');
     271
     272
     273                // API mailchimp
     274                include_spip('inc/1.3/MCAPI.class');
     275
     276                // necessaire pour utiliser lire_config
     277                include_spip('inc/config');
     278               
     279                //les fonctions
     280               
     281                include_spip('squirrel_chimp_lists_fonctions');
     282
     283                //recuperation de la config
     284                $apiKey = lire_config("squirrel_chimp/apiKey");
     285                $lists = lire_config("squirrel_chimp/mailinglists");
     286                $ajouter = lire_config("squirrel_chimp/ml_act_ajout");
     287                $enlever = lire_config("squirrel_chimp/ml_act_enleve");
     288                $actualiser = lire_config("squirrel_chimp/ml_act_actualise");
     289                $optin = lire_config('squirrel_chimp/ml_opt_in')?false:true; //yes, send optin emails
     290                $id_auteur = $flux['data']['id_auteur'];
     291                $email = $flux['args']['args'][4]['email'];
     292                $sql=sql_select('id_liste','spip_auteurs_listes','id_auteur='.$id_auteur. 'AND statut="valide"');
     293               
     294                $lists_sync=array();
     295               
     296                while($data=sql_fetch($sql)){
     297                        if($lists[$data['id_liste']])$lists_sync[$lists[$data['id_liste']]]=$data['id_liste'];
     298                        }
     299       
     300                //on verifie que les parametres du plugin mailchimp sont initialisées
     301                if ($apiKey){
     302
     303                        // initialisation d'un objet mailchimp
     304                        $api = new MCAPI($apiKey);
     305
     306
     307                        // les donnés de l'auteur
     308                       
     309                        $statut=sql_getfetsel('statut','spip_auteurs','id_auteur='.$id_auteur);
     310                       
     311                        //déterminer s'il s'agit d'un nouvel auteur
     312                        if(_request('new')=='new')      $new=true;
     313                        $message_ok = $flux['data']['message_ok'];
     314
     315               
     316       
     317                        // Actualisation de du profil si inscrit à une mailinglist et si activé actualisation des données si modification du profil
     318                        if (!$new AND $actualiser AND $statut!='5poubelle'){
     319                                spip_log('actualiser','sclp');
     320                               
     321                                // By default this sends a confirmation email - you will not see new members
     322                                // until the link contained in it is clicked!
     323                                // 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)
     324
     325                                // Inscription pour chaque liste
     326                                foreach($lists_sync AS $listId=>$id_liste_spip){
     327                                        // compilation des informations à envoyer à MailChimp
     328                                        $donnees_auteur=donnees_sync($id_liste_spip,'spip_auteurs','id_auteur='.$id_auteur);
     329                                        $retour=inscription_liste_mc($flux,$api,$listId,$email,$donnees_auteur[1],$email_type,$optin,true);     
     330                                        }
     331
     332                        }
     333                        // Se le statut est mis à "poubelle", on le désinscrit
     334                        elseif ($statut=='5poubelle' AND $enlever){
     335                                foreach($lists_sync AS $listId=>$value){
     336                                        desinscription_liste_mc($flux,$api,$listId,$email);
     337                                       
     338                                }
     339                        }
     340
     341
     342                } //($apiKey and $listId)
     343                else {
     344                        // n'effrayons pas l utilisateur classique
     345                        spip_log(__LINE__);
     346                        if (autoriser("configurer", "mailchimp")){
     347                                spip_log(__LINE__);
     348                                //erreur il faut configurer le plugin mailchimp
     349                                $flux['data'] = array('message_erreur' => _T('squirrelchimp:config_erreur'));
     350                                spip_log("Admin"._T('squirrelchimp:config_erreur'));
     351                                return $flux;
     352                        }
     353                        else {
     354                                spip_log(__LINE__);
     355                                // que le spiplog si on est juste un user
     356                                spip_log(_T('squirrelchimp:config_erreur'));
     357                                return $flux;
     358                        } // autoriser
     359
     360                        spip_log(__LINE__);
     361                } // if ( $apiKey and $listId ) {
     362
     363                spip_log(__LINE__);
     364                return $flux;
     365        }
    267366?>
  • _plugins_/squirrels_love_chimps_lists_plus/trunk/formulaires/auteur_listes.php

    r59252 r59313  
    4242               
    4343         $status=array();
    44          
     44       
    4545
    4646         foreach($listes_accordes AS $id_liste_spip=>$id_liste_mc){
    47                  
    48 
    49                  //echo $id_liste_mc."\n\n";
    50                  //echo date('i:s')."\n\n";
     47
    5148                $timestamp='';
    5249                 /*Faire d'abord un seul appel à Mc pour afficher plus raidement le formulaire
    5350                  * On en retire les informations sur les statut des listes
    5451                  */
    55                  if(!$member_info){
    56                          $member_info=membres_liste_info_mc($api,$id_liste_mc,$email);
     52               
     53                 if($id_liste_mc)$member_info=membres_liste_info_mc($api,$id_liste_mc,$email);
    5754                         $status[$id_liste_mc]=$member_info['data'][0]['status'];
    5855                         $timestamp=$member_info['data'][0]['timestamp'];
    5956                         if(is_array($member_info['data'][0]['lists']))$lists_members=array_merge($status,$member_info['data'][0]['lists']);
    6057                         else $lists_members=$status;
    61                         //echo serialize($lists_members);
    62                         }
    63                  //echo date('i:s')."\n\n";                     
    64                  //echo 'actualiser';
     58                       
     59 
    6560                 // Si le statut mc ne correpond pas au statut spip on syncronise
    6661                $statut_spip=$info_liste_spip[$id_liste_spip]['statut']?$info_liste_spip[$id_liste_spip]['statut']:'a_valider';
    67                 //echo $lists_members[$id_liste_mc];
     62
    6863                if($lists_members[$id_liste_mc]){
    6964                       
     
    7772       
    7873                                         if($timestamp=$member_info['data'][0]['timestamp']>$info_liste_spip[$id_liste_spip]['maj']){
    79                                         //echo '1';                     
     74               
    8075                                                 if($status_mc=$member_info['data'][0]['status']=='subscribed'){
    81                                                          //echo '1.1';
    82                                                          //echo '"'.$id_liste_spip.'-'.$id_liste_mc.'"';
     76
    8377                                                                $test=sql_updateq('spip_auteurs_listes',array('statut'=>'valide','maj'=>$timestamp),'id_auteur='.$id_auteur.' AND id_liste='.$id_liste_spip);
    8478                                                                if (!$teste) sql_insertq('spip_auteurs_listes',array('statut'=>'valide','maj'=>$timestamp,'id_auteur'=>$id_auteur,'id_liste'=>$id_liste_spip));
    8579                                                         }
    8680                                                else{
    87                                                         // echo '1.2'; 
    8881                                                         sql_updateq('spip_auteurs_listes',array('statut'=>'a_valider','maj'=>$timestamp),'id_auteur='.$id_auteur.' AND id_liste='.$id_liste_spip);                             
    8982                                                        }
     
    9184                                                 }
    9285                                        elseif($timestamp=$member_info['data'][0]['timestamp']<$info_liste_spip[$id_liste_spip]['maj']){
    93                                                 //echo '2';     
    94                                                 //echo serialize($info_liste_spip[$id_liste_spip]);     
     86
    9587                                                        // compilation des informations à envoyer à MailChimp
    9688                                                        $auteur=donnees_sync_simple($id_liste_spip,$info_liste_spip[$id_liste_spip]);
    97 
     89                                                       
     90                                                        spip_log($donnees_auteur,'sclp');
    9891                       
    9992                                                        $auteur=$auteur[1];
     
    10396                                                }
    10497                                        elseif($member_info['data'][0]['error']=='The email address passed does not exist on this list'){
    105                                                 //echo '3';
     98
    10699                                                if($info_liste_spip[$id_liste_spip]['statut']=='valide'){
    107                                                         // echo '3.1'; 
     100
    108101                                                        // compilation des informations à envoyer à MailChimp
    109102                                               
     
    123116                         // l'abonnée spip n'existe pas sur mc on désincrit
    124117                         elseif(!$lists_members[$id_liste_mc]){
    125                                  //echo '4';
    126                                  sql_delete('spip_auteurs_listes','id_auteur='.$id_auteur.' AND id_liste='.$id_liste_spip);                             
     118
     119                        sql_delete('spip_auteurs_listes','id_auteur='.$id_auteur.' AND id_liste='.$id_liste_spip);                             
    127120                                }       
    128121                                 
     
    228221
    229222                                        if($id_mailchimp AND $listes_accordes[$id_liste]){
    230                                                 $vals=desinscription_liste_mc('',$api,$listes_accordes[$id_liste],$id_mailchimp);
     223                                                if($listes_accordes[$id_liste])$vals=desinscription_liste_mc('',$api,$listes_accordes[$id_liste],$id_mailchimp);
    231224                                                $message_ok.='<li>'._T('sclp:liste').' - '.$id_liste.': '. $vals['data']['message_ok'].'</li>';
    232225                                                }
     
    252245
    253246                                $statut=$auteur['statut'];
    254                                 $vals=inscription_liste_mc($valeurs,$api,$liste,$email,$auteur,$format,$optin,true);
     247                                if($liste)$vals=inscription_liste_mc($valeurs,$api,$liste,$email,$auteur,$format,$optin,true);
    255248                               
    256249                                if($vals['data']['message_erreur']){
  • _plugins_/squirrels_love_chimps_lists_plus/trunk/formulaires/inc-squirrel_chimps_lists_config-sclp.html

    r59220 r59313  
    6161                <li class="squirrel_chimp_mailinglists[ (#ENV**{erreurs}|table_valeur{mailinglist_actualiser}|oui)erreur]">
    6262                        <label><:scl:quand_actualiser_mailinglists:></label>
    63                         <div class="choix">
    64                                 [
    65                                 <span class='erreur'>(#ENV**{erreurs}|table_valeur{ml_act_ajout})</span>
    66                                 ]
    67                                 <input type="checkbox" class="checkbox" name="ml_act_ajout" id="ml_act_ajout" value='on' [(#ENV{ml_act_ajout}|=={on}) checked="ckecked"] />
    68                                 <label for="ml_act_ajout"><:scl:actualiser_mailinglists_ajout:></label>
    69                         </div>
    7063               
    7164                        <div class="choix optin">
  • _plugins_/squirrels_love_chimps_lists_plus/trunk/plugin.xml

    r59259 r59313  
    33        <auteur>[Spade->http://blog.spade.be/] et [Rainer M&#252;ller->http://www.mychacra.net]</auteur>
    44        <licence>GNU/GLP</licence>
    5         <version>0.2.0</version>
     5        <version>0.2.1</version>
    66        <version_base>0.1.13</version_base>     
    77        <licence>MIT</licence>
     
    1717        <necessite id="SPIP" version="[2.0.14;2.1.99]" />
    1818        <necessite id="squirrel_chimp" version="[1.2.0;]" />
    19         <necessite id="squirrel_chimp_lists" version="[1.2.0;]" />
     19        <necessite id="squirrel_chimp_lists" version="[1.3.0;]" />
    2020        <necessite id="spip_bonux" version="[2.2.17;]" />
    2121        <install>base/installation.php</install>       
  • _plugins_/squirrels_love_chimps_lists_plus/trunk/sclp_fonctions.php

    r59257 r59313  
    265265       
    266266}
     267
     268function inc_editer_auteur_traiter_listes($flux){               
     269                // necessaire pour utiliser les autorisations
     270                include_spip('inc/autoriser');
     271
     272
     273                // API mailchimp
     274                include_spip('inc/1.3/MCAPI.class');
     275
     276                // necessaire pour utiliser lire_config
     277                include_spip('inc/config');
     278               
     279                //les fonctions
     280               
     281                include_spip('squirrel_chimp_lists_fonctions');
     282
     283                //recuperation de la config
     284                $apiKey = lire_config("squirrel_chimp/apiKey");
     285                $lists = lire_config("squirrel_chimp/mailinglists");
     286                $ajouter = lire_config("squirrel_chimp/ml_act_ajout");
     287                $enlever = lire_config("squirrel_chimp/ml_act_enleve");
     288                $actualiser = lire_config("squirrel_chimp/ml_act_actualise");
     289                $optin = lire_config('squirrel_chimp/ml_opt_in')?false:true; //yes, send optin emails
     290                $id_auteur = $flux['data']['id_auteur'];
     291                $email = $flux['args']['args'][4]['email'];
     292                $sql=sql_select('id_liste','spip_auteurs_listes','id_auteur='.$id_auteur. 'AND statut="valide"');
     293               
     294                $lists_sync=array();
     295               
     296                while($data=sql_fetch($sql)){
     297                        if($lists[$data['id_liste']])$lists_sync[$lists[$data['id_liste']]]=$data['id_liste'];
     298                        }
     299       
     300                //on verifie que les parametres du plugin mailchimp sont initialisées
     301                if ($apiKey){
     302
     303                        // initialisation d'un objet mailchimp
     304                        $api = new MCAPI($apiKey);
     305
     306
     307                        // les donnés de l'auteur
     308                       
     309                        $statut=sql_getfetsel('statut','spip_auteurs','id_auteur='.$id_auteur);
     310                       
     311                        //déterminer s'il s'agit d'un nouvel auteur
     312                        if(_request('new')=='new')      $new=true;
     313                        $message_ok = $flux['data']['message_ok'];
     314
     315               
     316       
     317                        // Actualisation de du profil si inscrit à une mailinglist et si activé actualisation des données si modification du profil
     318                        if (!$new AND $actualiser AND $statut!='5poubelle'){
     319                                spip_log('actualiser','sclp');
     320                               
     321                                // By default this sends a confirmation email - you will not see new members
     322                                // until the link contained in it is clicked!
     323                                // 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)
     324
     325                                // Inscription pour chaque liste
     326                                foreach($lists_sync AS $listId=>$id_liste_spip){
     327                                        // compilation des informations à envoyer à MailChimp
     328                                        $donnees_auteur=donnees_sync($id_liste_spip,'spip_auteurs','id_auteur='.$id_auteur);
     329                                        $retour=inscription_liste_mc($flux,$api,$listId,$email,$donnees_auteur[1],$email_type,$optin,true);     
     330                                        }
     331
     332                        }
     333                        // Se le statut est mis à "poubelle", on le désinscrit
     334                        elseif ($statut=='5poubelle' AND $enlever){
     335                                foreach($lists_sync AS $listId=>$value){
     336                                        desinscription_liste_mc($flux,$api,$listId,$email);
     337                                       
     338                                }
     339                        }
     340
     341
     342                } //($apiKey and $listId)
     343                else {
     344                        // n'effrayons pas l utilisateur classique
     345                        spip_log(__LINE__);
     346                        if (autoriser("configurer", "mailchimp")){
     347                                spip_log(__LINE__);
     348                                //erreur il faut configurer le plugin mailchimp
     349                                $flux['data'] = array('message_erreur' => _T('squirrelchimp:config_erreur'));
     350                                spip_log("Admin"._T('squirrelchimp:config_erreur'));
     351                                return $flux;
     352                        }
     353                        else {
     354                                spip_log(__LINE__);
     355                                // que le spiplog si on est juste un user
     356                                spip_log(_T('squirrelchimp:config_erreur'));
     357                                return $flux;
     358                        } // autoriser
     359
     360                        spip_log(__LINE__);
     361                } // if ( $apiKey and $listId ) {
     362
     363                spip_log(__LINE__);
     364                return $flux;
     365        }
    267366?>
Note: See TracChangeset for help on using the changeset viewer.