diff --git a/README.md b/README.md
index f16f005..6a2b090 100644
--- a/README.md
+++ b/README.md
@@ -46,9 +46,15 @@ ex de fichier :
* gamumail/SLUG_fichier.html -> à la fin du formulaire
### aide à la rédaction du contenu:
-- le fichier **gamumail/remplacement_slugs.html** (surchargeable donc) s'affiche en bas de la page de configuration des modèles **inclure/gamumail_config.html**
-et du formulaire d'envoi **formulaires/gamumail.html** : il permet de lister les remplacements effectués pour **tous les modèles**
-(= ceux fournis par le pipeline **remplacement_slugs**, cf ci-dessous)
+- le fichier **gamumail/remplacement_slugs.html** s'affiche en bas de la page de configuration des modèles **inclure/gamumail_config.html**
+et du formulaire d'envoi **formulaires/gamumail.html** : il permet de lister les remplacements effectués pour **tous les modèles** qui sont :
+ - les génériques fournis par Gamumail par la fonction `inc_gamumail_remplacements_dist()` du fichier `inc/gamumail_remplacements.php`
+ - ceux fournis par les plugins via le pipeline **remplacement_slugs** (cf ci-dessous)
+- pour documenter les remplacements (pied de la page gamumail_config.html), chaque plugin doit renseigner ses remplacements dans l'array global `$GLOBALS['remplacements_gamumail']`
+Exemple dans un fichier `prefixe_fonctions.php` :
+```php
+$GLOBALS['remplacements_gamumail']['@@num_facture@@'] = 'numéro de la facture';
+```
- une page de test des slugs est fournie à l'URL **...?page=test_slug&slug=mail_libre&dest=27**
### exemple de page d'envoi de mail en choisissant un slug parmi ceux existant :
diff --git a/gamumail/remplacements_slugs.html b/gamumail/remplacements_slugs.html
index b680756..73d9c4c 100644
--- a/gamumail/remplacements_slugs.html
+++ b/gamumail/remplacements_slugs.html
@@ -6,7 +6,9 @@
<:gamumail:remplacements_disponibles:>
- - @@exemple_chaine@@ : remplacement de la chaine
+
+ - [(#CLE)] : [(#VALEUR)]
+
<:gamumail:avertissement_remplacements:>
diff --git a/gamumail_fonctions.php b/gamumail_fonctions.php
index d4861fd..b552b73 100644
--- a/gamumail_fonctions.php
+++ b/gamumail_fonctions.php
@@ -90,7 +90,6 @@ function gamumail_verifier_dist($erreurs, $options, $slug, $destinataires='', $T
function gamumail_traiter_dist($corps, $options, $slug, $destinataires='') {
$html = $corps['html'];
- $html = gamumail_remplacer_modele($html, '@@truc_a_remplacer@@', 'le machin qui remplace');
include_spip('classes/facteur');
$texte = facteur_mail_html2text($html);
$corps['html'] = $html;
@@ -99,7 +98,6 @@ function gamumail_traiter_dist($corps, $options, $slug, $destinataires='') {
return $corps;
}
-
function gamumail_remplacer_modele($modele, $val, $texte){
if ($texte and $modele and $val) {
return str_replace('@@'.$modele.'@@', $val, $texte);
@@ -107,3 +105,21 @@ function gamumail_remplacer_modele($modele, $val, $texte){
return $texte;
}
+/**
+ * pour la doc fournie par inclure/remplacements_slugs.html
+ * $GLOBALS['remplacements_gamumail'] est l'array global des remplacements dans les slugs (sera complété avec les remplacements des plugins)
+ * de la forme : ['@@truc_a_remplacer_1@@' => 'le machin qui remplace 1', '@@truc_a_remplacer_2@@' => _T('gamumail:chaine_de_langue_2')...];
+ *
+ **/
+$GLOBALS['remplacements_gamumail'] = [
+ '@@nom@@' => _T('gamumail:nom'),
+ '@@url_site@@' => _T('gamumail:url_site'),
+ '@@url_raz_passe@@' => _T('gamumail:url_raz_passe'),
+];
+
+/**
+ * le filtre pour retourner l'array des remplacements
+ **/
+function afficher_remplacements() {
+ return $GLOBALS['remplacements_gamumail'];
+}
diff --git a/gamumail_options.php b/gamumail_options.php
index ae9d9e9..910ee92 100644
--- a/gamumail_options.php
+++ b/gamumail_options.php
@@ -20,3 +20,4 @@ function crayons_determine_input_mode_type_gamumail($type, $champ, $sqltype) {
return in_array($champ, $Ttextarea) ? 'texte' : 'ligne';
}
+
diff --git a/inc/envoyer_gamumail.php b/inc/envoyer_gamumail.php
index f1c3c0d..68ddb55 100644
--- a/inc/envoyer_gamumail.php
+++ b/inc/envoyer_gamumail.php
@@ -171,7 +171,7 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) {
}
$html = $html_header . $html . $html_footer;
- // pipeline pour les traitement du contenu des slugs spécifiques de chaque plugins
+ // pipeline pour les remplacements du contenu des slugs spécifiques de chaque plugins
$args = $options;
$args['slug'] = $slug;
$args['destinataires'] = $pour;
@@ -179,6 +179,11 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) {
'args' => $args,
'data' => $html
));
+
+ // traitement des remplacements génériques fournis par Gamumail
+ $remplacement_generiques = charger_fonction('gamumail_remplacements', 'inc');
+ $html = $remplacement_generiques($args, $html);
+
$texte = facteur_mail_html2text($html);
$corps = [
@@ -209,6 +214,7 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) {
echo '
$corps : ';
var_dump($corps);
$ok = true;
+ exit;
}
else {
$envoyer_mail = charger_fonction('envoyer_mail', 'inc/');
diff --git a/inc/gamumail_remplacements.php b/inc/gamumail_remplacements.php
new file mode 100644
index 0000000..84eb566
--- /dev/null
+++ b/inc/gamumail_remplacements.php
@@ -0,0 +1,42 @@
+ $slug, 'destinataires' => $pour, [$options]]
+ * @param string $data = $html
+ *
+ * @return $html
+ *
+ **/
+function inc_gamumail_remplacements_dist($args, $html) {
+
+ /**
+ * @@nom@@ => Prenom Nom | Nom (gère la présence/absence du champ prenom dans spip_auteurs)
+ **/
+ $nom = sql_getfetsel('nom', 'spip_auteurs', 'email='.sql_quote($args['destinataires'][0]));
+ $trouver_table = charger_fonction('trouver_table', 'base');
+ $desc = $trouver_table('spip_auteurs');
+ if (array_key_exists('prenom', $desc['field'])
+ and $prenom = sql_getfetsel('prenom', 'spip_auteurs', 'email='.sql_quote($args['destinataires'][0]))) {
+ $nom = $prenom.' '.$nom;
+ }
+ $html = gamumail_remplacer_modele('nom', ucwords($nom), $html);
+
+ /**
+ * @@url_site@@ => URL du site
+ **/
+ $url_site = lire_config('adresse_site');
+ $html = gamumail_remplacer_modele('url_site', $url_site, $html);
+
+ /**
+ * @@url_raz_passe@@ => URL de la page de récupération de mot de passe
+ **/
+ $html = gamumail_remplacer_modele('url_raz_passe', $url_site.'?page=spip_pass', $html);
+
+
+ return $html;
+}
diff --git a/lang/gamumail_fr.php b/lang/gamumail_fr.php
index 96aa2fa..8097876 100644
--- a/lang/gamumail_fr.php
+++ b/lang/gamumail_fr.php
@@ -62,6 +62,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'modele_masquer' => 'Masquer le modèle',
'modele_afficher' => 'Afficher le modèle',
+ // N
+ 'nom' => 'Prénom Nom du destinataire (ou Nom si pas de champ "prenom")',
+
// O
'objet' => 'Objet',
@@ -93,6 +96,10 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'titre_logo_gamumail' => 'Logo de ce gamumail',
'titre_objets_lies_gamumail' => 'Liés à ce gamumail',
+ // U
+ 'url_site' => 'URL du site',
+ 'url_raz_passe' => 'URL de la page de récupération de mot de passe',
+
// V
'visibilite_public' => 'Disponible dans la liste des modèles',
);