diff --git a/README.md b/README.md index 6d81a20..872e8f2 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,113 @@ # gamuMail +> P.O.C pour généraliser un formulaire d'envoi de message +## Il gere nativement : +* Pour +* Cc en meta : **gamumail/mail_cc** +* Cci en en meta : **gamumail/mail_cci** +* Sujet +* Texte +* Les documents attachés au modèle (cf ci-dessous) +* une liste de pdf (il faut le plugin spipdf) +![interface](doc/interface.png "interface") + +## Il gere des modèles de contenu pour : +* Sujet +* Texte +--- + +* Chaque modèle à un identifiant textuel : **slug** qui doit etre unique. Il ne peut etre creer / modifié QUE par les webmestres +* Pour gerer ses modèles, il faut inclure dans une page : +```html + +``` +![configuration](doc/configuration.png "Exemple de configuration") + +## Personnalisation du formulaire d'envoi +### Dans le html +On peut ajouter des documents via un fichier du type : **gamumail/SLUG_fichier.html** SLUG doit etre remplacé par le nom du slug du modèle +> **/!\ Le name doit etre Tid_doc** +> +ex de fichier : +```html + +

Fichiers attachés au séjour

+
+
+ +
+ + +
+ +
+
+
+``` + +### Dans le php +#### 1. Appel du formualire +> Args du formulaire : +> +```php +/** + * formulaire générique pour envoyer des mails avec pieces attachés + * + * @param string $slug modele du mail a charger + * @param int|string $auteur id_auteur ou email du destinataire + * @param array $Tclient []['objet' => 'app_client', 'id_objet' => 3, 'champ' => 'email'] + * ou + * ['objet' => 'app_client', 'id_objet' => 3, 'champ' => 'email'] + * @param array $Tpdf []['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 array $options + * @return array $valeurs + */ +function formulaires_gamumail_charger_dist($slug, $auteur = 0, $Tclient = [], $Tpdf = [], $redirect = '', $options = []){ +} +``` +> l'Argument $Tclient est utilisé pour récupérer des emails dans un ou X autres Objets SPIP + +#### 2. modification de chaque étape: charger / vérifier / traiter +Pour chaque étape, on peut modifier l'Array de sortie : +* charger -> $valeurs +* verifier -> $erreurs +* traiter -> $corps (array du message envoyé à facteur) + +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 charger : **gamumail/charger_SLUG.php** avec une fonction : +```php +function gamumail_charger_SLUG($valeurs, $options = []){ + return $valeurs; +} +``` +* pour verifier : **gamumail/verifier_SLUG.php** avec une fonction : +```php +function gamumail_verifier_SLUG($erreurs, $options = []){ + return $erreurs; +} +``` +* pour traiter : **gamumail/traiter_SLUG.php** avec une fonction ex: +```php +function gamumail_traiter_contrat_resa($corps, $options = []){ + if (array_key_exists('id_article', $options)) { + $htmlAdd = ''; + $texteAdd = ''; + $id_article = intval($options['id_article']); + $htmlAdd = recuperer_fond('gamumail/traiter_contrat_resa', ['id_article' => $id_article]); + if (!empty($htmlAdd)) { + include_spip('classes/facteur'); + + $html = $corps['html']; + $html = str_replace('@@pieces_jointes@@', $htmlAdd, $html); + $texte = facteur_mail_html2text($html); + $corps['html'] = $html; + $corps['texte'] = $texte; + } + } + + return $corps; +} +``` diff --git a/doc/configuration.png b/doc/configuration.png new file mode 100644 index 0000000..e8df094 Binary files /dev/null and b/doc/configuration.png differ diff --git a/doc/interface.png b/doc/interface.png new file mode 100644 index 0000000..fc33d57 Binary files /dev/null and b/doc/interface.png differ diff --git a/paquet.xml b/paquet.xml index 2b3ae53..a4fe99c 100644 --- a/paquet.xml +++ b/paquet.xml @@ -17,7 +17,7 @@ - +