diff --git a/README.md b/README.md index 6a2b090..2903e3b 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,65 @@ $GLOBALS['remplacements_gamumail']['@@num_facture@@'] = 'numéro de la facture'; 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 +#### argument Tclient +l'Argument $Tclient est utilisé pour récupérer des emails dans un ou X autres Objets SPIP + +#### argument Tpdf : attacher des PDF avec contenu dynamique +- exemple d'appel pour 1 fichier PDF avec son contexte : +```html +[(#FORMULAIRE_GAMUMAIL{ + #ENV{slug}, + #ENV{email}, + '', + #ARRAY{ + fichier,pdf_guide, + nom,Fiche_guide, + contexte,#ARRAY{ + id_article,#ENV{id_article}, + type_guide,#ENV{type_guide,guide} + } + }, + #ENV{redirect}, + #ARRAY{ + id_auteur,#ENV{id_auteur} + } +})] +``` +le fichier PDF sera généré par SPIPDF avec l'URL suivante : `...spip.php?page=spipdf&spipdf=pdf_guide&id_article=1838&type_guide=guide` + +- exemple d'appel pour 2 fichiers PDF générés par le même squelette (pdf_guide.html) mais avec chacun leur contexte : +```html +[(#FORMULAIRE_GAMUMAIL{ + #ENV{slug}, + #ENV{email}, + '', + #ARRAY{ + 0,#ARRAY{ + fichier,pdf_guide, + nom,Fiche_guide, + contexte,#ARRAY{ + id_article,#ENV{id_article}, + type_guide,guide, + } + }, + 1,#ARRAY{ + fichier,pdf_guide, + nom,Fiche_guide_renfort, + contexte,#ARRAY{ + id_article,#ENV{id_article}, + type_guide,guide_renfort, + } + } + }, + #ENV{redirect}, + #ARRAY{ + id_auteur,#ENV{id_auteur} + } +})] +``` +/!\ en cas de plusieurs PDF : + - il faut une *clé unique* pour chaque #ARRAY (0, 1, 2... est une bonne solution) + - dans l'#ARRAY contexte il faut que le dernier élément soit suivi d'une virgule ou d'une accolade fermante #### 2. modification de chaque étape: charger / vérifier / traiter Pour chaque étape, on peut modifier l'Array de sortie : diff --git a/formulaires/gamumail.html b/formulaires/gamumail.html index 9685e5f..884eef8 100644 --- a/formulaires/gamumail.html +++ b/formulaires/gamumail.html @@ -83,12 +83,12 @@
- - [(#SET{url_pdf,[(#URL_PAGE{spipdf}|parametre_url{spipdf,#VALEUR})]})] - + + [(#SET{url_pdf,[(#URL_PAGE{spipdf}|parametre_url{spipdf,[(#VALEUR|table_valeur{fichier})]})]})] + [(#SET{url_pdf,[(#GET{url_pdf}|parametre_url{#CLE,#VALEUR})]})] - +
diff --git a/formulaires/gamumail.php b/formulaires/gamumail.php index a9b67d2..9f4113c 100644 --- a/formulaires/gamumail.php +++ b/formulaires/gamumail.php @@ -21,6 +21,7 @@ include_spip('inc/filtres'); * */ function formulaires_gamumail_charger_dist($slug, $destinataires = 0, $Tclient = [], $Tpdf = [], $redirect = '', $options = []){ +//var_dump($Tpdf) ; $Tmails = []; if (!is_array($destinataires)) { $destinataires = explode(',', $destinataires); @@ -55,8 +56,10 @@ function formulaires_gamumail_charger_dist($slug, $destinataires = 0, $Tclient = if (array_key_exists('fichier', $Tpdf)) { $Tpdf = [$Tpdf]; } - foreach ($Tpdf as $pdf) { - $TFichierPdf[] = $pdf['fichier']; + foreach ($Tpdf as $id => $pdf) { + //$TFichierPdf[] = $pdf['fichier']; + $TFichierPdf[$id] = $pdf; + //$options[$id] = $pdf; } } @@ -74,6 +77,7 @@ function formulaires_gamumail_charger_dist($slug, $destinataires = 0, $Tclient = 'Tid_fichiers' => [], 'options' => $options ); +//var_dump($valeurs); // surcharges charger if ($f = charger_fonction('charger', 'gamumail', true)) { @@ -200,7 +204,6 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient = } $pieces_jointes = []; - if ($f = charger_fonction('traiter_av_pdf', 'gamumail', true)) { $options = $f($options, $destinataires, $Tclient, $Tpdf); } @@ -250,27 +253,30 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient = ]; } } - - // les pdfs - $Tpdf_dell = []; + // les pdfs générés en fonction du contexte + $Tpdf_del = []; if (!empty($Tpdfs_ok) and is_array($Tpdfs_ok)) { if (array_key_exists('fichier', $Tpdf)) { $Tpdf = [$Tpdf]; } +//var_dump($Tpdf); +//var_dump($Tpdfs_ok); $recup_pdf = charger_fonction('charger_pdf','inc'); foreach ($Tpdfs_ok as $pdf) { - foreach ($Tpdf as $p) { - if ($p['fichier'] === $pdf) { - $c = $p['contexte']; - $nom = $p['nom']; +//var_dump($pdf); + foreach ($Tpdf as $cle => $p) { + if ($p['fichier'].'_'.$cle === $pdf) { + $fichier = $p['fichier']; + $c = isset($p['contexte']) ? $p['contexte'] : []; + $nom = isset($p['nom']) ? $p['nom'] : $fichier; } } - - $pdf = $recup_pdf($pdf, $c); + $pdf = $recup_pdf($fichier, $c); +//var_dump($pdf); $nom_fichier = $nom.'.pdf'; $destination = _DIR_TMP.basename($nom_fichier); - $Tpdf_dell[] = $destination; + $Tpdf_del[] = $destination; file_put_contents($destination,$pdf); $pieces_jointes[] = [ 'chemin' => $destination, @@ -280,7 +286,7 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient = ]; } } - +//var_dump($pieces_jointes);die; $html_header = ''; if (find_in_path('gamumail/'.$slug .'_html_header.html')) { $html_header = recuperer_fond('gamumail/'.$slug . '_html_header', $options); @@ -337,8 +343,8 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient = } // on supprime les pdfs temporaires - if (count($Tpdf_dell)) { - foreach ($Tpdf_dell as $pdf) { + if (count($Tpdf_del)) { + foreach ($Tpdf_del as $pdf) { unlink($pdf); } } diff --git a/inc/charger_pdf.php b/inc/charger_pdf.php index 5300723..e2ab44a 100644 --- a/inc/charger_pdf.php +++ b/inc/charger_pdf.php @@ -4,6 +4,7 @@ if (!defined('_ECRIRE_INC_VERSION')){ } function inc_charger_pdf_dist($fichier_pdf, $contexte = []){ + $login = lire_config('curl_login'); $password = lire_config('curl_mdp'); $url = $GLOBALS['meta']['adresse_site'].'/spip.php?page=spipdf&spipdf='.$fichier_pdf; @@ -21,7 +22,6 @@ function inc_charger_pdf_dist($fichier_pdf, $contexte = []){ } $CurlConnect = curl_init(); - // pour une connexion https locale avec certificat auto-signé if (defined('_DEBUG_AUTORISER')) { curl_setopt($CurlConnect, CURLOPT_SSL_VERIFYHOST, false);