et enfin la doc
This commit is contained in:
parent
33a89b9df0
commit
a0555a08ba
4 changed files with 112 additions and 1 deletions
111
README.md
111
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)
|
||||

|
||||
|
||||
## 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
|
||||
<INCLURE{fond=inclure/gamumail_config,env}>
|
||||
```
|
||||

|
||||
|
||||
## 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
|
||||
<B_doc>
|
||||
<h2>Fichiers attachés au séjour</h2>
|
||||
<div class="editer_groupe">
|
||||
<div class="editer editer_[(Tid_doc)]">
|
||||
<BOUCLE_doc(DOCUMENTS){id_article=#ENV{options/id_article}}{extension=pdf}>
|
||||
<div class="choix">
|
||||
<input type="checkbox" class="checkbox" name="Tid_doc[]" value="#ID_DOCUMENT" id="Tid_doc_#ID_DOCUMENT" checked="checked" >
|
||||
<label for="Tid_doc_#ID_DOCUMENT"><i class="fa fa-file-pdf-o rouge"></i>[ (#TITRE|sinon{#FICHIER|basename})]</label>
|
||||
</div>
|
||||
</BOUCLE_doc>
|
||||
</div>
|
||||
</div>
|
||||
</B_doc>
|
||||
```
|
||||
|
||||
### 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;
|
||||
}
|
||||
```
|
||||
|
||||
|
|
BIN
doc/configuration.png
Normal file
BIN
doc/configuration.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 117 KiB |
BIN
doc/interface.png
Normal file
BIN
doc/interface.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 65 KiB |
|
@ -17,7 +17,7 @@
|
|||
|
||||
<necessite nom="bigform" compatibilite="[1.0.0;[" />
|
||||
<necessite nom="crayons" compatibilite="[2.0.10;[" />
|
||||
<necessite nom="facteur" compatibilite="[4.0.10;[" />
|
||||
<necessite nom="facteur" compatibilite="[4.0.0;[" />
|
||||
|
||||
|
||||
<pipeline nom="autoriser" inclure="gamumail_autorisations.php" />
|
||||
|
|
Loading…
Add table
Reference in a new issue