From c699436115700ed1039351b0f252655344ff7a17 Mon Sep 17 00:00:00 2001
From: Cerdic
Date: Tue, 3 Dec 2019 09:32:32 +0100
Subject: [PATCH] Gestion de la config : separer le calcul de l'envoyeur par
defaut, mieux gerer la surcharge, et assurer la compat des autres plugins en
emulant une meta facteur_smtp (mailshot)
---
classes/facteur.php | 15 ++++-----
facteur_administrations.php | 2 +-
formulaires/configurer_facteur.html | 3 ++
formulaires/configurer_facteur.php | 15 +++++----
inc/facteur.php | 49 ++++++++++++++++++++++-------
5 files changed, 56 insertions(+), 28 deletions(-)
diff --git a/classes/facteur.php b/classes/facteur.php
index f1ebffa..ffda28c 100755
--- a/classes/facteur.php
+++ b/classes/facteur.php
@@ -27,15 +27,16 @@ class Facteur extends SPIP\Facteur\FacteurSMTP {
*/
public function __construct($email, $objet, $message_html, $message_texte, $options = array()) {
- $defaut = facteur_config_default();
+ // config eventuellement surchargeee lors de l'appel
+ $config = facteur_config($options);
- // compat ancicenne option smtp
- $defaut['smtp'] = ($defaut['mailer'] === 'smtp' ? 'oui' : 'non');
-
- // On fusionne les options avec d'éventuelles surcharges lors de l'appel
- $options = array_merge($defaut, $options);
+ // compat ancienne option smtp
+ if (isset($options['smtp']) and empty($config['mailer'])) {
+ $config['mailer'] = ($options['smtp'] === 'oui' ? 'smtp' : 'mail');
+ }
- if ($options['smtp'] !== 'oui') {
+ // toute autre config que smtp se degrade en mail()
+ if ($config['mailer'] !== 'smtp') {
unset($options['smtp_host']);
unset($options['smtp_port']);
}
diff --git a/facteur_administrations.php b/facteur_administrations.php
index 6c6dc2d..c307dc9 100755
--- a/facteur_administrations.php
+++ b/facteur_administrations.php
@@ -61,8 +61,8 @@ function facteur_migre_metas_to_config(){
if (isset($GLOBALS['meta']["facteur_smtp"])) {
if (!lire_config("facteur/mailer",'')) {
ecrire_config("facteur/mailer", $GLOBALS['meta']["facteur_smtp"] === 'oui' ? 'smtp' : 'mail');
- effacer_meta('facteur_smtp');
}
+ effacer_meta('facteur_smtp');
}
}
diff --git a/formulaires/configurer_facteur.html b/formulaires/configurer_facteur.html
index 2c182cb..a7afd4a 100644
--- a/formulaires/configurer_facteur.html
+++ b/formulaires/configurer_facteur.html
@@ -118,6 +118,9 @@
+