Browse Source

La configuration de facteur passe de N metas a une seule meta facteur serialisee, comme c'est l'usage

svn/root/tags/v4.0.3
Cerdic 3 years ago
parent
commit
aa12e15ad3
  1. 18
      classes/facteur.php
  2. 91
      facteur_administrations.php
  3. 9
      facteur_fonctions.php
  4. 72
      formulaires/configurer_facteur.html
  5. 199
      formulaires/configurer_facteur.php
  6. 4
      formulaires/inc-config-facteur-mailer-mail.html
  7. 82
      formulaires/inc-config-facteur-mailer-smtp.html
  8. 2
      formulaires/tester_facteur.php
  9. 2
      lang/facteur_fr.php
  10. 2
      paquet.xml

18
classes/facteur.php

@ -32,13 +32,14 @@ function facteur_log_debug($message,$level){
* @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';
include_spip('inc/config');
// si jamais les meta sont pas migrees... le faire a l'arrache !
if (isset($GLOBALS['meta']["facteur_smtp"])) {
include_spip('facteur_administrations');
facteur_migre_metas_to_config();
}
$config_mailer = lire_config("facteur/mailer",'');
if (!in_array($config_mailer, array('mail', 'smtp'))) {
$config_mailer = 'mail';
}
@ -66,10 +67,12 @@ class Facteur extends PHPMailer {
* @param $message_texte
* @param array $options
*
* @throws Exception
*/
public function __construct($email, $objet, $message_html, $message_texte, $options = array()) {
// On récupère toutes les options par défaut depuis le formulaire de config
$defaut = array();
$defaut['smtp'] = (facteur_config_mailer() === 'smtp' ? 'oui' : 'non');
foreach (array(
'adresse_envoi', 'adresse_envoi_email', 'adresse_envoi_nom', 'forcer_from',
'cc', 'bcc',
@ -77,9 +80,8 @@ class Facteur extends PHPMailer {
'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[$config] = lire_config("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);

91
facteur_administrations.php

@ -14,35 +14,73 @@ if (!defined('_ECRIRE_INC_VERSION')) {
function facteur_upgrade($nom_meta_base_version, $version_cible) {
$maj = array();
include_spip('inc/config');
$maj['create'] = array(
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', ''),
array('ecrire_meta','facteur_filtre_images', 1),
array('ecrire_meta','facteur_filtre_css', 0),
array('ecrire_meta','facteur_filtre_iso_8859', 0),
array('ecrire_meta','facteur_adresse_envoi', 'non'),
array('ecrire_config','facteur/mailer', 'mail'),
array('ecrire_config','facteur/smtp_auth', 'non'),
array('ecrire_config','facteur/smtp_secure', 'non'),
array('ecrire_config','facteur/smtp_sender', ''),
array('ecrire_config','facteur/filtre_images', 0),
array('ecrire_config','facteur/filtre_css', 0),
array('ecrire_config','facteur/filtre_iso_8859', 0),
array('ecrire_config','facteur/adresse_envoi', 'non'),
array('facteur_vieil_upgrade'),
);
$maj['2.0.0'] = array(
array('facteur_migre_metas_to_config'),
);
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}
/**
* Migrer les N metas en une seule meta facteur que l'on accede via les fonctions lire_config/ecrire_config
*/
function facteur_migre_metas_to_config(){
include_spip('inc/config');
// ne pas migrer 2 fois
if (!isset($GLOBALS['meta']["facteur"]) or !@unserialize($GLOBALS['meta']["facteur"])) {
foreach (array(
'adresse_envoi', 'adresse_envoi_email', 'adresse_envoi_nom', 'forcer_from',
'cc', 'bcc',
'mailer',
'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) {
if (isset($GLOBALS['meta']["facteur_$config"])) {
ecrire_config("facteur/$config", $GLOBALS['meta']["facteur_$config"]);
effacer_meta("facteur_$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');
}
}
}
/**
* migration depuis tres ancienne version du plugin spip_notifications, a la main
*/
function facteur_vieil_upgrade() {
// migration depuis tres ancienne version, a la main
if (isset($GLOBALS['meta']['spip_notifications_version'])) {
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']);
ecrire_meta('facteur_filtre_images', $GLOBALS['meta']['spip_notifications_filtre_images']);
ecrire_meta('facteur_filtre_css', $GLOBALS['meta']['spip_notifications_filtre_css']);
ecrire_meta('facteur_filtre_iso_8859', $GLOBALS['meta']['spip_notifications_filtre_iso_8859']);
ecrire_meta('facteur_adresse_envoi', $GLOBALS['meta']['spip_notifications_adresse_envoi']);
ecrire_meta('facteur_adresse_envoi_nom', $GLOBALS['meta']['spip_notifications_adresse_envoi_nom']);
ecrire_meta('facteur_adresse_envoi_email', $GLOBALS['meta']['spip_notifications_adresse_envoi_email']);
ecrire_config('facteur/mailer', ($GLOBALS['meta']['spip_notifications_smtp'] === 'oui') ? 'smtp' : 'mail');
ecrire_config('facteur/smtp_auth', $GLOBALS['meta']['spip_notifications_smtp_auth']);
ecrire_config('facteur/smtp_secure', $GLOBALS['meta']['spip_notifications_smtp_secure']);
ecrire_config('facteur/smtp_sender', $GLOBALS['meta']['spip_notifications_smtp_sender']);
ecrire_config('facteur/filtre_images', $GLOBALS['meta']['spip_notifications_filtre_images']);
ecrire_config('facteur/filtre_css', $GLOBALS['meta']['spip_notifications_filtre_css']);
ecrire_config('facteur/filtre_iso_8859', $GLOBALS['meta']['spip_notifications_filtre_iso_8859']);
ecrire_config('facteur/adresse_envoi', $GLOBALS['meta']['spip_notifications_adresse_envoi']);
ecrire_config('facteur/adresse_envoi_nom', $GLOBALS['meta']['spip_notifications_adresse_envoi_nom']);
ecrire_config('facteur/adresse_envoi_email', $GLOBALS['meta']['spip_notifications_adresse_envoi_email']);
// supprimer l'ancien nommage
effacer_meta('spip_notifications_smtp');
effacer_meta('spip_notifications_smtp_auth');
@ -63,19 +101,6 @@ function facteur_vieil_upgrade() {
function facteur_vider_tables($nom_meta_base_version) {
effacer_meta('facteur_version');
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');
effacer_meta('facteur_filtre_images');
effacer_meta('facteur_filtre_css');
effacer_meta('facteur_filtre_iso_8859');
effacer_meta('facteur_adresse_envoi');
effacer_meta('facteur_adresse_envoi_nom');
effacer_meta('facteur_adresse_envoi_email');
effacer_meta('facteur_cc');
effacer_meta('facteur_bcc');
effacer_meta('facteur');
effacer_meta($nom_meta_base_version);
}

9
facteur_fonctions.php

@ -86,11 +86,12 @@ function facteur_mail_html2text($html){
* Le contexte du pipeline modifé
*/
function facteur_formulaire_fond($flux) {
if (($flux['args']['form'] == 'configurer_identite')
&& (isset($GLOBALS['meta']['facteur_adresse_envoi']) && $GLOBALS['meta']['facteur_adresse_envoi'] == 'oui')
&& (isset($GLOBALS['meta']['facteur_adresse_envoi_email']) && strlen($GLOBALS['meta']['facteur_adresse_envoi_email']) > 0)) {
if ($flux['args']['form'] == 'configurer_identite'
and include_spip('inc/config')
and lire_config('facteur/adresse_envoi') === 'oui'
and strlen($email = lire_config('facteur/adresse_envoi_email', '')) ) {
$url = generer_url_ecrire('configurer_facteur');
$ajout = '<p class="notice" style="margin-top:0">'._T('facteur:message_identite_email', array('url' => $url)).'</p>';
$ajout = '<p class="notice" style="margin-top:0">'._T('facteur:message_identite_email', array('url' => $url, 'email' => $email)).'</p>';
if (preg_match(",<(div|li) [^>]*class=[\"']editer editer_email_webmaster.*>,Uims", $flux['data'], $match)) {
$p = strpos($flux['data'], $match[0]);
$p = strpos($flux['data'], "<input", $p);

72
formulaires/configurer_facteur.html

@ -10,30 +10,30 @@
<fieldset>
<legend><:facteur:configuration_adresse_envoi:></legend>
<div class="editer-groupe">
<div class="editer pleine_largeur editer_facteur_adresse_envoi [ (#ENV**{erreurs}|table_valeur{facteur_adresse_envoi}|oui)erreur]">
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_adresse_envoi})</span>]
<div class="editer pleine_largeur editer_adresse_envoi [ (#ENV**{erreurs}|table_valeur{adresse_envoi}|oui)erreur]">
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{adresse_envoi})</span>]
<div class="choix">
<input type="radio" name="facteur_adresse_envoi" class="radio" value="non" id="facteur_adresse_envoi_non"[(#ENV{facteur_adresse_envoi,'non'}|=={non}|oui)checked="checked"]/>
<label for="facteur_adresse_envoi_non"><:facteur:utiliser_reglages_site{from=#ENV{_from_defaut}}:></label>
<input type="radio" name="adresse_envoi" class="radio" value="non" id="adresse_envoi_non"[(#ENV{adresse_envoi,'non'}|=={non}|oui)checked="checked"]/>
<label for="adresse_envoi_non"><:facteur:utiliser_reglages_site{from=#ENV{_from_defaut}}:></label>
</div>
<div class="choix">
<input type="radio" name="facteur_adresse_envoi" class="radio" value="oui" id="facteur_adresse_envoi_oui"[(#ENV{facteur_adresse_envoi,'non'}|=={oui}|oui)checked="checked"]/>
<label for="facteur_adresse_envoi_oui"><:facteur:personnaliser:></label>
<div class="suite editer-groupe"[(#ENV{facteur_adresse_envoi,'non'}|=={non}|oui)style='display:none;']>
<div class="editer editer_facteur_adresse_envoi_perso editer_facteur_adresse_envoi_nom [ (#ENV**{erreurs}|table_valeur{facteur_adresse_envoi_nom}|oui)erreur]">
<label for="facteur_adresse_envoi_nom"><:facteur:facteur_adresse_envoi_nom:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_adresse_envoi_nom})</span>]
<input type="text" name="facteur_adresse_envoi_nom" class="text" value="#ENV**{facteur_adresse_envoi_nom}" id="facteur_adresse_envoi_nom" />
<input type="radio" name="adresse_envoi" class="radio" value="oui" id="adresse_envoi_oui"[(#ENV{adresse_envoi,'non'}|=={oui}|oui)checked="checked"]/>
<label for="adresse_envoi_oui"><:facteur:personnaliser:></label>
<div class="suite editer-groupe"[(#ENV{adresse_envoi,'non'}|=={non}|oui)style='display:none;']>
<div class="editer editer_adresse_envoi_perso editer_adresse_envoi_nom [ (#ENV**{erreurs}|table_valeur{adresse_envoi_nom}|oui)erreur]">
<label for="adresse_envoi_nom"><:facteur:facteur_adresse_envoi_nom:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{adresse_envoi_nom})</span>]
<input type="text" name="adresse_envoi_nom" class="text" value="#ENV**{adresse_envoi_nom}" id="adresse_envoi_nom" />
</div>
<div class="editer editer_facteur_adresse_envoi_perso editer_facteur_adresse_envoi_email [ (#ENV**{erreurs}|table_valeur{facteur_adresse_envoi_email}|oui)erreur]">
<label for="facteur_adresse_envoi_email"><:facteur:facteur_adresse_envoi_email:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_adresse_envoi_email})</span>]
<input type="text" name="facteur_adresse_envoi_email" class="text" value="#ENV**{facteur_adresse_envoi_email}" id="facteur_adresse_envoi_email" />
<div class="editer editer_adresse_envoi_perso editer_adresse_envoi_email [ (#ENV**{erreurs}|table_valeur{adresse_envoi_email}|oui)erreur]">
<label for="adresse_envoi_email"><:facteur:facteur_adresse_envoi_email:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{adresse_envoi_email})</span>]
<input type="text" name="adresse_envoi_email" class="text" value="#ENV**{adresse_envoi_email}" id="adresse_envoi_email" />
</div>
</div>
</div>
</div>
#SET{name,facteur_forcer_from}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
#SET{name,forcer_from}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<div class="editer pleine_largeur editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
<span class='erreur_message'>(#GET{erreurs})</span>
]
@ -51,16 +51,16 @@
<legend><:facteur:configuration_mailer:></legend>
<p class="explication"><:facteur:configuration_smtp_descriptif:></p>
<div class="editer-groupe">
<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="editer pleine_largeur editer_mailer [ (#ENV**{erreurs}|table_valeur{mailer}|oui)erreur]">
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{mailer})</span>]
<INCLURE{fond=formulaires/inc-config-facteur-mailer-mail,env} />
<INCLURE{fond=formulaires/inc-config-facteur-mailer-smtp,env} />
</div>
<div class="editer editer_facteur_smtp_sender [ (#ENV**{erreurs}|table_valeur{facteur_smtp_sender}|oui)erreur]">
<label for="facteur_smtp_sender"><:facteur:facteur_smtp_sender:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_sender})</span>]
<div class="editer editer_smtp_sender [ (#ENV**{erreurs}|table_valeur{smtp_sender}|oui)erreur]">
<label for="smtp_sender"><:facteur:facteur_smtp_sender:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{smtp_sender})</span>]
<p class="explication"><:facteur:facteur_smtp_sender_descriptif:></p>
<input type="text" name="facteur_smtp_sender" class="text" value="#ENV**{facteur_smtp_sender}" id="facteur_smtp_sender" />
<input type="text" name="smtp_sender" class="text" value="#ENV**{smtp_sender}" id="smtp_sender" />
</div>
</div>
</fieldset>
@ -68,16 +68,16 @@
<fieldset>
<legend><:facteur:facteur_filtres:></legend>
<div class="editer-groupe">
<div class="editer pleine_largeur editer_facteur_filtres[ (#ENV**{erreurs}|table_valeur{facteur_filtres}|oui)erreur]">
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_secure})</span>]
<div class="editer pleine_largeur editer_filtres[ (#ENV**{erreurs}|table_valeur{filtres}|oui)erreur]">
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{filtres})</span>]
<p class="explication"><:facteur:facteur_filtres_descriptif:></p>
<div class="choix">
<input type="checkbox" name="facteur_filtre_images" class="checkbox" value="1" id="facteur_filtre_images"[(#ENV{facteur_filtre_images,''}|=={1}|oui)checked="checked"]/>
<label for="facteur_filtre_images"><:facteur:facteur_filtre_images:></label>
<input type="checkbox" name="filtre_images" class="checkbox" value="1" id="filtre_images"[(#ENV{filtre_images,''}|=={1}|oui)checked="checked"]/>
<label for="filtre_images"><:facteur:facteur_filtre_images:></label>
</div>
<div class="choix">
<input type="checkbox" name="facteur_filtre_iso_8859" class="checkbox" value="1" id="facteur_filtre_iso_8859"[(#ENV{facteur_filtre_iso_8859,''}|=={1}|oui)checked="checked"]/>
<label for="facteur_filtre_iso_8859"><:facteur:facteur_filtre_iso_8859:></label>
<input type="checkbox" name="filtre_iso_8859" class="checkbox" value="1" id="filtre_iso_8859"[(#ENV{filtre_iso_8859,''}|=={1}|oui)checked="checked"]/>
<label for="filtre_iso_8859"><:facteur:facteur_filtre_iso_8859:></label>
</div>
</div>
</div>
@ -87,15 +87,15 @@
<legend><:facteur:facteur_copies:></legend>
<p class="explication"><:facteur:facteur_copies_descriptif:></p>
<div class="editer-groupe">
<div class="editer editer_facteur_copies editer_facteur_cc [ (#ENV**{erreurs}|table_valeur{facteur_cc}|oui)erreur]">
<label for="facteur_cc"><:facteur:facteur_cc:></label>
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_cc})</span>]
<input type="text" name="facteur_cc" class="text" value="#ENV**{facteur_cc}" id="facteur_cc" />
<div class="editer editer_copies editer_cc [ (#ENV**{erreurs}|table_valeur{cc}|oui)erreur]">
<label for="cc"><:facteur:facteur_cc:></label>
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{cc})</span>]
<input type="text" name="cc" class="text" value="#ENV**{cc}" id="cc" />
</div>
<div class="editer editer_facteur_copies editer_facteur_bcc [ (#ENV**{erreurs}|table_valeur{facteur_bcc}|oui)erreur]">
<label for="facteur_bcc"><:facteur:facteur_bcc:></label>
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_bcc})</span>]
<input type="text" name="facteur_bcc" class="text" value="#ENV**{facteur_bcc}" id="facteur_bcc" />
<div class="editer editer_copies editer_bcc [ (#ENV**{erreurs}|table_valeur{bcc}|oui)erreur]">
<label for="bcc"><:facteur:facteur_bcc:></label>
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{bcc})</span>]
<input type="text" name="bcc" class="text" value="#ENV**{bcc}" id="bcc" />
</div>
</div>
</fieldset>

199
formulaires/configurer_facteur.php

@ -12,32 +12,16 @@ 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_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'),
'facteur_smtp_username' => lire_config('facteur_smtp_username'),
'facteur_smtp_password' => '',
'_facteur_smtp_password' => lire_config('facteur_smtp_password'),
'facteur_smtp_secure' => lire_config('facteur_smtp_secure'),
'facteur_smtp_tls_allow_self_signed'=> lire_config('facteur_smtp_tls_allow_self_signed'),
'facteur_smtp_sender' => lire_config('facteur_smtp_sender'),
'facteur_filtre_images' => lire_config('facteur_filtre_images'),
'facteur_filtre_iso_8859' => lire_config('facteur_filtre_iso_8859'),
'facteur_cc' => lire_config('facteur_cc'),
'facteur_bcc' => lire_config('facteur_bcc'),
'email_test' => lire_config('facteur_adresse_envoi') == 'oui' ? lire_config('facteur_adresse_envoi_email') : $GLOBALS['meta']['email_webmaster'],
'tester' => '',
);
include_spip('inc/cvt_configurer');
$valeurs = cvtconf_formulaires_configurer_recense('configurer_facteur');
$valeurs['editable'] = true;
$valeurs['_smtp_password'] = isset($valeurs['smtp_password']) ? $valeurs['smtp_password'] : '';
$valeurs['smtp_password'] = '';
include_spip('classes/facteur');
// recuperer le from par defaut actuel pour l'indiquer dans le formulaire
$facteur = new Facteur('test@example.org', 'Test', '', '', array('adresse_envoi' => 'non'));
$valeurs['_from_defaut'] = $facteur->From;
@ -51,127 +35,94 @@ function formulaires_configurer_facteur_charger_dist() {
function formulaires_configurer_facteur_verifier_dist() {
$erreurs = array();
include_spip('inc/config');
if ($email = _request('facteur_adresse_envoi_email')
if ($email = _request('adresse_envoi_email')
and !email_valide($email)) {
$erreurs['facteur_adresse_envoi_email'] = _T('form_email_non_valide');
set_request('facteur_adresse_envoi', 'oui');
$erreurs['adresse_envoi_email'] = _T('form_email_non_valide');
set_request('adresse_envoi', 'oui');
}
if (_request('facteur_mailer') === 'smtp') {
if (!($h = _request('facteur_smtp_host'))) {
$erreurs['facteur_smtp_host'] = _T('info_obligatoire');
} else {
$h = trim($h);
$regexp_ip_valide = '#^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))|((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$#';
// Source : http://www.d-sites.com/2008/10/09/regex-ipv4-et-ipv6/
if (!preg_match($regexp_ip_valide, $h)) { // ce n'est pas une IP
if (!preg_match(';^([^.\s/?:]+[.])*[^.\s/?:]+$;', $h)
or gethostbyname($h) == $h) {
$erreurs['facteur_smtp_host'] = _T('facteur:erreur_invalid_host');
}
} else {
if (gethostbyaddr($h) == $h) {
$erreurs['facteur_smtp_host'] = _T('facteur:erreur_invalid_host');
}
}
set_request('facteur_smtp_host', $h);
}
if (!($p=_request('facteur_smtp_port'))) {
$erreurs['facteur_smtp_port'] = _T('info_obligatoire');
} elseif (!preg_match(';^[0-9]+$;', $p) or !intval($p)) {
$erreurs['facteur_smtp_port'] = _T('facteur:erreur_invalid_port');
}
if (!_request('facteur_smtp_auth')) {
$erreurs['facteur_smtp_auth'] = _T('info_obligatoire');
}
if (_request('facteur_smtp_auth')=='oui') {
if (!_request('facteur_smtp_username')) {
$erreurs['facteur_smtp_username'] = _T('info_obligatoire');
}
if (!_request('facteur_smtp_password') and !lire_config('facteur_smtp_password')) {
$erreurs['facteur_smtp_password'] = _T('info_obligatoire');
}
}
$mailer = _request('mailer');
if (function_exists($verifier_mailer = 'formulaires_configurer_facteur_verifier_' . $mailer)) {
$verifier_mailer($erreurs);
}
if ($emailcc = _request('facteur_cc')
if ($emailcc = _request('cc')
and !email_valide($emailcc)) {
$erreurs['facteur_cc'] = _T('form_email_non_valide');
$erreurs['cc'] = _T('form_email_non_valide');
}
if ($emailbcc = _request('facteur_bcc')
if ($emailbcc = _request('bcc')
and !email_valide($emailbcc)) {
$erreurs['facteur_bcc'] = _T('form_email_non_valide');
}
if (_request('tester')) {
if (!$email = _request('email_test')) {
$erreurs['email_test'] = _T('info_obligatoire');
} elseif (!email_valide($email)) {
$erreurs['email_test'] = _T('form_email_non_valide');
}
$erreurs['bcc'] = _T('form_email_non_valide');
}
if (count($erreurs) > 0) {
$erreurs['message_erreur'] = _T('facteur:erreur_generale');
}
return $erreurs;
}
function formulaires_configurer_facteur_traiter_dist() {
include_spip('inc/meta');
$facteur_adresse_envoi = _request('facteur_adresse_envoi');
ecrire_meta('facteur_adresse_envoi', ($facteur_adresse_envoi=='oui')?'oui':'non');
$facteur_adresse_envoi_nom = _request('facteur_adresse_envoi_nom');
ecrire_meta('facteur_adresse_envoi_nom', $facteur_adresse_envoi_nom?$facteur_adresse_envoi_nom:'');
$facteur_adresse_envoi_email = _request('facteur_adresse_envoi_email');
ecrire_meta('facteur_adresse_envoi_email', $facteur_adresse_envoi_email?$facteur_adresse_envoi_email:'');
$facteur_forcer_from = _request('facteur_forcer_from');
ecrire_meta('facteur_forcer_from', ($facteur_forcer_from=='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:'');
$facteur_smtp_port = _request('facteur_smtp_port');
ecrire_meta('facteur_smtp_port', strlen($facteur_smtp_port)?intval($facteur_smtp_port):'');
$facteur_smtp_auth = _request('facteur_smtp_auth');
ecrire_meta('facteur_smtp_auth', ($facteur_smtp_auth=='oui')?'oui':'non');
$facteur_smtp_username = _request('facteur_smtp_username');
ecrire_meta('facteur_smtp_username', $facteur_smtp_username);
if ($facteur_smtp_password = _request('facteur_smtp_password')) {
ecrire_meta('facteur_smtp_password', $facteur_smtp_password);
/**
* Verifier la configuration du smtp si besoin
* @param $erreurs
*/
function formulaires_configurer_facteur_verifier_smtp(&$erreurs){
if (!($h = _request('smtp_host'))) {
$erreurs['smtp_host'] = _T('info_obligatoire');
} else {
$h = trim($h);
$regexp_ip_valide = '#^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))|((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$#';
// Source : http://www.d-sites.com/2008/10/09/regex-ipv4-et-ipv6/
if (!preg_match($regexp_ip_valide, $h)) { // ce n'est pas une IP
if (!preg_match(';^([^.\s/?:]+[.])*[^.\s/?:]+$;', $h)
or gethostbyname($h) == $h) {
$erreurs['smtp_host'] = _T('facteur:erreur_invalid_host');
}
} else {
if (gethostbyaddr($h) == $h) {
$erreurs['smtp_host'] = _T('facteur:erreur_invalid_host');
}
}
set_request('smtp_host', $h);
}
if (!($p=_request('smtp_port'))) {
$erreurs['smtp_port'] = _T('info_obligatoire');
} elseif (!preg_match(';^[0-9]+$;', $p) or !intval($p)) {
$erreurs['smtp_port'] = _T('facteur:erreur_invalid_port');
}
$facteur_smtp_secure = _request('facteur_smtp_secure');
ecrire_meta('facteur_smtp_secure', in_array($facteur_smtp_secure, array('non', 'ssl', 'tls')) ? $facteur_smtp_secure : 'non');
$facteur_smtp_tls_allow_self_signed = _request('facteur_smtp_tls_allow_self_signed');
ecrire_meta('facteur_smtp_tls_allow_self_signed', ($facteur_smtp_tls_allow_self_signed=='oui')?'oui':'non');
$facteur_smtp_sender = _request('facteur_smtp_sender');
ecrire_meta('facteur_smtp_sender', $facteur_smtp_sender);
if (!_request('smtp_auth')) {
$erreurs['smtp_auth'] = _T('info_obligatoire');
}
ecrire_meta('facteur_filtre_images', intval(_request('facteur_filtre_images')));
ecrire_meta('facteur_filtre_iso_8859', intval(_request('facteur_filtre_iso_8859')));
if (_request('smtp_auth')=='oui') {
if (!_request('smtp_username')) {
$erreurs['smtp_username'] = _T('info_obligatoire');
}
if (!_request('smtp_password') and !lire_config('facteur/smtp_password')) {
$erreurs['smtp_password'] = _T('info_obligatoire');
}
}
}
$facteur_cc = _request('facteur_cc');
ecrire_meta('facteur_cc', $facteur_cc?$facteur_cc:'');
function formulaires_configurer_facteur_traiter_dist() {
include_spip('inc/config');
$facteur_bcc = _request('facteur_bcc');
ecrire_meta('facteur_bcc', $facteur_bcc?$facteur_bcc:'');
// reinjecter les password pas saisis si besoin
$restore_after_save = array();
foreach(array(
'smtp_password',
) as $_key){
if (!_request($_key)){
$restore_after_save[$_key] = '';
set_request($_key,lire_config('facteur/'.$_key));
}
}
include_spip('inc/cvt_configurer');
$trace = cvtconf_formulaires_configurer_enregistre('configurer_facteur', array());
$res = array('message_ok' => _T('facteur:config_info_enregistree') . $trace, 'editable' => true);
$res = array('message_ok' => _T('facteur:config_info_enregistree'));
foreach($restore_after_save as $k=>$v){
set_request($k,$v);
}
return $res;
}

4
formulaires/inc-config-facteur-mailer-mail.html

@ -1,4 +1,4 @@
<div class="choix">
<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>
<input type="radio" name="mailer" class="radio" value="mail" id="mailer_mail"[(#ENV{mailer,'mail'}|=={mail}|oui)checked="checked"]/>
<label for="mailer_mail"><:facteur:utiliser_mail:></label>
</div>

82
formulaires/inc-config-facteur-mailer-smtp.html

@ -1,69 +1,69 @@
<div class="choix">
<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>
<input type="radio" name="mailer" class="radio" value="smtp" id="mailer_smtp"[(#ENV{mailer,'mail'}|=={smtp}|oui)checked="checked"]/>
<label for="mailer_smtp"><:facteur:utiliser_smtp:></label>
<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>]
<input type="text" name="facteur_smtp_host" class="text" value="#ENV**{facteur_smtp_host}" id="facteur_smtp_host" />
<div class="suite editer-groupe editer_smtp_param" [(#ENV{mailer,'mail'}|=={smtp}|non)style='display:none;']>
<div class="editer editer_smtp_host [ (#ENV**{erreurs}|table_valeur{smtp_host}|oui)erreur]">
<label for="smtp_host"><:facteur:facteur_smtp_host:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{smtp_host})</span>]
<input type="text" name="smtp_host" class="text" value="#ENV**{smtp_host}" id="smtp_host" />
</div>
<div class="editer editer_facteur_smtp_port [ (#ENV**{erreurs}|table_valeur{facteur_smtp_port}|oui)erreur]">
<label for="facteur_smtp_port"><:facteur:facteur_smtp_port:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_port})</span>]
<input type="text" name="facteur_smtp_port" class="text" value="#ENV**{facteur_smtp_port}" id="facteur_smtp_port" />
<div class="editer editer_smtp_port [ (#ENV**{erreurs}|table_valeur{smtp_port}|oui)erreur]">
<label for="smtp_port"><:facteur:facteur_smtp_port:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{smtp_port})</span>]
<input type="text" name="smtp_port" class="text" value="#ENV**{smtp_port}" id="smtp_port" />
</div>
<div class="editer editer_facteur_smtp_auth [ (#ENV**{erreurs}|table_valeur{facteur_smtp_auth}|oui)erreur]">
<div class="editer editer_smtp_auth [ (#ENV**{erreurs}|table_valeur{smtp_auth}|oui)erreur]">
<label><:facteur:facteur_smtp_auth:></label>
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_auth})</span>]
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{smtp_auth})</span>]
<div class="choix">
<input type="radio" name="facteur_smtp_auth" class="radio" value="non" id="facteur_smtp_auth_non"[(#ENV{facteur_smtp_auth,'non'}|=={non}|oui)checked="checked"]/>
<label for="facteur_smtp_auth_non"><:facteur:facteur_smtp_auth_non:></label>
<input type="radio" name="smtp_auth" class="radio" value="non" id="smtp_auth_non"[(#ENV{smtp_auth,'non'}|=={non}|oui)checked="checked"]/>
<label for="smtp_auth_non"><:facteur:facteur_smtp_auth_non:></label>
</div>
<div class="choix">
<input type="radio" name="facteur_smtp_auth" class="radio" value="oui" id="facteur_smtp_auth_oui"[(#ENV{facteur_smtp_auth,'non'}|=={oui}|oui)checked="checked"]/>
<label for="facteur_smtp_auth_oui"><:facteur:facteur_smtp_auth_oui:></label>
<div class="suite editer-groupe" [(#ENV{facteur_smtp_auth,'non'}|=={non}|oui)style='display:none;']>
<div class="editer editer_facteur_smtp_username [ (#ENV**{erreurs}|table_valeur{facteur_smtp_username}|oui)erreur]">
<label for="facteur_smtp_username"><:facteur:facteur_smtp_username:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_username})</span>]
<input type="text" name="facteur_smtp_username" class="text" value="#ENV**{facteur_smtp_username}" id="facteur_smtp_username" />
<input type="radio" name="smtp_auth" class="radio" value="oui" id="smtp_auth_oui"[(#ENV{smtp_auth,'non'}|=={oui}|oui)checked="checked"]/>
<label for="smtp_auth_oui"><:facteur:facteur_smtp_auth_oui:></label>
<div class="suite editer-groupe" [(#ENV{smtp_auth,'non'}|=={non}|oui)style='display:none;']>
<div class="editer editer_smtp_username [ (#ENV**{erreurs}|table_valeur{smtp_username}|oui)erreur]">
<label for="smtp_username"><:facteur:facteur_smtp_username:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{smtp_username})</span>]
<input type="text" name="smtp_username" class="text" value="#ENV**{smtp_username}" id="smtp_username" />
</div>
<div class="editer editer_facteur_smtp_password [ (#ENV**{erreurs}|table_valeur{facteur_smtp_password}|oui)erreur]">
<label for="facteur_smtp_password"><:facteur:facteur_smtp_password:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_password})</span>]
<input type="password" name="facteur_smtp_password" class="text" value="#ENV**{facteur_smtp_password}" id="facteur_smtp_password"
[placeholder="(#ENV**{_facteur_smtp_password}|facteur_affiche_password_masque|attribut_html)"] />
<div class="editer editer_smtp_password [ (#ENV**{erreurs}|table_valeur{smtp_password}|oui)erreur]">
<label for="smtp_password"><:facteur:facteur_smtp_password:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{smtp_password})</span>]
<input type="password" name="smtp_password" class="text" value="#ENV**{smtp_password}" id="smtp_password"
[placeholder="(#ENV**{_smtp_password}|facteur_affiche_password_masque|attribut_html)"] />
</div>
</div>
</div>
</div>
<div class="editer editer_facteur_smtp_secure [ (#ENV**{erreurs}|table_valeur{facteur_smtp_secure}|oui)erreur]">
<div class="editer editer_smtp_secure [ (#ENV**{erreurs}|table_valeur{smtp_secure}|oui)erreur]">
<label><:facteur:facteur_smtp_secure:></label>
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_secure})</span>]
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{smtp_secure})</span>]
<div class="choix">
<input type="radio" name="facteur_smtp_secure" class="radio" value="non" id="facteur_smtp_secure_non"[(#ENV{facteur_smtp_secure,'non'}|=={non}|oui)checked="checked"]/>
<label for="facteur_smtp_secure_non"><:facteur:facteur_smtp_secure_non:></label>
<input type="radio" name="smtp_secure" class="radio" value="non" id="smtp_secure_non"[(#ENV{smtp_secure,'non'}|=={non}|oui)checked="checked"]/>
<label for="smtp_secure_non"><:facteur:facteur_smtp_secure_non:></label>
</div>
<div class="choix">
<input type="radio" name="facteur_smtp_secure" class="radio" value="tls" id="facteur_smtp_secure_tls"[(#ENV{facteur_smtp_secure,'non'}|=={tls}|oui)checked="checked"]/>
<label for="facteur_smtp_secure_tls"><:facteur:facteur_smtp_secure_tls:></label>
<input type="radio" name="smtp_secure" class="radio" value="tls" id="smtp_secure_tls"[(#ENV{smtp_secure,'non'}|=={tls}|oui)checked="checked"]/>
<label for="smtp_secure_tls"><:facteur:facteur_smtp_secure_tls:></label>
</div>
<div class="choix">
<input type="radio" name="facteur_smtp_secure" class="radio" value="ssl" id="facteur_smtp_secure_ssl"[(#ENV{facteur_smtp_secure,'non'}|=={ssl}|oui)checked="checked"]/>
<label for="facteur_smtp_secure_ssl"><:facteur:facteur_smtp_secure_ssl:></label>
<input type="radio" name="smtp_secure" class="radio" value="ssl" id="smtp_secure_ssl"[(#ENV{smtp_secure,'non'}|=={ssl}|oui)checked="checked"]/>
<label for="smtp_secure_ssl"><:facteur:facteur_smtp_secure_ssl:></label>
</div>
</div>
<div class="editer editer_facteur_smtp_tls_allow_self_signed [ (#ENV**{erreurs}|table_valeur{facteur_smtp_tls_allow_self_signed}|oui)erreur]">
<div class="editer editer_smtp_tls_allow_self_signed [ (#ENV**{erreurs}|table_valeur{smtp_tls_allow_self_signed}|oui)erreur]">
<label><:facteur:configuration_facteur_smtp_tls_allow_self_signed:></label>
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_tls_allow_self_signed})</span>]
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{smtp_tls_allow_self_signed})</span>]
<div class="choix">
<input type="radio" name="facteur_smtp_tls_allow_self_signed" class="radio" value="non" id="facteur_smtp_tls_allow_self_signed_non"[(#ENV{facteur_smtp_tls_allow_self_signed,'non'}|=={non}|oui)checked="checked"]/>
<label for="facteur_smtp_tls_allow_self_signed_non"><:facteur:facteur_smtp_tls_allow_self_signed_non:></label>
<input type="radio" name="smtp_tls_allow_self_signed" class="radio" value="non" id="smtp_tls_allow_self_signed_non"[(#ENV{smtp_tls_allow_self_signed,'non'}|=={non}|oui)checked="checked"]/>
<label for="smtp_tls_allow_self_signed_non"><:facteur:facteur_smtp_tls_allow_self_signed_non:></label>
</div>
<div class="choix">
<input type="radio" name="facteur_smtp_tls_allow_self_signed" class="radio" value="oui" id="facteur_smtp_tls_allow_self_signed_oui"[(#ENV{facteur_smtp_tls_allow_self_signed,'non'}|=={oui}|oui)checked="checked"]/>
<label for="facteur_smtp_tls_allow_self_signed_oui"><:facteur:facteur_smtp_tls_allow_self_signed_oui:></label>
<input type="radio" name="smtp_tls_allow_self_signed" class="radio" value="oui" id="smtp_tls_allow_self_signed_oui"[(#ENV{smtp_tls_allow_self_signed,'non'}|=={oui}|oui)checked="checked"]/>
<label for="smtp_tls_allow_self_signed_oui"><:facteur:facteur_smtp_tls_allow_self_signed_oui:></label>
</div>
</div>
</div>

2
formulaires/tester_facteur.php

@ -14,7 +14,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
function formulaires_tester_facteur_charger_dist() {
include_spip('inc/config');
$valeurs = array(
'email_test' => lire_config('facteur_adresse_envoi') == 'oui' ? lire_config('facteur_adresse_envoi_email') : $GLOBALS['meta']['email_webmaster'],
'email_test' => lire_config('facteur/adresse_envoi') == 'oui' ? lire_config('facteur/adresse_envoi_email', '') : $GLOBALS['meta']['email_webmaster'],
);
if (isset($GLOBALS['_message_html_test'])) {

2
lang/facteur_fr.php

@ -63,7 +63,7 @@ Vérifiez votre fichier <tt>mes_options.php</tt>",
'label_message_envoye' => 'Message envoyé :',
// M
'message_identite_email' => 'La <a href="@url@">configuration du plugin <i>Facteur</i></a> surcharge cette adresse email pour l’envoi de courriels.',
'message_identite_email' => 'La <a href="@url@">configuration du plugin <i>Facteur</i></a> surcharge cette adresse email avec <b>@email@</b> pour l’envoi de courriels.',
// N
'note_test_configuration' => 'Un email sera envoyé à cette adresse.',

2
paquet.xml

@ -5,7 +5,7 @@
etat="dev"
compatibilite="[3.1.0;3.3.*]"
logo="prive/themes/spip/images/facteur-32.png"
schema="1.1"
schema="2.0.0"
documentation="https://contrib.spip.net/Facteur"
>

Loading…
Cancel
Save