Browse Source

Renommage de la configuration facteur_smtp=oui|non en facteur_mailer=mail|smtp pour etre extensible

on ne fait pas d'upgrade de base, on gere la lecture de la nouvelle config et le fallback vers l'ancienne sinon via la fonction facteur_config_mailer()
svn/root/tags/v4.0.3
Cerdic 3 years ago
parent
commit
b21141c326
  1. 23
      classes/facteur.php
  2. 8
      facteur_administrations.php
  3. 2
      facteur_ieconfig_metas.php
  4. 14
      formulaires/configurer_facteur.html
  5. 23
      formulaires/configurer_facteur.php

23
classes/facteur.php

@ -26,6 +26,25 @@ function facteur_log_debug($message,$level){
spip_log("$level: ".trim($message),"facteur"._LOG_DEBUG);
}
/**
* Recuperer la methode du mailer configuree
* avec fallback vers l'ancienne config facteur_smtp
* @return string
*/
function facteur_config_mailer() {
$config_mailer = '';
if (isset($GLOBALS['meta']["facteur_mailer"])) {
$config_mailer = $GLOBALS['meta']["facteur_mailer"];
}
if (!$config_mailer and isset($GLOBALS['meta']["facteur_smtp"])) {
$config_mailer = ($GLOBALS['meta']["facteur_smtp"] === 'oui') ? 'smtp' : 'mail';
}
if (!in_array($config_mailer, array('mail', 'smtp'))) {
$config_mailer = 'mail';
}
return $config_mailer;
}
class Facteur extends PHPMailer {
/**
@ -54,12 +73,14 @@ class Facteur extends PHPMailer {
foreach (array(
'adresse_envoi', 'adresse_envoi_email', 'adresse_envoi_nom', 'forcer_from',
'cc', 'bcc',
'smtp', 'smtp_host', 'smtp_port', 'smtp_auth',
'smtp_host', 'smtp_port', 'smtp_auth',
'smtp_username', 'smtp_password', 'smtp_secure', 'smtp_sender', 'smtp_tls_allow_self_signed',
'filtre_images', 'filtre_iso_8859',
) as $config) {
$defaut[$config] = isset($GLOBALS['meta']["facteur_$config"]) ? $GLOBALS['meta']["facteur_$config"] : '';
}
$defaut['smtp'] = (facteur_config_mailer() === 'smtp' ? 'oui' : 'non');
// On fusionne les options avec d'éventuelles surcharges lors de l'appel
$options = array_merge($defaut, $options);

8
facteur_administrations.php

@ -15,7 +15,7 @@ function facteur_upgrade($nom_meta_base_version, $version_cible) {
$maj = array();
$maj['create'] = array(
array('ecrire_meta','facteur_smtp', 'non'),
array('ecrire_meta','facteur_mailer', 'mail'),
array('ecrire_meta','facteur_smtp_auth', 'non'),
array('ecrire_meta','facteur_smtp_secure', 'non'),
array('ecrire_meta','facteur_smtp_sender', ''),
@ -33,7 +33,7 @@ function facteur_upgrade($nom_meta_base_version, $version_cible) {
function facteur_vieil_upgrade() {
// migration depuis tres ancienne version, a la main
if (isset($GLOBALS['meta']['spip_notifications_version'])) {
ecrire_meta('facteur_smtp', $GLOBALS['meta']['spip_notifications_smtp']);
ecrire_meta('facteur_mailer', ($GLOBALS['meta']['spip_notifications_smtp'] === 'oui') ? 'smtp' : 'mail');
ecrire_meta('facteur_smtp_auth', $GLOBALS['meta']['spip_notifications_smtp_auth']);
ecrire_meta('facteur_smtp_secure', $GLOBALS['meta']['spip_notifications_smtp_secure']);
ecrire_meta('facteur_smtp_sender', $GLOBALS['meta']['spip_notifications_smtp_sender']);
@ -63,9 +63,9 @@ function facteur_vieil_upgrade() {
function facteur_vider_tables($nom_meta_base_version) {
// cfg la dessus, ca serait mieux !
effacer_meta('facteur_version');
effacer_meta('facteur_smtp');
effacer_meta('facteur_smtp'); // vieille config
effacer_meta('facteur_mailer');
effacer_meta('facteur_smtp_auth');
effacer_meta('facteur_smtp_secure');
effacer_meta('facteur_smtp_sender');

2
facteur_ieconfig_metas.php

@ -13,6 +13,6 @@ if (!defined('_ECRIRE_INC_VERSION')) {
function facteur_ieconfig_metas($table) {
$table['facteur']['titre'] = _T('facteur:configuration_facteur');
$table['facteur']['icone'] = 'facteur-16.png';
$table['facteur']['metas_brutes'] = 'facteur_adresse_envoi,facteur_adresse_envoi_nom,facteur_adresse_envoi_email,facteur_smtp,facteur_smtp_host,facteur_smtp_port,facteur_smtp_auth,facteur_smtp_username,facteur_smtp_password,facteur_smtp_secure,facteur_smtp_sender,facteur_filtre_images,facteur_filtre_css,facteur_filtre_iso_8859';
$table['facteur']['metas_brutes'] = 'facteur_adresse_envoi,facteur_adresse_envoi_nom,facteur_adresse_envoi_email,facteur_mailer,facteur_smtp_host,facteur_smtp_port,facteur_smtp_auth,facteur_smtp_username,facteur_smtp_password,facteur_smtp_secure,facteur_smtp_sender,facteur_filtre_images,facteur_filtre_css,facteur_filtre_iso_8859';
return $table;
}

14
formulaires/configurer_facteur.html

@ -51,17 +51,17 @@
<legend><:facteur:configuration_mailer:></legend>
<p class="explication"><:facteur:configuration_smtp_descriptif:></p>
<div class="editer-groupe">
<div class="editer pleine_largeur editer_facteur_smtp [ (#ENV**{erreurs}|table_valeur{facteur_smtp}|oui)erreur]">
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp})</span>]
<div class="editer pleine_largeur editer_facteur_mailer [ (#ENV**{erreurs}|table_valeur{facteur_mailer}|oui)erreur]">
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_mailer})</span>]
<div class="choix">
<input type="radio" name="facteur_smtp" class="radio" value="non" id="facteur_smtp_non"[(#ENV{facteur_smtp,'non'}|=={non}|oui)checked="checked"]/>
<label for="facteur_smtp_non"><:facteur:utiliser_mail:></label>
<input type="radio" name="facteur_mailer" class="radio" value="mail" id="facteur_mailer_mail"[(#ENV{facteur_mailer,'mail'}|=={mail}|oui)checked="checked"]/>
<label for="facteur_mailer_mail"><:facteur:utiliser_mail:></label>
</div>
<div class="choix">
<input type="radio" name="facteur_smtp" class="radio" value="oui" id="facteur_smtp_oui"[(#ENV{facteur_smtp,'non'}|=={oui}|oui)checked="checked"]/>
<label for="facteur_smtp_oui"><:facteur:utiliser_smtp:></label>
<input type="radio" name="facteur_mailer" class="radio" value="smtp" id="facteur_mailer_smtp"[(#ENV{facteur_mailer,'mail'}|=={smtp}|oui)checked="checked"]/>
<label for="facteur_mailer_smtp"><:facteur:utiliser_smtp:></label>
<div class="suite editer-groupe editer_facteur_smtp_param" [(#ENV{facteur_smtp,'non'}|=={non}|oui)style='display:none;']>
<div class="suite editer-groupe editer_facteur_smtp_param" [(#ENV{facteur_mailer,'mail'}|=={smtp}|non)style='display:none;']>
<div class="editer editer_facteur_smtp_host [ (#ENV**{erreurs}|table_valeur{facteur_smtp_host}|oui)erreur]">
<label for="facteur_smtp_host"><:facteur:facteur_smtp_host:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_host})</span>]

23
formulaires/configurer_facteur.php

@ -13,12 +13,14 @@ if (!defined('_ECRIRE_INC_VERSION')) {
function formulaires_configurer_facteur_charger_dist() {
include_spip('inc/config');
include_spip('classes/facteur');
$valeurs = array(
'facteur_adresse_envoi' => lire_config('facteur_adresse_envoi'),
'facteur_adresse_envoi_nom' => lire_config('facteur_adresse_envoi_nom'),
'facteur_adresse_envoi_email' => lire_config('facteur_adresse_envoi_email'),
'facteur_forcer_from' => lire_config('facteur_forcer_from'),
'facteur_smtp' => lire_config('facteur_smtp'),
'facteur_mailer' => facteur_config_mailer(),
'facteur_smtp_host' => lire_config('facteur_smtp_host'),
'facteur_smtp_port' => lire_config('facteur_smtp_port', 25),
'facteur_smtp_auth' => lire_config('facteur_smtp_auth'),
@ -37,7 +39,6 @@ function formulaires_configurer_facteur_charger_dist() {
);
// recuperer le from par defaut actuel pour l'indiquer dans le formulaire
include_spip('classes/facteur');
$facteur = new Facteur('test@example.org', 'Test', '', '', array('adresse_envoi' => 'non'));
$valeurs['_from_defaut'] = $facteur->From;
if ($facteur->FromName) {
@ -55,7 +56,7 @@ function formulaires_configurer_facteur_verifier_dist() {
$erreurs['facteur_adresse_envoi_email'] = _T('form_email_non_valide');
set_request('facteur_adresse_envoi', 'oui');
}
if (_request('facteur_smtp') == 'oui') {
if (_request('facteur_mailer') === 'smtp') {
if (!($h = _request('facteur_smtp_host'))) {
$erreurs['facteur_smtp_host'] = _T('info_obligatoire');
} else {
@ -132,8 +133,8 @@ function formulaires_configurer_facteur_traiter_dist() {
$facteur_forcer_from = _request('facteur_forcer_from');
ecrire_meta('facteur_forcer_from', ($facteur_forcer_from=='oui')?'oui':'non');
$facteur_smtp = _request('facteur_smtp');
ecrire_meta('facteur_smtp', ($facteur_smtp=='oui')?'oui':'non');
$facteur_mailer = _request('facteur_mailer');
ecrire_meta('facteur_mailer', $facteur_mailer);
$facteur_smtp_host = _request('facteur_smtp_host');
ecrire_meta('facteur_smtp_host', $facteur_smtp_host?$facteur_smtp_host:'');
@ -172,17 +173,5 @@ function formulaires_configurer_facteur_traiter_dist() {
$res = array('message_ok' => _T('facteur:config_info_enregistree'));
// faut-il envoyer un message de test ?
if (_request('tester')) {
$res = array();
$destinataire = _request('email_test');
$err = facteur_envoyer_mail_test($destinataire, _T('facteur:corps_email_de_test'));
if ($err) {
$res['message_erreur'] = $err;
} else {
$res['message_ok'] = _T('facteur:email_test_envoye');
}
}
return $res;
}

Loading…
Cancel
Save