This commit is contained in:
Christophe 2021-04-13 16:14:35 +02:00
parent 3237059720
commit 000ffb8478

View file

@ -16,10 +16,7 @@
* ID documents joints (spip_documents) * ID documents joints (spip_documents)
--- ---
* Chaque modèle à un identifiant textuel : **slug** qui doit etre unique. Il ne peut etre créé / modifié QUE par les webmestres * Chaque modèle à un identifiant textuel : **slug** qui doit etre unique. Il ne peut etre créé / modifié QUE par les webmestres
* Pour gerer ses modèles, il faut inclure dans une page : * Pour gerer ses modèles, il faut se rendre sur la page : `?page=configurer_mails`
```html
<INCLURE{fond=inclure/gamumail_config,env}>
```
![configuration](doc/configuration.png "Exemple de configuration") ![configuration](doc/configuration.png "Exemple de configuration")
## Personnalisation du formulaire d'envoi ## Personnalisation du formulaire d'envoi
@ -49,10 +46,10 @@ ex de fichier :
* gamumail/SLUG_fichier.html -> à la fin du formulaire * gamumail/SLUG_fichier.html -> à la fin du formulaire
### aide à la rédaction du contenu: ### 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** - 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** 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) (= ceux fournis par le pipeline **remplacement_slugs**, cf ci-dessous)
- une page de test des slugs est fournie à l'URL **...?page=test_slug&slug=mail_libre&dest=27** - 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 : ### exemple de page d'envoi de mail en choisissant un slug parmi ceux existant :
```html ```html
@ -85,9 +82,9 @@ et du formulaire d'envoi **formulaires/gamumail.html** : il permet de lister les
* @param array $Tpdf = un ou plusieurs fichiers PDF générés par spiPDF (le contexte permet la personnalisation du contenu) * @param array $Tpdf = un ou plusieurs fichiers PDF générés par spiPDF (le contexte permet la personnalisation du contenu)
* []['fichier' => 'pdf_facture', 'nom' => 'facture_123', 'contexte' => ['id_app_facture' => 3]] ou ['fichier' => 'pdf_facture', 'nom' => 'facture_123', 'contexte' => ['id_app_facture' => 3]] * []['fichier' => 'pdf_facture', 'nom' => 'facture_123', 'contexte' => ['id_app_facture' => 3]] ou ['fichier' => 'pdf_facture', 'nom' => 'facture_123', 'contexte' => ['id_app_facture' => 3]]
* @param string $redirect * @param string $redirect
* @param array $options = un gros fourre-tout sous forme d'un array * @param array $options = un gros fourre-tout sous forme d'un array
* utilisé en particulier par les inclure HTML de gamumail/#SLUG_soustexte et gamumail/#SLUG_fichiers * utilisé en particulier par les inclure HTML de gamumail/#SLUG_soustexte et gamumail/#SLUG_fichiers
* *
* @return array $valeurs * @return array $valeurs
*/ */
function formulaires_gamumail_charger_dist($slug, $auteur = 0, $Tclient = [], $Tpdf = [], $redirect = '', $options = []){ function formulaires_gamumail_charger_dist($slug, $auteur = 0, $Tclient = [], $Tpdf = [], $redirect = '', $options = []){
@ -100,7 +97,7 @@ Pour chaque étape, on peut modifier l'Array de sortie :
* charger -> $valeurs * charger -> $valeurs
* verifier -> $erreurs * verifier -> $erreurs
* traiter -> $corps (array du message envoyé à facteur) * traiter -> $corps (array du message envoyé à facteur)
Voir **gamumail_fonctions.php** pour les arguments des fonctions de surcharge + exemples Voir **gamumail_fonctions.php** pour les arguments des fonctions de surcharge + exemples
Pour cela, il faut creer une fonction du type (qui utilise les memes arg que les fonctions CVT + premier arg l'Array que l'on veut modifier): Pour cela, il faut creer une fonction du type (qui utilise les memes arg que les fonctions CVT + premier arg l'Array que l'on veut modifier):
@ -142,7 +139,7 @@ function gamumail_contrat_resa_traiter($corps, $options = []){
``` ```
#### 3. Pipeline remplacements_slug pour le traitement du contenu des messages #### 3. Pipeline remplacements_slug pour le traitement du contenu des messages
Pour les remplacements des @@ et tout autre traitement du texte des mails on utilisera le pipeline **remplacements_slug** qui utilise les arguments suivants : Pour les remplacements des @@ et tout autre traitement du texte des mails on utilisera le pipeline **remplacements_slug** qui utilise les arguments suivants :
```php ```php
* @param array $flux données du pipeline : * @param array $flux données du pipeline :
* $flux['data'] = $html * $flux['data'] = $html
* $flux['args']['slug'] = $slug * $flux['args']['slug'] = $slug
@ -161,11 +158,11 @@ on peut définir un header / footer pour les messages :
## API d'envoi de mails utilisant les slugs ## API d'envoi de mails utilisant les slugs
### fonction envoyer_gamumail() ### fonction envoyer_gamumail()
- exemple d'appel : - exemple d'appel :
```php ```php
$fonction = charger_fonction('envoyer_gamumail','inc'); $fonction = charger_fonction('envoyer_gamumail','inc');
$options = [ $options = [
'debug' => false, 'debug' => false,
'args' => ['nb_parts' => intval(_request('nombre'))], 'args' => ['nb_parts' => intval(_request('nombre'))],
'pdfs' => [ 'pdfs' => [
[ [
@ -185,9 +182,9 @@ $fonction(lire_config('souscriptions/slug_souscription_validation'), $Tdest, $op
* @param array $options : * @param array $options :
* $options['debug' => true] pour afficher le $corps final sans envoyer le mail * $options['debug' => true] pour afficher le $corps final sans envoyer le mail
* $options['cci' => true] pour passer tous les destinataires en cci si il y en a plus qu'un * $options['cci' => true] pour passer tous les destinataires en cci si il y en a plus qu'un
* $options['args' => ['param_1' => 'valeur_1, 'param_2' => 'valeur_2', ...]] * $options['args' => ['param_1' => 'valeur_1, 'param_2' => 'valeur_2', ...]]
* $options['pdfs' => [...]] array des fichiers PDF générés à attacher dont les éléments peuvent être : * $options['pdfs' => [...]] array des fichiers PDF générés à attacher dont les éléments peuvent être :
* - soit un nom de squelette PDF * - soit un nom de squelette PDF
* - soit un array avec 3 éléments (seul le 1er est obligatoire): * - soit un array avec 3 éléments (seul le 1er est obligatoire):
* [ 'fichier' => 'squelette_PDF', * [ 'fichier' => 'squelette_PDF',
* 'contexte' => ['parametre_url_1' => 'valeur_1', 'parametre_url_2' => 'valeur_2', ...] * 'contexte' => ['parametre_url_1' => 'valeur_1', 'parametre_url_2' => 'valeur_2', ...]