Changeset 48905 in spip-zone for _plugins_/spip-listes/spip-listes_1_9_3/formulaires/spip_listes_inscription.php
- Timestamp:
- Jun 18, 2011, 3:22:48 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/spip-listes/spip-listes_1_9_3/formulaires/spip_listes_inscription.php
r47530 r48905 17 17 include_spip('inc/spiplistes_api'); 18 18 19 20 /** 21 * @return array 22 */ 19 23 function formulaires_spip_listes_inscription_charger_dist ($id_liste='') 20 24 { … … 27 31 } 28 32 33 /** 34 * @return array 35 */ 29 36 function formulaires_spip_listes_inscription_verifier_dist ($id_liste='') 30 37 { … … 80 87 } 81 88 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 */ 97 function 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 87 108 $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 102 141 if ($auteur) 103 142 { 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']; 106 147 if ($auteur['statut'] == '5poubelle') 107 148 { 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 ; 110 160 spiplistes_debug_log ('inscription auteur #'.$id_auteur.' email:'.$val['email']); 111 161 } 112 162 else 113 163 { 114 // creer le compte abonne' 164 /** 165 * Si le compte n'existe pas, le créer 166 */ 115 167 if ($id_auteur = spiplistes_auteurs_auteur_insertq ($val)) 116 168 { 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 124 177 spiplistes_debug_log ('NEW inscription email:'.$val['email']); 125 $lang = $GLOBALS['meta']['langue_site'];126 178 } 127 179 128 180 if ($listes) { 181 /** 182 * @todo a optimiser (une seule req) 183 */ 129 184 foreach($listes as $liste) { 130 185 sql_insertq ('spip_auteurs_listes' 131 , array('id_auteur' =>$id_auteur132 ,'id_liste' =>$liste186 , array('id_auteur' => $id_auteur 187 ,'id_liste' => $liste 133 188 ) 134 189 ); … … 136 191 } 137 192 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 ( 141 245 $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 146 251 ) 147 252 ) {
Note: See TracChangeset
for help on using the changeset viewer.