Changeset 96194 in spip-zone


Ignore:
Timestamp:
Mar 24, 2016, 9:31:14 PM (3 years ago)
Author:
real3t@…
Message:

Gérer un appel par texte alors qu'on a désactivé le plugin mailsubscribers
Exemple : <formulaire_inscription_newsletter|liste=nl,test>

Permet d'éviter une erreur PHP et une erreur de compilation de squelette

Location:
_squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs/formulaires
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs/formulaires/newsletter_subscribe.html

    r92481 r96194  
     1[(#PLUGIN{mailsubscribers}|oui)
    12<div class='formulaire_spip formulaire_newsletter formulaire_[(#FORM)] ajax'>
    23        [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
     
    2829        ]
    2930</div>
     31]
  • _squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs/formulaires/newsletter_subscribe.php

    r92481 r96194  
    88if (!defined('_ECRIRE_INC_VERSION')) return;
    99
    10 $GLOBALS['formulaires_no_spam'][] = 'newsletter_subscribe';
    11 include_spip('inc/mailsubscribers');
     10// Gérer un appel par texte alors qu'on a désactivé le plugin mailsubscribers
     11// Exemple : <formulaire_inscription_newsletter|liste=nl,test>
     12if(defined('_DIR_PLUGIN_MAILSUBSCRIBERS')) {
     13        $GLOBALS['formulaires_no_spam'][] = 'newsletter_subscribe';
     14        include_spip('inc/mailsubscribers');
    1215
    1316
    14 /**
    15  * Declarer les champs postes et y integrer les valeurs par defaut
    16  */
    17 function formulaires_newsletter_subscribe_charger_dist($listes=''){
    18         $valeurs = array(
    19                 'session_email' => ''
    20         );
     17        /**
     18        * Declarer les champs postes et y integrer les valeurs par defaut
     19        */
     20        function formulaires_newsletter_subscribe_charger_dist($listes=''){
     21                $valeurs = array(
     22                        'session_email' => ''
     23                );
    2124
    22         $valeurs['listes'] = explode(',',$listes);
    23         $valeurs['_listes_dispo'] = mailsubscribers_listes();
     25                $valeurs['listes'] = explode(',',$listes);
     26                $valeurs['_listes_dispo'] = mailsubscribers_listes();
    2427
    25         if (isset($GLOBALS['visiteur_session']['email']))
    26                 $valeurs['session_email'] = $GLOBALS['visiteur_session']['email'];
    27         elseif (isset($GLOBALS['visiteur_session']['session_email']))
    28                 $valeurs['session_email'] = $GLOBALS['visiteur_session']['session_email'];
    29         return $valeurs;
     28                if (isset($GLOBALS['visiteur_session']['email']))
     29                        $valeurs['session_email'] = $GLOBALS['visiteur_session']['email'];
     30                elseif (isset($GLOBALS['visiteur_session']['session_email']))
     31                        $valeurs['session_email'] = $GLOBALS['visiteur_session']['session_email'];
     32                return $valeurs;
     33        }
     34
     35        /**
     36         * Verifier les champs postes et signaler d'eventuelles erreurs
     37         */
     38        function formulaires_newsletter_subscribe_verifier_dist(){
     39                $listes = _request('listes');
     40                if ($listes AND is_array($listes))
     41                        set_request('listes',implode(',',$listes));
     42                if (!$listes)
     43                        $listes = array();
     44
     45                $erreurs = array();
     46                if (!$email = _request('session_email')){
     47                        $erreurs['session_email'] = _T('info_obligatoire');
     48                }
     49                else {
     50                        // verifier que l'email est valide
     51                        if (!email_valide($email))
     52                                $erreurs['session_email'] = _T('info_email_invalide');
     53                }
     54                if (count($erreurs))
     55                        set_request('listes',$listes);
     56                return $erreurs;
     57        }
     58
     59        /**
     60         * Traiter les champs postes
     61         */
     62        function formulaires_newsletter_subscribe_traiter_dist(){
     63
     64                // langue par defaut lors de l'inscription : la langue courante dans la page
     65                $options = array('lang'=>$GLOBALS['spip_lang']);
     66                $email = _request('session_email');
     67                $listes = _request('listes');
     68                if ($listes AND is_string($listes))
     69                        $listes = explode(',',$listes);
     70                if ($listes AND is_array($listes) AND count($listes))
     71                        $options['listes'] = $listes;
     72
     73                $res = array(
     74                        'editable'=>true
     75                );
     76
     77                $newsletter_subscribe = charger_fonction("subscribe","newsletter");
     78                if ($newsletter_subscribe($email,$options)){
     79                        if (lire_config('mailsubscribers/double_optin',0))
     80                                $res['message_ok'] = _T('newsletter:subscribe_message_ok_confirm',array('email'=>"<b>$email</b>"));
     81                        else
     82                                $res['message_ok'] = _T('newsletter:subscribe_message_ok',array('email'=>"<b>$email</b>"));
     83                }
     84                else
     85                        $res['message_erreur'] = _T('mailsubscriber:erreur_technique_subscribe');
     86                set_request('email');
     87                return $res;
     88        }
    3089}
    31 
    32 /**
    33  * Verifier les champs postes et signaler d'eventuelles erreurs
    34  */
    35 function formulaires_newsletter_subscribe_verifier_dist(){
    36         $listes = _request('listes');
    37         if ($listes AND is_array($listes))
    38                 set_request('listes',implode(',',$listes));
    39         if (!$listes)
    40                 $listes = array();
    41 
    42         $erreurs = array();
    43         if (!$email = _request('session_email')){
    44                 $erreurs['session_email'] = _T('info_obligatoire');
    45         }
    46         else {
    47                 // verifier que l'email est valide
    48                 if (!email_valide($email))
    49                         $erreurs['session_email'] = _T('info_email_invalide');
    50         }
    51         if (count($erreurs))
    52                 set_request('listes',$listes);
    53         return $erreurs;
    54 }
    55 
    56 /**
    57  * Traiter les champs postes
    58  */
    59 function formulaires_newsletter_subscribe_traiter_dist(){
    60 
    61         // langue par defaut lors de l'inscription : la langue courante dans la page
    62         $options = array('lang'=>$GLOBALS['spip_lang']);
    63         $email = _request('session_email');
    64         $listes = _request('listes');
    65         if ($listes AND is_string($listes))
    66                 $listes = explode(',',$listes);
    67         if ($listes AND is_array($listes) AND count($listes))
    68                 $options['listes'] = $listes;
    69 
    70         $res = array(
    71                 'editable'=>true
    72         );
    73 
    74         $newsletter_subscribe = charger_fonction("subscribe","newsletter");
    75         if ($newsletter_subscribe($email,$options)){
    76                 if (lire_config('mailsubscribers/double_optin',0))
    77                         $res['message_ok'] = _T('newsletter:subscribe_message_ok_confirm',array('email'=>"<b>$email</b>"));
    78                 else
    79                         $res['message_ok'] = _T('newsletter:subscribe_message_ok',array('email'=>"<b>$email</b>"));
    80         }
    81         else
    82                 $res['message_erreur'] = _T('mailsubscriber:erreur_technique_subscribe');
    83         set_request('email');
    84         return $res;
    85 }
Note: See TracChangeset for help on using the changeset viewer.