Changeset 48905 in spip-zone
- Timestamp:
- Jun 18, 2011, 3:22:48 PM (10 years ago)
- Location:
- _plugins_/spip-listes/spip-listes_1_9_3
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/spip-listes/spip-listes_1_9_3/balise/formulaire_abonnement.php
r47554 r48905 449 449 450 450 // format d'envoi par defaut pour le premier envoi de confirmation 451 $abonne['format'] = spiplistes_format s_abo_default();451 $abonne['format'] = spiplistes_format_abo_default(); 452 452 453 453 // creation du compte ... … … 524 524 525 525 526 function spiplistes_preparer_message ($objet, $patron, $contexte) {527 528 // si pas encore abonne' ou desabonne', pas de format ! donc forcer a texte529 $format = ($contexte['format'] == 'html') ? $contexte['format'] : ($contexte['format'] = 'texte');530 531 $contexte['patron'] = $patron;532 $path_patron = _SPIPLISTES_PATRONS_MESSAGES_DIR . $patron;533 534 list($message_html, $message_texte) = spiplistes_assembler_patron($path_patron, $contexte);535 536 $charset = $GLOBALS['meta']['spiplistes_charset_envoi'];537 538 if($charset != $GLOBALS['meta']['charset'])539 {540 include_spip('inc/charsets');541 if($format == 'html') {542 $message_html = unicode2charset(charset2unicode($message_html), $charset);543 }544 //$message_texte = unicode2charset(charset2unicode($message_texte), $charset);545 $message_texte = spiplistes_translate_2_charset ($message_texte, $charset);546 }547 $email_a_envoyer = array();548 $email_a_envoyer['texte'] = new phpMail('', $objet, '', $message_texte, $charset);549 if($format == 'html') {550 $email_a_envoyer['html'] = new phpMail('', $objet, $message_html, $message_texte, $charset);551 $email_a_envoyer['html']->Body = "<html>\n\n<body>\n\n" . $message_html . "\n\n</body></html>";552 $email_a_envoyer['html']->AltBody = $message_texte;553 }554 $email_a_envoyer['texte']->Body = $message_texte ."\n\n";555 $email_a_envoyer[$format]->SetAddress($contexte['email'], $contexte['nom']);556 557 return($email_a_envoyer);558 }559 560 526 561 527 function spiplistes_texte_inventaire_abos ($id_abonne, $type_abo, $nom_site_spip) { … … 586 552 } 587 553 588 /**589 * renvoie le nom du patron pour la composition des messages de gestion590 * (confirmation d'abonnement, modification, etc.)591 * @return string592 * */593 function spiplistes_patron_message () {594 return ('standard');595 } -
_plugins_/spip-listes/spip-listes_1_9_3/exec/spiplistes_config.php
r48255 r48905 307 307 ($GLOBALS['meta']['abonnement_config'] == 'simple') ? $checked1 = $is_checked : $checked2 = $is_checked; 308 308 309 $opt_format_courrier_defaut = spiplistes_format s_abo_default();309 $opt_format_courrier_defaut = spiplistes_format_abo_default(); 310 310 311 311 $page_result .= '' -
_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 ) { -
_plugins_/spip-listes/spip-listes_1_9_3/inc/spiplistes_api.php
r48255 r48905 896 896 * @return string 897 897 */ 898 function spiplistes_format s_abo_default () {898 function spiplistes_format_abo_default () { 899 899 $defaut = spiplistes_pref_lire('opt_format_courrier_defaut'); 900 900 if ( … … 1151 1151 1152 1152 /** 1153 * Renvoie le nom du patron pour la composition des messages de gestion 1154 * (confirmation d'abonnement, modification, etc.) 1155 * @todo boite de sélection dans une page de configuration ? 1156 * @return string 1157 * */ 1158 function spiplistes_patron_message () { 1159 return ('standard'); 1160 } 1161 1162 /** 1153 1163 * Incruster les styles inline 1154 1164 * … … 1189 1199 } 1190 1200 1201 spiplistes_debug_log('Chemin patrons : '.$path_patron); 1202 1191 1203 $patron_html = spiplistes_patron_find_in_path($path_patron, $contexte['lang'], false); 1192 1204 $contexte['patron_html'] = $patron_html; 1205 spiplistes_debug_log('CREATE html version USING '.$patron_html); 1193 1206 1194 1207 $result_html = … … 1495 1508 1496 1509 /** 1497 * utiliser l'api pour pouvoir envoyer par smtp si besoin 1498 * @version CP-20090111 1499 */ 1500 function spiplistes_envoyer_mail ($to, $subject, $message, $from = false, $headers = '', $format = 'texte') { 1510 * Compose le contenu du message via un patron 1511 * Les patrons de messages sont dans ~/patrons/messages_abos 1512 * @param string $objet 1513 * @param string $patron 1514 * @param array $contexte 1515 * @return string 1516 */ 1517 function spiplistes_preparer_message ($objet, $patron, $contexte) { 1518 1519 include_once (_DIR_PLUGIN_SPIPLISTES.'inc/spiplistes_mail.inc.php'); 1520 1521 // si pas encore abonne' ou desabonne', pas de format ! donc forcer a texte 1522 $format = ($contexte['format'] == 'html') ? $contexte['format'] : ($contexte['format'] = 'texte'); 1523 1524 $contexte['patron'] = $patron; 1525 $path_patron = _SPIPLISTES_PATRONS_MESSAGES_DIR . $patron; 1526 1527 list($message_html, $message_texte) = spiplistes_assembler_patron($path_patron, $contexte); 1528 1529 $charset = $GLOBALS['meta']['spiplistes_charset_envoi']; 1530 1531 if($charset != $GLOBALS['meta']['charset']) 1532 { 1533 include_spip('inc/charsets'); 1534 if($format == 'html') { 1535 $message_html = unicode2charset(charset2unicode($message_html), $charset); 1536 } 1537 //$message_texte = unicode2charset(charset2unicode($message_texte), $charset); 1538 $message_texte = spiplistes_translate_2_charset ($message_texte, $charset); 1539 } 1540 $email_a_envoyer = array(); 1541 $email_a_envoyer['texte'] = new phpMail('', $objet, '', $message_texte, $charset); 1542 if($format == 'html') { 1543 $email_a_envoyer['html'] = new phpMail('', $objet, $message_html, $message_texte, $charset); 1544 $email_a_envoyer['html']->Body = "<html>\n\n<body>\n\n" . $message_html . "\n\n</body></html>"; 1545 $email_a_envoyer['html']->AltBody = $message_texte; 1546 } 1547 $email_a_envoyer['texte']->Body = $message_texte ."\n\n"; 1548 $email_a_envoyer[$format]->SetAddress($contexte['email'], $contexte['nom']); 1549 1550 return($email_a_envoyer); 1551 } 1552 1553 /** 1554 * Envoyer un message en tenant compte des prefs SPIP-Listes 1555 * (SMTP ou mail(), simuler l'envoi,....) 1556 * 1557 * Le message ($message) peut être 1558 * - soit un string (au format texte) 1559 * - soit un array ('html' => $contenu_html, 'texte' => $contenu_texte) 1560 * 1561 * @param string $to 1562 * @param string $subject 1563 * @param string|array $message 1564 * @param string|bool $from 1565 * @param string $headers 1566 * @param string $format 1567 * @staticvar string|bool $opt_simuler_envoi 1568 * @version CP-20110618 1569 */ 1570 function spiplistes_envoyer_mail ($to 1571 , $subject 1572 , $message 1573 , $from = false 1574 , $headers = '' 1575 , $format = 'texte') { 1501 1576 1502 1577 static $opt_simuler_envoi; … … 1509 1584 $opt_simuler_envoi = spiplistes_pref_lire('opt_simuler_envoi'); 1510 1585 } 1586 1511 1587 if (!$from) 1512 1588 { … … 1521 1597 } 1522 1598 } 1523 // @TODO: voir email_reply_to ? 1599 /** 1600 * @TODO: voir email_reply_to ? 1601 */ 1524 1602 $reply_to = 'no-reply'.preg_replace("|.*(@[a-z.]+)|i", "$1", email_valide($from)); 1525 1603 1526 1604 if($opt_simuler_envoi == 'oui') { 1527 spiplistes_log( "!!! MAIL SIMULATION MODE !!!");1605 spiplistes_log('!!! MAIL SIMULATION MODE !!!'); 1528 1606 $result = true; 1529 1607 } … … 1533 1611 $email_a_envoyer = array(); 1534 1612 1535 $return_path = spiplistes_return_path ($from);1613 $return_path = spiplistes_return_path ($from); 1536 1614 1537 if(is_array($message) )1615 if(is_array($message) && ($format == 'html')) 1538 1616 { 1617 spiplistes_debug_log ('Messages HTML: '.strlen($message['html'])); 1539 1618 if($format=='html' && isset($message[$format])) { 1540 1619 $email_a_envoyer['html'] = new phpMail($to, $subject, $message['html'], $message['texte'], $charset); … … 1545 1624 $email_a_envoyer['html']->AddCustomHeader("Return-Path: ".$return_path); 1546 1625 $email_a_envoyer['html']->SMTPKeepAlive = true; 1547 $email_a_envoyer['html']->Body = $message['html'] ->Body;1548 $email_a_envoyer['html']->AltBody = $message[' html']->AltBody;1626 $email_a_envoyer['html']->Body = $message['html']; 1627 $email_a_envoyer['html']->AltBody = $message['texte']; 1549 1628 } 1550 $message = $message['texte']->Body;1551 1629 } 1552 1630 //$message = spiplistes_html_entity_decode ($message, $charset); … … 1554 1632 1555 1633 //$email_a_envoyer['texte'] = new phpMail($to, $subject, '', html_entity_decode($message), $charset); 1556 $email_a_envoyer['texte'] = new phpMail($to, $subject, '', $message , $charset);1634 $email_a_envoyer['texte'] = new phpMail($to, $subject, '', $message['texte'], $charset); 1557 1635 $email_a_envoyer['texte']->From = $from ; 1558 1636 if($fromname) $email_a_envoyer['html']->FromName = $fromname ; … … 1561 1639 $email_a_envoyer['texte']->AddCustomHeader('Return-Path: '.$return_path); 1562 1640 $email_a_envoyer['texte']->SMTPKeepAlive = true; 1641 $email_a_envoyer['texte']->Body = $message['texte']; 1563 1642 1564 $result = $email_a_envoyer[$format]->send(); 1565 1643 if ($result = $email_a_envoyer[$format]->send()) 1644 { 1645 $email_a_envoyer['html']->SmtpClose(); 1646 $email_a_envoyer['texte']->SmtpClose(); 1647 } 1648 1566 1649 $msg = "email from $from to $to"; 1567 spiplistes_log(!$result ? "error: $msg not sent": "$msg sent");1650 spiplistes_log(!$result ? 'error: '.$msg.' not sent' : "$msg sent"); 1568 1651 } 1569 1652 return($result); … … 1686 1769 return($result); 1687 1770 } 1771 1688 1772 1689 1773 /******************************************************************************************/ -
_plugins_/spip-listes/spip-listes_1_9_3/inc/spiplistes_api_courrier.php
r48446 r48905 488 488 } 489 489 else { 490 $result = spiplistes_assembler_patron ($path_patron, $contexte);490 $result = spiplistes_assembler_patron ($path_patron, $contexte); 491 491 } 492 492 -
_plugins_/spip-listes/spip-listes_1_9_3/lang/spiplistes_en.php
r48231 r48905 601 601 602 602 // English translation: Pierre ROUSSET : p.rousset@gmail.com from the transalation by Simon simon@okko.org 603 604 -
_plugins_/spip-listes/spip-listes_1_9_3/plugin.xml
r48819 r48905 8 8 <nom><multi>[fr]SPIP-Listes[en]SPIP-Lists[ar]لوائح SPIP[es]SPIP-Listes</multi></nom> 9 9 <auteur>BoOz@rezo.net</auteur> 10 <version>2.020 1</version>10 <version>2.0202</version> 11 11 <version_base>1.98</version_base> 12 12 <etat>test</etat>
Note: See TracChangeset
for help on using the changeset viewer.