Changeset 59264 in spip-zone


Ignore:
Timestamp:
Mar 13, 2012, 3:37:47 PM (8 years ago)
Author:
abelass@…
Message:

adaptations pour sclp

Location:
_plugins_/squirrels_love_chimps_lists
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/squirrels_love_chimps_lists/branches/1/formulaires/squirrel_chimp_lists_config_traiter.php

    r53995 r59264  
    66        $valeurs['message_ok'] = _T('scl:enregistrement_ok');
    77        if(_request('sync_auteurs')){
     8               
     9                #recuperation de la config
     10                $apiKey = _request("apiKey");
    811       
    9         #recuperation de la config
    10         $apiKey = _request("apiKey");
    11 
    12 
    13         spip_log("Plugin mailchimp form vérifier : $apiKey ",'squirrel_chimp') ;
    1412       
    15         // Composition du batch
     13                spip_log("Plugin mailchimp form vérifier : $apiKey ",'squirrel_chimp') ;
     14               
     15                // Composition du batch
     16               
     17                $batch=donnees_sync('','spip_auteurs','statut!="5poubelle"');
    1618       
    17         $batch=donnees_sync('spip_auteurs','statut!="5poubelle"');
    18 
    19         // initialisation d'un objet mailchimp
    20         $apiKey=lire_config('squirrel_chimp/apiKey');   
     19                // initialisation d'un objet mailchimp
     20                $apiKey=lire_config('squirrel_chimp/apiKey');   
     21               
     22                $api = new MCAPI($apiKey);
     23               
     24                // les variables
     25                $optin = lire_config('squirrel_chimp/ml_opt_in')?false:true; //yes, send optin emails
     26                $up_exist = true; // yes, update currently subscribed users
     27                $replace_int = false; // no, add interest, don't replace
     28               
     29                // les listes à actualiser
     30                $lists_sync=lire_config('squirrel_chimp/mailinglists');
     31               
     32                foreach($lists_sync AS $listId=>$value){
    2133       
    22         $api = new MCAPI($apiKey);
    23        
    24         // les variables
    25         $optin = lire_config('squirrel_chimp/ml_opt_in')?false:true; //yes, send optin emails
    26         $up_exist = true; // yes, update currently subscribed users
    27         $replace_int = false; // no, add interest, don't replace
    28        
    29         // les listes à actualiser
    30         $lists_sync=lire_config('squirrel_chimp/mailinglists');
    31        
    32         foreach($lists_sync AS $listId=>$value){
    33 
    34        
    35         $vals = $api->listBatchSubscribe($listId,$batch,$optin, $up_exist, $replace_int);
    36                 if ($api->errorCode){
    37                         $log .=_T('scl:sync_error')." : \n";
    38                     $log .= _T('scl:sync_echec_batch')."\n";
    39                         $log .= _T('scl:sync_code').$api->errorCode."\n";
    40                         $log .= _T('scl:sync_message').$api->errorMessage."\n";
    41                 } else {
    42                         $log .=_T('scl:sync_ok')."<br/>\n";
    43                         $log .= _T('scl:sync_ajoute').$vals['add_count']."<br/>\n";
    44                         $log .= _T('scl:sync_actualise').$vals['update_count']."<br/>\n";
    45                         $log .= _T('scl:sync_erreurs').$vals['error_count']."<br/>\n";
    46                         foreach($vals['errors'] as $val){
    47                                 $log .= $val['email_address']._T('scl:sync_echec')."<br/>\n";
    48                                 $log .= _T('scl:sync_code').$val['code']." <br/>\n";
    49                                 $log .= _T('scl:sync_message').$val['message']." \n";
     34               
     35                $vals = $api->listBatchSubscribe($listId,$batch,$optin, $up_exist, $replace_int);
     36                        if ($api->errorCode){
     37                                $log .=_T('scl:sync_error')." : \n";
     38                            $log .= _T('scl:sync_echec_batch')."\n";
     39                                $log .= _T('scl:sync_code').$api->errorCode."\n";
     40                                $log .= _T('scl:sync_message').$api->errorMessage."\n";
     41                        } else {
     42                                $log .=_T('scl:sync_ok')."<br/>\n";
     43                                $log .= _T('scl:sync_ajoute').$vals['add_count']."<br/>\n";
     44                                $log .= _T('scl:sync_actualise').$vals['update_count']."<br/>\n";
     45                                $log .= _T('scl:sync_erreurs').$vals['error_count']."<br/>\n";
     46                                foreach($vals['errors'] as $val){
     47                                        $log .= $val['email_address']._T('scl:sync_echec')."<br/>\n";
     48                                        $log .= _T('scl:sync_code').$val['code']." <br/>\n";
     49                                        $log .= _T('scl:sync_message').$val['message']." \n";
     50                                }
     51                                }
     52                               
     53                        $valeurs['message_ok'] = $log; 
     54                       
    5055                        }
    51                         }
    52                        
    53                 $valeurs['message_ok'] = $log; 
    54                
    55                 }
    5656
    5757                }
     58       
     59                // Pipeline pour intervenir dans le traitement de ce formulaire
     60                $pipeline= pipeline('squirrel_chimp_lists_config_traiter',array(
     61                        'data'=>$valeurs)
     62                        );
     63       
     64       
     65                if($pipeline)$objets=$pipeline['data'];         
    5866       
    5967return $valeurs;
  • _plugins_/squirrels_love_chimps_lists/branches/1/plugin.xml

    r58831 r59264  
    33        <auteur>[Spade->http://blog.spade.be/] et [Rainer M&#252;ller->http://www.mychacra.net]</auteur>
    44        <licence>GNU/GLP</licence>
    5         <version>1.1.5</version>
     5        <version>1.2.0</version>
    66        <licence>MIT</licence>
    77        <etat>test</etat>
     
    2222        </pipeline>
    2323        <fonctions>squirrel_chimp_lists_fonctions.php</fonctions>
     24    <options>squirrel_chimp_lists_options.php</options>
    2425        <categorie>communication</categorie>
    2526</plugin>
  • _plugins_/squirrels_love_chimps_lists/branches/1/squirrel_chimp_lists_fonctions.php

    r58831 r59264  
    33if (!defined("_ECRIRE_INC_VERSION")) return;
    44
    5 /* filtre pour l'inétégration Api Mai!lchimp
     5/* filtre pour l'intégration Api Mailchimp
    66 * lists(string apikey, array filters, int start, int limit)
    77 * http://apidocs.mailchimp.com/api/1.3/lists.func.php
     
    3939}
    4040
    41 //Retourne un array  pour filtrer les lists et utilisé par lists() de MailChimp
     41//Retourne un array  pour filtrer les lists spip et utilisé par lists() de MailChimp
    4242function array_filtre_lists($mailinglists){
    4343
     
    4949        }
    5050
    51 // filtre pour obtenir les champs spip à diposition
    52 function champs_spip($tables){
     51// filtre pour obtenir les champs spip à disposition
     52function champs_spip($tables='spip_auteurs'){
    5353       
    5454        $champs_refuses=array(
     
    7373
    7474// filtre pour obtenir un array de corresponance entre champs spip ,et champs MailChimp
    75 function champs_listes($apiKey,$listId,$tables='spip_auteurs'){
     75function champs_listes($apiKey,$listId,$tables='spip_auteurs',$multi=''){
    7676       
    7777        $mapping= array();
    78        
     78
    7979        // initialisation d'un objet mailchimp
    8080        $api = new MCAPI($apiKey);
     
    8383                foreach($listId AS $id){
    8484                        $champs=$api->listMergeVars($id);
    85                         $mapping['mailchimp'] = $api->listMergeVars($id);
    86                         }
    87                 }
    88                 else $mapping['mailchimp'] = $api->listMergeVars($listId);
    89        
    90         $mapping['spip'] = champs_spip($tables);
     85
     86                        if($multi) $mapping['mailchimp'][$id] = $champs;
     87                        else $mapping['mailchimp'] = $champs;
     88                        }
     89                }
     90                else {
     91                        if($multi) $mapping['mailchimp'][$listId]  = $api->listMergeVars($listId);
     92                        else $mapping['mailchimp']  = $api->listMergeVars($listId);             
     93                        }
     94       
     95        if($tables)$mapping['spip'] = champs_spip($tables);
    9196       
    9297        return $mapping;
     
    96101
    97102// Prépare les données pour la synchronisation
    98 function donnees_sync($from='spip_auteurs',$where='',$groupby='',$orderby='',$limit='',$having='',$serveur='',$option=true){
     103function donnees_sync($id_liste='',$from='spip_auteurs',$where='',$groupby='',$orderby='',$limit='',$having='',$serveur='',$option=true){
    99104       
    100105        // Les champs spip à traiter
    101         $champs_sync=champs_pour_concordance();
     106        $champs_sync=champs_pour_concordance($id_liste);
    102107       
    103108        // les utilisateurs spip
     
    110115                $i++;
    111116                foreach($data AS $key=>$value){
    112                         if(array_key_exists($key,$champs_sync))$batch[$i][$champs_sync[$key]]=$value;
    113                         }
    114                 }
     117                        if(!is_array($champs_sync[$key])){
     118                                if(array_key_exists($key,$champs_sync))$batch[$i][$champs_sync[$key]]=$value;
     119                                }
     120                        }
     121                }
     122
    115123        return $batch;
    116124}
    117125
    118126// Détermine les champs Spip à prendre en compte pour la concordance
    119 function champs_pour_concordance(){
     127function champs_pour_concordance($id_liste=''){
    120128        $concordances=lire_config('squirrel_chimp/mapping');
     129       
     130        if($id_liste)$concordances=$concordances[$id_liste];
     131        if(!$concordances)$concordances=array();
     132
    121133        $concordances_fixes=array('email'=>'EMAIL');
    122         $champs_sync=array_merge($concordances,$concordances_fixes);
     134        $champs_sync=array_merge($concordances_fixes,$concordances);
    123135
    124136        return $champs_sync;
     
    131143 */
    132144 
    133 function inscription_liste_mc($flux,$api,$listId,$email,$donnees_auteur,$email_type='',$optin,$new){
    134         $retval = $api->listSubscribe($listId, $email,$donnees_auteur,$email_type,$optin,$new);
     145function inscription_liste_mc($flux='',$api,$listId,$email,$donnees_auteur,$email_type='',$optin,$update_existing=true,$replace_interests=false,$send_welcome=false){
     146       
     147        $retval = $api->listSubscribe($listId, $email,$donnees_auteur,$email_type,$optin,$update_existing,$replace_interests,$send_welcome);
    135148
    136149        include_spip('inc/autoriser');
     
    158171                        $message_ok .="<br/>"._T('scl:demande_inscription_envoyee2');
    159172                        $message_ok .="<br/><i>"._T('scl:demande_inscription_envoyee3')."</i>";
    160                         }
     173                       
     174                        }
     175                       
    161176                $flux['data']['message_ok']=$message_ok ;
    162                 return $flux;
    163 }
    164        
    165 }
    166 
    167 // Désinscription de la liste
    168 function desinscription_liste_mc($flux,$api,$listId,$email){
     177
     178}
     179                        return $flux;
     180}
     181
     182/*Désinscription de la liste
     183 * listUnsubscribe(string apikey, string id, string email_address, boolean delete_member, boolean send_goodbye, boolean send_notify)
     184 * http://apidocs.mailchimp.com/api/1.3/listunsubscribe.func.php
     185 */
     186function desinscription_liste_mc($flux='',$api,$listId,$email,$delete_member=false,$send_goodbye=false,$send_notify=true){
    169187        spip_log(__LINE__,'squirrel_chimp');
    170         $retval = $api->listUnSubscribe($listId, $email);
     188        $retval = $api->listUnSubscribe($listId, $email,$delete_member,$send_goodbye,$send_notify);
    171189
    172190        if ($api->errorCode){
  • _plugins_/squirrels_love_chimps_lists/trunk/formulaires/squirrel_chimp_lists_config_traiter.php

    r53995 r59264  
    66        $valeurs['message_ok'] = _T('scl:enregistrement_ok');
    77        if(_request('sync_auteurs')){
     8               
     9                #recuperation de la config
     10                $apiKey = _request("apiKey");
    811       
    9         #recuperation de la config
    10         $apiKey = _request("apiKey");
    11 
    12 
    13         spip_log("Plugin mailchimp form vérifier : $apiKey ",'squirrel_chimp') ;
    1412       
    15         // Composition du batch
     13                spip_log("Plugin mailchimp form vérifier : $apiKey ",'squirrel_chimp') ;
     14               
     15                // Composition du batch
     16               
     17                $batch=donnees_sync('','spip_auteurs','statut!="5poubelle"');
    1618       
    17         $batch=donnees_sync('spip_auteurs','statut!="5poubelle"');
    18 
    19         // initialisation d'un objet mailchimp
    20         $apiKey=lire_config('squirrel_chimp/apiKey');   
     19                // initialisation d'un objet mailchimp
     20                $apiKey=lire_config('squirrel_chimp/apiKey');   
     21               
     22                $api = new MCAPI($apiKey);
     23               
     24                // les variables
     25                $optin = lire_config('squirrel_chimp/ml_opt_in')?false:true; //yes, send optin emails
     26                $up_exist = true; // yes, update currently subscribed users
     27                $replace_int = false; // no, add interest, don't replace
     28               
     29                // les listes à actualiser
     30                $lists_sync=lire_config('squirrel_chimp/mailinglists');
     31               
     32                foreach($lists_sync AS $listId=>$value){
    2133       
    22         $api = new MCAPI($apiKey);
    23        
    24         // les variables
    25         $optin = lire_config('squirrel_chimp/ml_opt_in')?false:true; //yes, send optin emails
    26         $up_exist = true; // yes, update currently subscribed users
    27         $replace_int = false; // no, add interest, don't replace
    28        
    29         // les listes à actualiser
    30         $lists_sync=lire_config('squirrel_chimp/mailinglists');
    31        
    32         foreach($lists_sync AS $listId=>$value){
    33 
    34        
    35         $vals = $api->listBatchSubscribe($listId,$batch,$optin, $up_exist, $replace_int);
    36                 if ($api->errorCode){
    37                         $log .=_T('scl:sync_error')." : \n";
    38                     $log .= _T('scl:sync_echec_batch')."\n";
    39                         $log .= _T('scl:sync_code').$api->errorCode."\n";
    40                         $log .= _T('scl:sync_message').$api->errorMessage."\n";
    41                 } else {
    42                         $log .=_T('scl:sync_ok')."<br/>\n";
    43                         $log .= _T('scl:sync_ajoute').$vals['add_count']."<br/>\n";
    44                         $log .= _T('scl:sync_actualise').$vals['update_count']."<br/>\n";
    45                         $log .= _T('scl:sync_erreurs').$vals['error_count']."<br/>\n";
    46                         foreach($vals['errors'] as $val){
    47                                 $log .= $val['email_address']._T('scl:sync_echec')."<br/>\n";
    48                                 $log .= _T('scl:sync_code').$val['code']." <br/>\n";
    49                                 $log .= _T('scl:sync_message').$val['message']." \n";
     34               
     35                $vals = $api->listBatchSubscribe($listId,$batch,$optin, $up_exist, $replace_int);
     36                        if ($api->errorCode){
     37                                $log .=_T('scl:sync_error')." : \n";
     38                            $log .= _T('scl:sync_echec_batch')."\n";
     39                                $log .= _T('scl:sync_code').$api->errorCode."\n";
     40                                $log .= _T('scl:sync_message').$api->errorMessage."\n";
     41                        } else {
     42                                $log .=_T('scl:sync_ok')."<br/>\n";
     43                                $log .= _T('scl:sync_ajoute').$vals['add_count']."<br/>\n";
     44                                $log .= _T('scl:sync_actualise').$vals['update_count']."<br/>\n";
     45                                $log .= _T('scl:sync_erreurs').$vals['error_count']."<br/>\n";
     46                                foreach($vals['errors'] as $val){
     47                                        $log .= $val['email_address']._T('scl:sync_echec')."<br/>\n";
     48                                        $log .= _T('scl:sync_code').$val['code']." <br/>\n";
     49                                        $log .= _T('scl:sync_message').$val['message']." \n";
     50                                }
     51                                }
     52                               
     53                        $valeurs['message_ok'] = $log; 
     54                       
    5055                        }
    51                         }
    52                        
    53                 $valeurs['message_ok'] = $log; 
    54                
    55                 }
    5656
    5757                }
     58       
     59                // Pipeline pour intervenir dans le traitement de ce formulaire
     60                $pipeline= pipeline('squirrel_chimp_lists_config_traiter',array(
     61                        'data'=>$valeurs)
     62                        );
     63       
     64       
     65                if($pipeline)$objets=$pipeline['data'];         
    5866       
    5967return $valeurs;
  • _plugins_/squirrels_love_chimps_lists/trunk/plugin.xml

    r58831 r59264  
    33        <auteur>[Spade->http://blog.spade.be/] et [Rainer M&#252;ller->http://www.mychacra.net]</auteur>
    44        <licence>GNU/GLP</licence>
    5         <version>1.1.5</version>
     5        <version>1.2.0</version>
    66        <licence>MIT</licence>
    77        <etat>test</etat>
     
    2222        </pipeline>
    2323        <fonctions>squirrel_chimp_lists_fonctions.php</fonctions>
     24    <options>squirrel_chimp_lists_options.php</options>
    2425        <categorie>communication</categorie>
    2526</plugin>
  • _plugins_/squirrels_love_chimps_lists/trunk/squirrel_chimp_lists_fonctions.php

    r58831 r59264  
    33if (!defined("_ECRIRE_INC_VERSION")) return;
    44
    5 /* filtre pour l'inétégration Api Mai!lchimp
     5/* filtre pour l'intégration Api Mailchimp
    66 * lists(string apikey, array filters, int start, int limit)
    77 * http://apidocs.mailchimp.com/api/1.3/lists.func.php
     
    3939}
    4040
    41 //Retourne un array  pour filtrer les lists et utilisé par lists() de MailChimp
     41//Retourne un array  pour filtrer les lists spip et utilisé par lists() de MailChimp
    4242function array_filtre_lists($mailinglists){
    4343
     
    4949        }
    5050
    51 // filtre pour obtenir les champs spip à diposition
    52 function champs_spip($tables){
     51// filtre pour obtenir les champs spip à disposition
     52function champs_spip($tables='spip_auteurs'){
    5353       
    5454        $champs_refuses=array(
     
    7373
    7474// filtre pour obtenir un array de corresponance entre champs spip ,et champs MailChimp
    75 function champs_listes($apiKey,$listId,$tables='spip_auteurs'){
     75function champs_listes($apiKey,$listId,$tables='spip_auteurs',$multi=''){
    7676       
    7777        $mapping= array();
    78        
     78
    7979        // initialisation d'un objet mailchimp
    8080        $api = new MCAPI($apiKey);
     
    8383                foreach($listId AS $id){
    8484                        $champs=$api->listMergeVars($id);
    85                         $mapping['mailchimp'] = $api->listMergeVars($id);
    86                         }
    87                 }
    88                 else $mapping['mailchimp'] = $api->listMergeVars($listId);
    89        
    90         $mapping['spip'] = champs_spip($tables);
     85
     86                        if($multi) $mapping['mailchimp'][$id] = $champs;
     87                        else $mapping['mailchimp'] = $champs;
     88                        }
     89                }
     90                else {
     91                        if($multi) $mapping['mailchimp'][$listId]  = $api->listMergeVars($listId);
     92                        else $mapping['mailchimp']  = $api->listMergeVars($listId);             
     93                        }
     94       
     95        if($tables)$mapping['spip'] = champs_spip($tables);
    9196       
    9297        return $mapping;
     
    96101
    97102// Prépare les données pour la synchronisation
    98 function donnees_sync($from='spip_auteurs',$where='',$groupby='',$orderby='',$limit='',$having='',$serveur='',$option=true){
     103function donnees_sync($id_liste='',$from='spip_auteurs',$where='',$groupby='',$orderby='',$limit='',$having='',$serveur='',$option=true){
    99104       
    100105        // Les champs spip à traiter
    101         $champs_sync=champs_pour_concordance();
     106        $champs_sync=champs_pour_concordance($id_liste);
    102107       
    103108        // les utilisateurs spip
     
    110115                $i++;
    111116                foreach($data AS $key=>$value){
    112                         if(array_key_exists($key,$champs_sync))$batch[$i][$champs_sync[$key]]=$value;
    113                         }
    114                 }
     117                        if(!is_array($champs_sync[$key])){
     118                                if(array_key_exists($key,$champs_sync))$batch[$i][$champs_sync[$key]]=$value;
     119                                }
     120                        }
     121                }
     122
    115123        return $batch;
    116124}
    117125
    118126// Détermine les champs Spip à prendre en compte pour la concordance
    119 function champs_pour_concordance(){
     127function champs_pour_concordance($id_liste=''){
    120128        $concordances=lire_config('squirrel_chimp/mapping');
     129       
     130        if($id_liste)$concordances=$concordances[$id_liste];
     131        if(!$concordances)$concordances=array();
     132
    121133        $concordances_fixes=array('email'=>'EMAIL');
    122         $champs_sync=array_merge($concordances,$concordances_fixes);
     134        $champs_sync=array_merge($concordances_fixes,$concordances);
    123135
    124136        return $champs_sync;
     
    131143 */
    132144 
    133 function inscription_liste_mc($flux,$api,$listId,$email,$donnees_auteur,$email_type='',$optin,$new){
    134         $retval = $api->listSubscribe($listId, $email,$donnees_auteur,$email_type,$optin,$new);
     145function inscription_liste_mc($flux='',$api,$listId,$email,$donnees_auteur,$email_type='',$optin,$update_existing=true,$replace_interests=false,$send_welcome=false){
     146       
     147        $retval = $api->listSubscribe($listId, $email,$donnees_auteur,$email_type,$optin,$update_existing,$replace_interests,$send_welcome);
    135148
    136149        include_spip('inc/autoriser');
     
    158171                        $message_ok .="<br/>"._T('scl:demande_inscription_envoyee2');
    159172                        $message_ok .="<br/><i>"._T('scl:demande_inscription_envoyee3')."</i>";
    160                         }
     173                       
     174                        }
     175                       
    161176                $flux['data']['message_ok']=$message_ok ;
    162                 return $flux;
    163 }
    164        
    165 }
    166 
    167 // Désinscription de la liste
    168 function desinscription_liste_mc($flux,$api,$listId,$email){
     177
     178}
     179                        return $flux;
     180}
     181
     182/*Désinscription de la liste
     183 * listUnsubscribe(string apikey, string id, string email_address, boolean delete_member, boolean send_goodbye, boolean send_notify)
     184 * http://apidocs.mailchimp.com/api/1.3/listunsubscribe.func.php
     185 */
     186function desinscription_liste_mc($flux='',$api,$listId,$email,$delete_member=false,$send_goodbye=false,$send_notify=true){
    169187        spip_log(__LINE__,'squirrel_chimp');
    170         $retval = $api->listUnSubscribe($listId, $email);
     188        $retval = $api->listUnSubscribe($listId, $email,$delete_member,$send_goodbye,$send_notify);
    171189
    172190        if ($api->errorCode){
Note: See TracChangeset for help on using the changeset viewer.