Ignore:
Timestamp:
Jun 18, 2011, 3:22:48 PM (10 years ago)
Author:
paladin@…
Message:

Correction du message de confirmation d'abonnement. La balise FORMULAIRE_SPIP_LISTES_INSCRIPTION utilise maintenant le patron messages_abo/standard poour répondre. Reste à revoir le charset, et peut-être le contenu du message (en plus clair, avec un lien cookie)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip-listes/spip-listes_1_9_3/formulaires/spip_listes_inscription.php

    r47530 r48905  
    1717include_spip('inc/spiplistes_api');
    1818
     19
     20/**
     21 * @return array
     22 */
    1923function formulaires_spip_listes_inscription_charger_dist ($id_liste='')
    2024{
     
    2731}
    2832
     33/**
     34 * @return array
     35 */
    2936function formulaires_spip_listes_inscription_verifier_dist ($id_liste='')
    3037{
     
    8087}
    8188
    82 
    83 function formulaires_spip_listes_inscription_traiter_dist ($id_liste='') {
    84        
    85         // enregistre dans spip_auteurs, spip_auteurs_elargis, spip_auteurs_listes                     
    86                        
     89/**
     90 * Traite les donnees du formulaire de saisie
     91 * - valide l'adresse mail
     92 * - l'enregistre si manquant
     93 * - l'abonne aux listes souhaitees
     94 * - envoie un mail de confirmation
     95 * @return array
     96 */
     97function formulaires_spip_listes_inscription_traiter_dist ($id_liste = '') {
     98       
     99        /**
     100         * Un abonné doit etre enregistre
     101         * dans spip_auteurs,
     102         * spip_auteurs_elargis, (historique, pour le format de réception)
     103         * spip_auteurs_listes (table des abonnements)
     104         */
     105       
     106        include_spip('inc/spiplistes_api_courrier');
     107       
    87108        $val['email'] = _request('email');
    88         $val['nom'] = _request('email');
    89         $alea_actuel = creer_uniqid();
    90         $alea_futur = creer_uniqid();
    91         $val['alea_actuel'] = $alea_actuel;
    92         $val['alea_futur'] = $alea_futur;
    93         $val['low_sec'] = '';
    94         $val['statut'] = 'aconfirmer';
    95        
    96         $format = _request('format_abo');
    97         $listes = _request('listes');
    98 
    99         // si l'auteur existe deja,
    100         $auteur = spiplistes_auteurs_auteur_select('id_auteur,statut,lang'
    101                                                                                            , 'email='.sql_quote($val['email']));
     109        $val['email'] = email_valide ($val['email']);
     110       
     111        if ($val['email'])
     112        {
     113                $val['nom'] = _request('email');
     114                $val['lang'] = _request('lang');
     115                if (!$val['lang']) {
     116                        $val['lang'] = $GLOBALS['meta']['langue_site'];
     117                }
     118                $val['alea_actuel'] = creer_uniqid();
     119                $val['alea_futur'] = creer_uniqid();
     120                $val['low_sec'] = '';
     121                $val['statut'] = 'aconfirmer';
     122               
     123                $format = _request('format_abo');
     124                if (!$format) {
     125                        $format = spiplistes_format_abo_default ();
     126                }
     127                $listes = _request('listes');
     128                spiplistes_debug_log ('format '.$format);
     129        }
     130       
     131        /**
     132         * Verifier si l'auteur existe deja,
     133         */
     134        if ($val['email'])
     135        {
     136                $auteur = spiplistes_auteurs_auteur_select('id_auteur,nom,statut,lang'
     137                                                                                           , 'email='.sql_quote($val['email'])
     138                                        );
     139        }
     140       
    102141        if ($auteur)
    103142        {
    104                 $id_auteur = $auteur['id_auteur'];
    105                 // reactiver le compte si necessaire
     143                /**
     144                 * Si le compte existe, le reactivier
     145                 */
     146                $contexte['id_auteur'] = $id_auteur = $auteur['id_auteur'];
    106147                if ($auteur['statut'] == '5poubelle')
    107148                {
    108                         spiplistes_auteurs_auteur_statut_modifier ($id_auteur, 'aconfirmer');
    109                 }
     149                        $new_statut = 'aconfirmer';
     150                        spiplistes_auteurs_auteur_statut_modifier ($id_auteur, $new_statut);
     151                        $auteur['statut'] = $new_statut;
     152                }
     153                $contexte['nouvel_inscription'] = 'non';
     154                $contexte['nom'] = $auteur['nom'];
     155                $contexte['statut'] = $auteur['statut'];
     156                $contexte['lang'] = ($auteur['lang'])
     157                                                        ? $auteur['lang']
     158                                                        : $GLOBALS['meta']['langue_site']
     159                                                        ;
    110160                spiplistes_debug_log ('inscription auteur #'.$id_auteur.' email:'.$val['email']);
    111161        }
    112162        else
    113163        {
    114                 // creer le compte abonne'
     164                /**
     165                 * Si le compte n'existe pas, le créer
     166                 */
    115167                if ($id_auteur = spiplistes_auteurs_auteur_insertq ($val))
    116168                {
    117                         sql_insertq(
    118                                         'spip_auteurs_elargis'
    119                                   , array('id_auteur'=>$id_auteur
    120                                                  ,'spip_listes_format'=>$format
    121                                                  )
    122                                   );
    123                 }
     169                        spiplistes_format_abo_modifier ($id_auteur, $format);
     170                }
     171                $contexte['nouvel_inscription'] = 'oui';
     172                $contexte['id_auteur'] = $id_auteur;
     173                $contexte['nom'] = $val['nom'];
     174                $contexte['statut'] = $val['statut'];
     175                $contexte['lang'] = $GLOBALS['meta']['langue_site'];
     176
    124177                spiplistes_debug_log ('NEW inscription email:'.$val['email']);
    125                 $lang = $GLOBALS['meta']['langue_site'];
    126178        }
    127179       
    128180        if ($listes) {
     181                /**
     182                 * @todo a optimiser (une seule req)
     183                 */
    129184                foreach($listes as $liste) {
    130185                        sql_insertq ('spip_auteurs_listes'
    131                                         , array('id_auteur'=>$id_auteur
    132                                                         ,'id_liste'=>$liste
     186                                        , array('id_auteur' => $id_auteur
     187                                                        ,'id_liste' => $liste
    133188                                                        )
    134189                                        );
     
    136191        }
    137192       
    138         // envoyer mail de confirmation
    139         if (
    140                 spiplistes_envoyer_mail (
     193        /**
     194         * Construit le message à partir du patron
     195         */
     196        if ($id_auteur > 0)
     197        {
     198                $cur_format = spiplistes_format_abo_demande ($id_auteur);
     199                if (!$cur_format)
     200                {
     201                        $cur_format = $format;
     202                        spiplistes_format_abo_modifier ($id_auteur, $format);
     203                }
     204                $contexte['format'] = $cur_format;
     205                $nom_site_spip = spiplistes_nom_site_texte ($lang);
     206                $email_objet = '['.$nom_site_spip.'] '._T('spiplistes:confirmation_inscription');
     207                //$email_contenu = spiplistes_preparer_message (
     208                //                                              $email_objet
     209                //                                              , spiplistes_patron_message()
     210                //                                              , $contexte
     211                //                                      );
     212                /**
     213                * Assemble le patron
     214                * Obtient en retour le contenu en version html et texte
     215                */
     216                $path_patron = _SPIPLISTES_PATRONS_MESSAGES_DIR . spiplistes_patron_message();
     217                spiplistes_debug_log ('Patron: '.$path_patron);
     218                list($courrier_html, $courrier_texte) = spiplistes_courriers_assembler_patron (
     219                        $path_patron
     220                        , $contexte);
     221                spiplistes_debug_log ('Messages size: html: '.strlen($courrier_html));
     222                spiplistes_debug_log ('Messages size: text: '.strlen($courrier_texte));
     223               
     224                $email_contenu = array(
     225                                /**
     226                                 * La version HTML du message
     227                                 */
     228                                'html' => '<html>' . PHP_EOL
     229                                        . '<body>' . PHP_EOL
     230                                        . $courrier_html
     231                                        . '</body>' . PHP_EOL
     232                                        . '</html>' . PHP_EOL
     233                                /**
     234                                 * Et la version texte
     235                                 */
     236                                , 'texte' => $courrier_texte
     237                                );
     238        }
     239       
     240        /**
     241         * envoyer mail de confirmation
     242         */
     243        if ($id_auteur
     244                && spiplistes_envoyer_mail (
    141245                        $val['email']
    142                         , _T('spiplistes:confirmation_inscription')
    143                         , _T('spiplistes:inscription_reponses_s'
    144                                  , array('s' => spiplistes_nom_site_texte ($lang))
    145                                  )
     246                        , $email_objet
     247                        , $email_contenu
     248                        , false
     249                        , ''
     250                        , $format
    146251           )
    147252        ) {
Note: See TracChangeset for help on using the changeset viewer.