ajout des pièces attachées en fichiers PDF générés par SPIPDF avec passage de contexte pour contenu dynamique. Par rapport à la version de Roc, ajoute la possibilité d'avoir plusieurs fichiers dynamiques avec chacun son fichier de base et/ou son contexte. Tout est documenté dans le README
This commit is contained in:
parent
c72d52867f
commit
9243f5c27c
4 changed files with 86 additions and 22 deletions
60
README.md
60
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 :
|
||||
|
|
|
@ -83,12 +83,12 @@
|
|||
<div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
|
||||
<BOUCLE_pdf(DATA){source tableau, #ENV{TFichierpdfs}}>
|
||||
<div class="choix">
|
||||
<input type="checkbox" class="checkbox" name="#GET{name}[]" value="#VALEUR" id="#GET{name}_#COMPTEUR_BOUCLE" checked="checked" >
|
||||
[(#SET{url_pdf,[(#URL_PAGE{spipdf}|parametre_url{spipdf,#VALEUR})]})]
|
||||
<BOUCLE_options(DATA){source tableau, #ENV{options}}>
|
||||
<input type="checkbox" class="checkbox" name="#GET{name}[]" value="[(#VALEUR|table_valeur{fichier})]_#CLE" id="#GET{name}_#COMPTEUR_BOUCLE" checked="checked" >
|
||||
[(#SET{url_pdf,[(#URL_PAGE{spipdf}|parametre_url{spipdf,[(#VALEUR|table_valeur{fichier})]})]})]
|
||||
<BOUCLE_options(DATA){source tableau, #VALEUR|table_valeur{contexte}}>
|
||||
[(#SET{url_pdf,[(#GET{url_pdf}|parametre_url{#CLE,#VALEUR})]})]
|
||||
</BOUCLE_options>
|
||||
<label for="#GET{name}_#COMPTEUR_BOUCLE">#VALEUR : <a href="#GET{url_pdf}">voir le PDF</a></label>
|
||||
<label for="#GET{name}_#COMPTEUR_BOUCLE">[(#VALEUR|table_valeur{nom})] : <a href="#GET{url_pdf}">voir le PDF</a></label>
|
||||
</div>
|
||||
</BOUCLE_pdf>
|
||||
</div>
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue