Changeset 88051 in spip-zone


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

Location:
_plugins_/mailsubscribers/trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/mailsubscribers/trunk/formulaires/configurer_mailsubscribers.html

    r86384 r88051  
    2424                        </li>
    2525                        #SET{name,proposer_signup_optin}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
     26                        <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
     27                                <span class='erreur_message'>(#GET{erreurs})</span>
     28                                ]
     29                                #SET{val,''}
     30                                <input type="hidden" name="#GET{name}" value="#GET{val}" />
     31                                #SET{val,1}
     32                                <div class="choix">
     33                                        <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
     34                                        <label for="#GET{name}_#GET{val}">[(#GET{fl}|concat{':label_',#GET{name},'_',#GET{val}}|_T)]</label>
     35                                </div>
     36                        </li>
     37                        #SET{name,proposer_comment_optin}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    2638                        <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
    2739                                <span class='erreur_message'>(#GET{erreurs})</span>
  • _plugins_/mailsubscribers/trunk/formulaires/configurer_mailsubscribers.php

    r86325 r88051  
    1414        $valeurs = array(
    1515                'proposer_signup_optin' => lire_config('mailsubscribers/proposer_signup_optin',0),
     16                'proposer_comment_optin' => lire_config('mailsubscribers/proposer_comment_optin',0),
    1617                'double_optin' => lire_config('mailsubscribers/double_optin',1),
    1718                'lists' => lire_config('mailsubscribers/lists',array()),
  • _plugins_/mailsubscribers/trunk/lang/mailsubscriberscfg_en.php

    r87348 r88051  
    2121
    2222        'label_proposer_signup_optin_1'=> 'Propose subscription during inscription to website',
     23        'label_proposer_comment_optin_1'=> 'Propose subscription in comment form',
    2324
    2425        'label_listes_auto_auteurs' => 'List of <b>@statut@</b>',
  • _plugins_/mailsubscribers/trunk/lang/mailsubscriberscfg_fr.php

    r86384 r88051  
    2121
    2222        'label_proposer_signup_optin_1'=> 'Proposer l\'inscription à la Newsletter lors de l\'inscription au site',
     23        'label_proposer_comment_optin_1'=> 'Proposer l\'inscription à la Newsletter quand l\'utilisateur rédige un commentaire',
    2324
    2425        'label_listes_auto_auteurs' => 'Liste des <b>@statut@</b>',
  • _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}
  • _plugins_/mailsubscribers/trunk/paquet.xml

    r87397 r88051  
    22        prefix="mailsubscribers"
    33        categorie="communication"
    4         version="1.6.13"
     4        version="1.7.0"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.0.*]"
     
    2323        <pipeline nom="formulaire_charger" inclure="mailsubscribers_pipelines.php" />
    2424        <pipeline nom="formulaire_fond" inclure="mailsubscribers_pipelines.php" />
     25        <pipeline nom="formulaire_verifier" inclure="mailsubscribers_pipelines.php" />
    2526        <pipeline nom="formulaire_traiter" inclure="mailsubscribers_pipelines.php" />
    2627        <pipeline nom="taches_generales_cron" inclure="mailsubscribers_pipelines.php" />
Note: See TracChangeset for help on using the changeset viewer.