No description
Find a file
2020-11-13 00:43:53 +01:00
action ménage dans les fichiers 2020-04-27 10:44:57 +02:00
base ménage dans les fichiers 2020-04-27 10:44:57 +02:00
css on compacte un peu l'affichage 2020-04-29 15:28:35 +02:00
doc on ajoute une gestion des urls par tag, recup du plugin de fip 2020-04-27 14:59:38 +02:00
formulaires désactivation du tag-editor pour Safari 2020-11-13 00:43:53 +01:00
inc ajout du fichier de recup des pdfs 2020-04-27 10:31:46 +02:00
inclure ménage dans les fichiers 2020-04-27 10:44:57 +02:00
js on ajoute une gestion des urls par tag, recup du plugin de fip 2020-04-27 14:59:38 +02:00
lang Gestion des erreurs d'envoi + message retour 2020-04-27 10:30:43 +02:00
prive/themes/spip/images il ne fallait pas effacer les logos 2020-04-27 22:46:03 +02:00
gamumail_administrations.php ménage dans les fichiers 2020-04-27 10:44:57 +02:00
gamumail_autorisations.php sortie de la fabrique 2020-04-24 20:57:04 +02:00
gamumail_fonctions.php petite fonction simplifiant l'écriture du squelette, mais pas tres 2020-04-25 22:36:15 +02:00
gamumail_options.php * Chargemnet du formulaire, on ajoute un dernier argument, un Array 2020-04-26 00:17:05 +02:00
gamumail_pipelines.php sortie de la fabrique 2020-04-24 20:57:04 +02:00
paquet.xml Ajout d'un fonction de surcharge SLUG_traiter_av_pdf ou traiter_av_pdf 2020-05-31 20:28:41 +02:00
README.md pour chaque étape, on ajoute une fonction pour tous les modeles, cf 2020-05-14 09:06:18 +02:00

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

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

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 :

<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>

3 branchements possibles :

  • gamumail/SLUG_debutform.html -> au début du form
  • gamumail/SLUG_soustexte.html -> sous le contenu du mail, avant les pièces jointes
  • gamumail/SLUG_fichier.html -> à la fin du formulaire

Dans le php

1. Appel du formualire

Args du formulaire :

/**
 * 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.php pour tous les formulaires ou
  • pour charger : gamumail/SLUG_charger.php avec une fonction :
function gamumail_SLUG_charger($valeurs, $options = []){
	return $valeurs;
}
  • pour verifier : gamumail/verifier.php pour tous les formulaires ou
  • pour verifier : gamumail/SLUG_verifier.php avec une fonction :
function gamumail_SLUG_verifier($erreurs, $options = []){
	return $erreurs;
}
  • pour traiter : gamumail/traiter.php pour tous les formulaires ou
  • pour traiter : gamumail/SLUG_traiter.php avec une fonction ex:
function gamumail_contrat_resa_traiter($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;
}

on peut définir un header / footer pour les messages :

  • gamumail/html_header.html => header pour tous les mails
  • gamumail/html_footer.html => footer pour tous les mails
  • gamumail/SLUG_html_header.html => pour les mails du modele SLUG
  • gamumail/SLUG_html_footer.html => pour les mails du modele SLUG