From d40c764aa454d2985365f8701c0ea63bc551249e Mon Sep 17 00:00:00 2001 From: tofulm Date: Mon, 6 Nov 2023 18:35:45 +0100 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20envoie=20separe=20avec=20le=20contex?= =?UTF-8?q?te,=20ajout=20un=20pipeline=20pour=20les=20cas=20compliqu=C3=A9?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- formulaires/gamumail.php | 13 +++++++++++-- inclure/vue_slug.html | 8 +++++++- paquet.xml | 1 + 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/formulaires/gamumail.php b/formulaires/gamumail.php index d9f390d..83177ea 100644 --- a/formulaires/gamumail.php +++ b/formulaires/gamumail.php @@ -188,6 +188,7 @@ function formulaires_gamumail_verifier_dist($slug, $destinataires = 0, $Tclient } function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient = [], $Tpdf = [], $redirect = '', $options = []) :Array{ + $retour = []; // blocage de l'envoi par appel du pseudo-slug no_gamumail if ($slug === 'no_gamumail') { @@ -202,9 +203,8 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient = include_spip('inc/texte'); include_spip('classes/facteur'); - $retour = []; - $envoi_separe = _request('envoi_separe') ?? ''; + $options['envoi_separe'] = $envoi_separe; $pour = _request('pour'); $pour = explode(',', $pour); @@ -340,6 +340,15 @@ function gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $redirect, & $nom = isset($p['nom']) ? $p['nom'] : $fichier; } } + $c = array_merge($options, $c); + $c = pipeline('tpdf_charger_contexte', [ + 'args' => [ + 'destinataires' => $destinataires, + 'contexte' => $c, + 'options' => $options + ], 'data' => $c + ]); + $pdf = $recup_pdf($fichier, $c); $nom_fichier = $nom.'.pdf'; $destination = _DIR_TMP.basename($nom_fichier); diff --git a/inclure/vue_slug.html b/inclure/vue_slug.html index 542b98a..1a168f2 100644 --- a/inclure/vue_slug.html +++ b/inclure/vue_slug.html @@ -1,10 +1,16 @@ +[(#SET{Tpdf,#ARRAY{ +fichier,#ENV{pdf_fichier}, +nom,#ENV{pdf_nom}, +contexte,#ARRAY{slug, #ENV{slug}} +}} +)]

<:gamumail:contenu_mail:>

[(#FORMULAIRE_GAMUMAIL{ #ENV{slug}, #ENV{dest}, #ENV{client}, - #ENV{Tpdf}, + #GET{Tpdf}, #ENV{redirect}, #ENV{options} })] diff --git a/paquet.xml b/paquet.xml index a519910..f0be159 100644 --- a/paquet.xml +++ b/paquet.xml @@ -21,6 +21,7 @@ + From ab2476fdcfe94d271d6d5c6743b1674f8644a131 Mon Sep 17 00:00:00 2001 From: tofulm Date: Tue, 7 Nov 2023 09:56:36 +0100 Subject: [PATCH 2/3] fix: il ne faut pas merger les options dans le contexte --- formulaires/gamumail.php | 1 - 1 file changed, 1 deletion(-) diff --git a/formulaires/gamumail.php b/formulaires/gamumail.php index 83177ea..3541ed3 100644 --- a/formulaires/gamumail.php +++ b/formulaires/gamumail.php @@ -340,7 +340,6 @@ function gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $redirect, & $nom = isset($p['nom']) ? $p['nom'] : $fichier; } } - $c = array_merge($options, $c); $c = pipeline('tpdf_charger_contexte', [ 'args' => [ 'destinataires' => $destinataires, From 9c1ad3591ddbe706a764afb1a56a0b979c4d15e0 Mon Sep 17 00:00:00 2001 From: tofulm Date: Tue, 7 Nov 2023 10:34:00 +0100 Subject: [PATCH 3/3] feat: on passe par remplacements slug sur le nom du fichier pdf --- formulaires/gamumail.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/formulaires/gamumail.php b/formulaires/gamumail.php index 3541ed3..26a4834 100644 --- a/formulaires/gamumail.php +++ b/formulaires/gamumail.php @@ -267,6 +267,10 @@ function gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $redirect, & $Tid_doc = _request('Tid_doc'); $texte = facteur_mail_html2text($html); + $args = $options; + $args['slug'] = $slug; + $args['destinataires'] = $destinataires; + $pieces_jointes = []; if ($f = charger_fonction('traiter_av_pdf', 'gamumail', true)) { $options = $f($options, $destinataires, $Tclient, $Tpdf); @@ -333,6 +337,7 @@ function gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $redirect, & $recup_pdf = charger_fonction('charger_pdf','inc'); foreach ($Tpdfs_ok as $pdf) { + $nom = "mon_fichier"; foreach ($Tpdf as $cle => $p) { if ($p['fichier'].'_'.$cle === $pdf) { $fichier = $p['fichier']; @@ -340,6 +345,12 @@ function gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $redirect, & $nom = isset($p['nom']) ? $p['nom'] : $fichier; } } + + $nom = pipeline('remplacements_slug', array( + 'args' => $args, + 'data' => $nom + )); + $c = pipeline('tpdf_charger_contexte', [ 'args' => [ 'destinataires' => $destinataires, @@ -392,9 +403,6 @@ function gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $redirect, & $html = $html_header . $html . $html_footer; // pipeline pour les traitement du contenu des slugs spécifiques de chaque plugin - $args = $options; - $args['slug'] = $slug; - $args['destinataires'] = $destinataires; $html = pipeline('remplacements_slug', array( 'args' => $args, 'data' => $html