feat: ajout la possibilité de joindre des fichiers téléverser.
Attention, ces fichiers ne sont pas sauvegardés. Fichiers acceptés : * images * pdf
This commit is contained in:
parent
1f870feae8
commit
57e1466497
5 changed files with 162 additions and 67 deletions
|
@ -110,73 +110,80 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
#SET{fichier,#SLUG|concat{_soustexte}}
|
<div class="flex gap-6">
|
||||||
[(#CHEMIN{gamumail/#GET{fichier}.html}|oui)
|
<div class="w500p">
|
||||||
<INCLURE{fond=gamumail/#GET{fichier},env,lang=#GET{lang_dest}}>
|
#SET{fichier,#SLUG|concat{_soustexte}}
|
||||||
]
|
[(#CHEMIN{gamumail/#GET{fichier}.html}|oui)
|
||||||
|
<INCLURE{fond=gamumail/#GET{fichier},env,lang=#GET{lang_dest}}>
|
||||||
#SET{name,Tpdfs_ok}
|
]
|
||||||
<B_pdf>
|
#SET{name,Tpdfs_ok}
|
||||||
<h2><:gamumail:pdf_envoyes:></h2>
|
<B_pdf>
|
||||||
<div class="editer_groupe">
|
<h2><:gamumail:pdf_envoyes:></h2>
|
||||||
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
<div class="editer_groupe">
|
||||||
#SET{obli,"obligatoire"}
|
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||||
<div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
|
#SET{obli,"obligatoire"}
|
||||||
<BOUCLE_pdf(DATA){source tableau, #ENV{TFichierpdfs}}>
|
<div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
|
||||||
<div class="choix">
|
<BOUCLE_pdf(DATA){source tableau, #ENV{TFichierpdfs}}>
|
||||||
<input type="checkbox" class="checkbox" name="#GET{name}[]" value="[(#VALEUR|table_valeur{fichier})]_#CLE" id="#GET{name}_#COMPTEUR_BOUCLE" checked="checked" >
|
<div class="choix">
|
||||||
[(#SET{url_pdf, #URL_PAGE{spipdf}
|
<input type="checkbox" class="checkbox" name="#GET{name}[]" value="[(#VALEUR|table_valeur{fichier})]_#CLE" id="#GET{name}_#COMPTEUR_BOUCLE" checked="checked" >
|
||||||
|parametre_url{spipdf, #VALEUR|table_valeur{fichier}}
|
[(#SET{url_pdf, #URL_PAGE{spipdf}
|
||||||
|parametre_url{lang, #GET{lang_dest}}
|
|parametre_url{spipdf, #VALEUR|table_valeur{fichier}}
|
||||||
})]
|
|parametre_url{lang, #GET{lang_dest}}
|
||||||
<BOUCLE_options(DATA){source tableau, #VALEUR|table_valeur{contexte}}>
|
})]
|
||||||
[(#SET{url_pdf,[(#GET{url_pdf}|parametre_url{#CLE,#VALEUR})]})]
|
<BOUCLE_options(DATA){source tableau, #VALEUR|table_valeur{contexte}}>
|
||||||
</BOUCLE_options>
|
[(#SET{url_pdf,[(#GET{url_pdf}|parametre_url{#CLE,#VALEUR})]})]
|
||||||
<label for="#GET{name}_#COMPTEUR_BOUCLE">[(#VALEUR|table_valeur{nom})] : <a href="#GET{url_pdf}">voir le PDF</a></label>
|
</BOUCLE_options>
|
||||||
|
<label for="#GET{name}_#COMPTEUR_BOUCLE">[(#VALEUR|table_valeur{nom})] : <a href="#GET{url_pdf}">voir le PDF</a></label>
|
||||||
|
</div>
|
||||||
|
</BOUCLE_pdf>
|
||||||
</div>
|
</div>
|
||||||
</BOUCLE_pdf>
|
</div>
|
||||||
|
</B_pdf>
|
||||||
|
|
||||||
|
#SET{name,docs_spip}
|
||||||
|
<h2><:gamumail:documents_attaches:></h2>
|
||||||
|
<div class="editer_groupe">
|
||||||
|
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||||
|
<div class="editer editer_[(#GET{name})][ (#GET{erreurs}|oui)erreur]">
|
||||||
|
<div class="choix">
|
||||||
|
[<span class="erreur_message">(#GET{erreurs})</span>]
|
||||||
|
<label for="#GET{name}"><:gamumail:id_docs_attaches:></label>
|
||||||
|
<input type="text" class="text" name="#GET{name}" value="[(#ENV{#GET{name}})]" id="#GET{name}" >
|
||||||
|
</div>
|
||||||
|
<B_docs_spip>
|
||||||
|
<div class="details_docs_spip">
|
||||||
|
<ul>
|
||||||
|
<BOUCLE_docs_spip(DOCUMENTS){id_document IN #ENV{#GET{name}}|explode{','}}>
|
||||||
|
<li><strong>#ID_DOCUMENT :</strong> #TITRE ([<a class="mediabox" href="#URL_DOCUMENT">(#FICHIER|basename)</a>])</li>
|
||||||
|
</BOUCLE_docs_spip>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</B_docs_spip>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
#SET{fichier,all_fichiers}
|
||||||
|
[(#CHEMIN{gamumail/#GET{fichier}.html}|oui)
|
||||||
|
#SET{erreurs,#ENV**{erreurs}|table_valeur{Tid_doc}}
|
||||||
|
[<span class="erreur_message">(#GET{erreurs})</span>]
|
||||||
|
<INCLURE{fond=gamumail/#GET{fichier},env,slug=#SLUG,options=#ENV{options}}>
|
||||||
|
]
|
||||||
|
|
||||||
|
#SET{fichier,#SLUG|concat{_fichiers}}
|
||||||
|
[(#CHEMIN{gamumail/#GET{fichier}.html}|oui)
|
||||||
|
#SET{erreurs,#ENV**{erreurs}|table_valeur{Tid_doc}}
|
||||||
|
[<span class="erreur_message">(#GET{erreurs})</span>]
|
||||||
|
<h2><:gamumail:fichiers_annexes:></h2>
|
||||||
|
<INCLURE{fond=gamumail/#GET{fichier},env,options=#ENV{options}}>
|
||||||
|
]
|
||||||
|
</div>
|
||||||
|
<div class="minw-500p">
|
||||||
|
<h2><:gamumail:fichiers_televerser:></h2>
|
||||||
|
<INCLURE{fond=inclure/bigform,env,accept=#LISTE{image/*, application/pdf},suffix_liste_fichiers=gamumail}>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</B_pdf>
|
|
||||||
|
|
||||||
#SET{name,docs_spip}
|
|
||||||
<h2><:gamumail:documents_attaches:></h2>
|
|
||||||
<div class="editer_groupe">
|
|
||||||
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
|
||||||
<div class="editer editer_[(#GET{name})][ (#GET{erreurs}|oui)erreur]">
|
|
||||||
<div class="choix">
|
|
||||||
[<span class="erreur_message">(#GET{erreurs})</span>]
|
|
||||||
<label for="#GET{name}"><:gamumail:id_docs_attaches:></label>
|
|
||||||
<input type="text" class="text" name="#GET{name}" value="[(#ENV{#GET{name}})]" id="#GET{name}" >
|
|
||||||
</div>
|
|
||||||
<B_docs_spip>
|
|
||||||
<div class="details_docs_spip">
|
|
||||||
<ul>
|
|
||||||
<BOUCLE_docs_spip(DOCUMENTS){id_document IN #ENV{#GET{name}}|explode{','}}>
|
|
||||||
<li><strong>#ID_DOCUMENT :</strong> #TITRE ([<a class="mediabox" href="#URL_DOCUMENT">(#FICHIER|basename)</a>])</li>
|
|
||||||
</BOUCLE_docs_spip>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</B_docs_spip>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
#SET{fichier,all_fichiers}
|
<div class="boutons text-center">
|
||||||
[(#CHEMIN{gamumail/#GET{fichier}.html}|oui)
|
|
||||||
#SET{erreurs,#ENV**{erreurs}|table_valeur{Tid_doc}}
|
|
||||||
[<span class="erreur_message">(#GET{erreurs})</span>]
|
|
||||||
<INCLURE{fond=gamumail/#GET{fichier},env,slug=#SLUG,options=#ENV{options}}>
|
|
||||||
]
|
|
||||||
|
|
||||||
#SET{fichier,#SLUG|concat{_fichiers}}
|
|
||||||
[(#CHEMIN{gamumail/#GET{fichier}.html}|oui)
|
|
||||||
#SET{erreurs,#ENV**{erreurs}|table_valeur{Tid_doc}}
|
|
||||||
[<span class="erreur_message">(#GET{erreurs})</span>]
|
|
||||||
<h2><:gamumail:fichiers_annexes:></h2>
|
|
||||||
<INCLURE{fond=gamumail/#GET{fichier},env,options=#ENV{options}}>
|
|
||||||
]
|
|
||||||
|
|
||||||
<div class="boutons">
|
|
||||||
<button type="submit" class="btn"><:gamumail:envoyer:></button>
|
<button type="submit" class="btn"><:gamumail:envoyer:></button>
|
||||||
</div>
|
</div>
|
||||||
</div></form>
|
</div></form>
|
||||||
|
|
|
@ -112,6 +112,8 @@ function formulaires_gamumail_charger_dist($slug, $destinataires = 0, $Tclient =
|
||||||
$valeurs = $f($valeurs, $options, $slug, $destinataires, $Tclient, $Tpdf, $redirect);
|
$valeurs = $f($valeurs, $options, $slug, $destinataires, $Tclient, $Tpdf, $redirect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$valeurs['_bigup_rechercher_fichiers'] = true;
|
||||||
|
|
||||||
return $valeurs;
|
return $valeurs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -197,6 +199,21 @@ function formulaires_gamumail_verifier_dist($slug, $destinataires = 0, $Tclient
|
||||||
$erreurs = $f($erreurs, $options, $slug, $destinataires, $Tclient, $Tpdf, $redirect);
|
$erreurs = $f($erreurs, $options, $slug, $destinataires, $Tclient, $Tpdf, $redirect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Verification des fichiers téléversés
|
||||||
|
*/
|
||||||
|
defined('_IMG_MAX_WIDTH') || define('_IMG_MAX_WIDTH', 2048);
|
||||||
|
$options = [
|
||||||
|
'mime' => 'tout_mime',
|
||||||
|
'dimension_max' => [
|
||||||
|
'largeur' => 10000,
|
||||||
|
'hauteur' => 10000,
|
||||||
|
]
|
||||||
|
];
|
||||||
|
|
||||||
|
$bigform = charger_fonction('bigform_verifier','inc');
|
||||||
|
$bigform($options,$erreurs);
|
||||||
|
|
||||||
return $erreurs;
|
return $erreurs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -233,12 +250,22 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient =
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* on recupère d'éventuels fichiers téléversés
|
||||||
|
*/
|
||||||
|
include_spip('inc/joindre_document');
|
||||||
|
set_request('joindre_upload','ok');
|
||||||
|
$Tfiles = joindre_trouver_fichier_envoye();
|
||||||
|
if (!is_array($Tfiles)) {
|
||||||
|
$Tfiles = [];
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($envoi_separe)) {
|
if (empty($envoi_separe)) {
|
||||||
gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $redirect, $retour);
|
gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $Tfiles, $redirect, $retour);
|
||||||
} else {
|
} else {
|
||||||
$ok = true;
|
$ok = true;
|
||||||
foreach ($destinataires as $d) {
|
foreach ($destinataires as $d) {
|
||||||
$r = gamuSend($slug, $options, [$d], $Tclient, $Tpdf, $redirect);
|
$r = gamuSend($slug, $options, [$d], $Tclient, $Tpdf, $Tfiles, $redirect);
|
||||||
if (!$r) {
|
if (!$r) {
|
||||||
$ok = false;
|
$ok = false;
|
||||||
}
|
}
|
||||||
|
@ -263,7 +290,7 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient =
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $redirect, &$retour = []) {
|
function gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $Tfiles, $redirect, &$retour = []) {
|
||||||
|
|
||||||
$cc = _request('cc');
|
$cc = _request('cc');
|
||||||
$cci = _request('cci');
|
$cci = _request('cci');
|
||||||
|
@ -341,6 +368,19 @@ function gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $redirect, &
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// les documents par tFiles (téléversés)
|
||||||
|
if (!empty($Tfiles)) {
|
||||||
|
foreach ($Tfiles as $key => $fichier) {
|
||||||
|
$pieces_jointes[] = [
|
||||||
|
'chemin' => $fichier['tmp_name'],
|
||||||
|
'nom' => $fichier['name'],
|
||||||
|
'encodage' => 'base64',
|
||||||
|
'mime' => $fichier['type']
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// les pdfs générés en fonction du contexte
|
// les pdfs générés en fonction du contexte
|
||||||
$Tpdf_del = [];
|
$Tpdf_del = [];
|
||||||
if (!empty($Tpdfs_ok) and is_array($Tpdfs_ok)) {
|
if (!empty($Tpdfs_ok) and is_array($Tpdfs_ok)) {
|
||||||
|
@ -437,7 +477,6 @@ function gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $redirect, &
|
||||||
$corps['repondre_a'] = $repondre_a;
|
$corps['repondre_a'] = $repondre_a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// surcharges de traiter : d'abord les surcharges pour tous les slugs (tous_traiter.php) puis les spécifiques par slug (nom_slug_traiter.php)
|
// surcharges de traiter : d'abord les surcharges pour tous les slugs (tous_traiter.php) puis les spécifiques par slug (nom_slug_traiter.php)
|
||||||
if ($f = charger_fonction('traiter', 'gamumail', true)) {
|
if ($f = charger_fonction('traiter', 'gamumail', true)) {
|
||||||
$corps = $f($corps, $options, $slug, $destinataires, $Tclient, $Tpdf, $redirect);
|
$corps = $f($corps, $options, $slug, $destinataires, $Tclient, $Tpdf, $redirect);
|
||||||
|
|
48
inclure/inc-bigup_liste_fichiers_gamumail.html
Normal file
48
inclure/inc-bigup_liste_fichiers_gamumail.html
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
<style type="text/css" media="screen">
|
||||||
|
.fichier .description {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
/* margin-bottom: 6px; */
|
||||||
|
}
|
||||||
|
.fichier .description:hover {
|
||||||
|
background-color:rgba(177, 187, 196,0.5);
|
||||||
|
}
|
||||||
|
.fichier .previsualisation {
|
||||||
|
margin: 5px;
|
||||||
|
}
|
||||||
|
.html_titre {
|
||||||
|
display: none!important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
[(#REM)
|
||||||
|
surcharge du fichier de bigform :
|
||||||
|
- inclure/inc-bigup_liste_fichiers.html
|
||||||
|
]
|
||||||
|
<B_fichiers>
|
||||||
|
<div class='bigup_fichiers fichiers_[(#ENV{nom}|concat{#ENV{multiple}|=={oui}|?{\[\]}}|bigup_nom2classe)]'>
|
||||||
|
<BOUCLE_fichiers(DATA){source tableau, #FICHIERS|bigup_lister_fichiers{#ENV{nom},#ENV{multiple}}}>
|
||||||
|
<div class='fichier'>
|
||||||
|
<div class="description">
|
||||||
|
[(#VALEUR{bigup/vignette/data}|oui)
|
||||||
|
<div class="previsualisation #VALEUR{bigup/extension}" title="[(#NAME|attribut_html)] ([(#SIZE|taille_en_octets)])">
|
||||||
|
<span style="background-image:url([(#VALEUR{bigup/vignette/data})]);"></span>
|
||||||
|
</div>]
|
||||||
|
[(#VALEUR{bigup/vignette/data}|non)
|
||||||
|
<div class="vignette_extension #VALEUR{bigup/extension}" title="[(#TYPE|attribut_html)]"><span></span></div>]
|
||||||
|
<div class='infos'>
|
||||||
|
<span class='name'><strong>#NAME</strong></span>
|
||||||
|
<span class='size'>[(#SIZE|taille_en_octets)]</span>
|
||||||
|
</div>
|
||||||
|
<div class='actions'>
|
||||||
|
<button class='btn' type='submit'
|
||||||
|
name='bigup_enlever_fichier' value="#VALEUR{bigup/identifiant}"
|
||||||
|
onclick="jQuery(this).parents('form').find('input,textarea,select').filter('[required]').prop('required', false); return true;">
|
||||||
|
<:bigup:bouton_enlever:>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</BOUCLE_fichiers>
|
||||||
|
</div>
|
||||||
|
</B_fichiers>
|
||||||
|
|
|
@ -39,6 +39,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
|
||||||
|
|
||||||
// F
|
// F
|
||||||
'fichiers_annexes' => 'Fichiers annexes',
|
'fichiers_annexes' => 'Fichiers annexes',
|
||||||
|
'fichiers_televerser' => 'Fichiers téléversés',
|
||||||
|
|
||||||
// I
|
// I
|
||||||
'icone_creer_gamumail' => 'Créer un gamumail',
|
'icone_creer_gamumail' => 'Créer un gamumail',
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
<licence>GNU/GPL</licence>
|
<licence>GNU/GPL</licence>
|
||||||
|
|
||||||
<necessite nom="bigform" compatibilite="[1.0.0;[" />
|
<necessite nom="bigform" compatibilite="[1.3.3;[" />
|
||||||
<necessite nom="crayons" compatibilite="[2.0.10;[" />
|
<necessite nom="crayons" compatibilite="[2.0.10;[" />
|
||||||
<necessite nom="facteur" compatibilite="[4.0.0;[" />
|
<necessite nom="facteur" compatibilite="[4.0.0;[" />
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue