Ignore:
Timestamp:
Mar 18, 2015, 11:41:21 AM (5 years ago)
Author:
cedric@…
Message:

on peut activer l'affichage de la checkbox d'inscription newsletter sur le formulaire de commentaires

File:
1 edited

Legend:

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

    r86325 r88051  
    102102 */
    103103function mailsubscribers_formulaire_charger($flux){
    104         if ($flux['args']['form']=="inscription"){
     104        if (in_array($flux['args']['form'],array("inscription","forum"))){
    105105                // ici on ne lit pas la config pour aller plus vite (pas grave si on a ajoute le champ sans l'utiliser)
    106106                $flux['data']['mailsubscriber_optin'] = '';
     
    110110
    111111/**
    112  * Ajout de la coche d'optin sur le formulaire inscription
     112 * Ajout de la coche d'optin sur le formulaire inscription et forum
    113113 *
    114114 * @param array $flux
     
    125125                }
    126126        }
    127         return $flux;
    128 }
    129 
    130 /**
    131  * Ajout de la coche d'optin sur le formulaire inscription
     127        if ($flux['args']['form']=="forum"){
     128                include_spip('inc/config');
     129                if (lire_config("mailsubscribers/proposer_comment_optin",0)){
     130                        $show = true;
     131                        // si l'utilisateur est connu et deja abonne on propose pas la coche
     132                        if ( (isset($GLOBALS['visiteur_session']['email']) AND $email = $GLOBALS['visiteur_session']['email'])
     133                          OR (isset($GLOBALS['visiteur_session']['session_email']) AND $email = $GLOBALS['visiteur_session']['session_email'])){
     134                                $newsletter_subscriber = charger_fonction('subscriber','newsletter');
     135                                $infos = $newsletter_subscriber($email);
     136                                if ($infos AND $infos['status']=="on"){
     137                                        $show = false;
     138                                }
     139                        }
     140
     141                        if ($show AND ($p = strpos($flux['data'],"</ul>"))!==false){
     142                                $input = recuperer_fond("formulaires/inc-optin-subscribe",$flux['args']['contexte']);
     143                                $flux['data'] = substr_replace($flux['data'],$input,$p,0);
     144                        }
     145                }
     146        }
     147        return $flux;
     148}
     149
     150/**
     151 * Reinjecter mailsubscriber_optin dans la previsu forum si besoin
     152 * @param $flux
     153 * @return mixed
     154 */
     155function mailsubscribers_formulaire_verifier($flux){
     156        if ($flux['args']['form']=="forum"
     157          AND _request('mailsubscriber_optin')
     158          AND isset($flux['data']['previsu'])){
     159
     160                // reinjecter l'optin dans la previsu
     161                if ($p = strpos($flux['data']['previsu'],"<input")){
     162                        $flux['data']['previsu'] = substr_replace($flux['data']['previsu'],"<input type='hidden' name='mailsubscriber_optin' value='oui' />",$p,0);
     163                }
     164        }
     165        return $flux;
     166}
     167
     168/**
     169 * Traitement de la coche d'optin sur le formulaire inscription et forum
    132170 *
    133171 * @param array $flux
     
    151189                }
    152190        }
     191        if ($flux['args']['form']=="forum"
     192          AND _request('mailsubscriber_optin')
     193          AND (isset($GLOBALS['visiteur_session']['email']) OR isset($GLOBALS['visiteur_session']['session_email']))){
     194                // si on a poste l'optin et on a un email en session
     195
     196                // verifier quand meme que la config autorise cet optin, et que l'inscription s'est bien faite)
     197                include_spip('inc/config');
     198                if (lire_config("mailsubscribers/proposer_comment_optin",0)){
     199                        $email = $nom = "";
     200                        if (isset($GLOBALS['visiteur_session']['email']))
     201                                $email = $GLOBALS['visiteur_session']['email'];
     202                        elseif (isset($GLOBALS['visiteur_session']['session_email']))
     203                                $email = $GLOBALS['visiteur_session']['session_email'];
     204                        if (isset($GLOBALS['visiteur_session']['nom']))
     205                                $nom = $GLOBALS['visiteur_session']['nom'];
     206                        elseif (isset($GLOBALS['visiteur_session']['session_nom']))
     207                                $nom = $GLOBALS['visiteur_session']['session_nom'];
     208                        if ($email){
     209                                // inscrire le nom et email
     210                                $newsletter_subscribe = charger_fonction('subscribe','newsletter');
     211                                $newsletter_subscribe($email,array('nom'=>$nom));
     212                        }
     213                }
     214        }
    153215        return $flux;
    154216}
Note: See TracChangeset for help on using the changeset viewer.