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,11 +110,12 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex gap-6">
|
||||
<div class="w500p">
|
||||
#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>
|
||||
<h2><:gamumail:pdf_envoyes:></h2>
|
||||
|
@ -160,7 +161,6 @@
|
|||
</B_docs_spip>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
#SET{fichier,all_fichiers}
|
||||
[(#CHEMIN{gamumail/#GET{fichier}.html}|oui)
|
||||
#SET{erreurs,#ENV**{erreurs}|table_valeur{Tid_doc}}
|
||||
|
@ -175,8 +175,15 @@
|
|||
<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 class="boutons">
|
||||
|
||||
<div class="boutons text-center">
|
||||
<button type="submit" class="btn"><:gamumail:envoyer:></button>
|
||||
</div>
|
||||
</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['_bigup_rechercher_fichiers'] = true;
|
||||
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
|
@ -197,6 +199,21 @@ function formulaires_gamumail_verifier_dist($slug, $destinataires = 0, $Tclient
|
|||
$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;
|
||||
}
|
||||
|
||||
|
@ -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)) {
|
||||
gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $redirect, $retour);
|
||||
gamuSend($slug, $options, $destinataires, $Tclient, $Tpdf, $Tfiles, $redirect, $retour);
|
||||
} else {
|
||||
$ok = true;
|
||||
foreach ($destinataires as $d) {
|
||||
$r = gamuSend($slug, $options, [$d], $Tclient, $Tpdf, $redirect);
|
||||
$r = gamuSend($slug, $options, [$d], $Tclient, $Tpdf, $Tfiles, $redirect);
|
||||
if (!$r) {
|
||||
$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');
|
||||
$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
|
||||
$Tpdf_del = [];
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
// 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)) {
|
||||
$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
|
||||
'fichiers_annexes' => 'Fichiers annexes',
|
||||
'fichiers_televerser' => 'Fichiers téléversés',
|
||||
|
||||
// I
|
||||
'icone_creer_gamumail' => 'Créer un gamumail',
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
<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="facteur" compatibilite="[4.0.0;[" />
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue