Skip to content
Extraits de code Groupes Projets
Valider e4800301 rédigé par maieul@maieul.net's avatar maieul@maieul.net
Parcourir les fichiers

profiter de la nouvelle version de cvtupload pour permettre de remplacer les...

profiter de la nouvelle version de cvtupload pour permettre de remplacer les fichiers lors d'un envoi de formulaire de modification d'une réponse
parent bec6a933
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -444,6 +444,12 @@ function formulaires_formidable_fichiers($id, $valeurs = array(), $id_formulaire ...@@ -444,6 +444,12 @@ function formulaires_formidable_fichiers($id, $valeurs = array(), $id_formulaire
* *
**/ **/
function formidable_definir_contexte_avec_reponse($contexte, $id_formulaires_reponse, &$ok) { function formidable_definir_contexte_avec_reponse($contexte, $id_formulaires_reponse, &$ok) {
// On prépare des infos si jamais on a des champs fichiers
$saisies_fichiers = saisies_lister_avec_type($contexte['_saisies'], 'fichiers');// les saisies de type fichier
$fichiers = array();
$id_formulaire = $contexte['_formidable']['id_formulaire'];
// On va chercher tous les champs // On va chercher tous les champs
$champs = sql_allfetsel( $champs = sql_allfetsel(
'nom, valeur', 'nom, valeur',
...@@ -451,11 +457,35 @@ function formidable_definir_contexte_avec_reponse($contexte, $id_formulaires_rep ...@@ -451,11 +457,35 @@ function formidable_definir_contexte_avec_reponse($contexte, $id_formulaires_rep
'id_formulaires_reponse = ' . $id_formulaires_reponse 'id_formulaires_reponse = ' . $id_formulaires_reponse
); );
$ok = count($champs) ? true : false; $ok = count($champs) ? true : false;
$securiser_action = charger_fonction('securiser_action','inc');
// On remplit le contexte avec // On remplit le contexte avec
foreach ($champs as $champ) { foreach ($champs as $champ) {
$test_array = filtre_tenter_unserialize_dist($champ['valeur']); if (array_key_exists($champ['nom'], $saisies_fichiers)) {
$contexte[$champ['nom']] = is_array($test_array) ? $test_array : $champ['valeur']; $valeur= unserialize($champ['valeur']);
$nom = $champ['nom'];
$fichiers[$nom] = array();
$chemin = _DIR_FICHIERS_FORMIDABLE
."formulaire_$id_formulaire/reponse_$id_formulaires_reponse/"
."$nom/";
foreach ($valeur as $f => $fichier) {
$fichiers[$nom][$f]= array();
$param = serialize(array(
'formulaire' => $id_formulaire,
'reponse' => $id_formulaires_reponse,
'fichier' => $fichier['nom'],
'saisie' => $champ['nom']
));
$fichiers[$nom][$f]['url'] = $securiser_action('formidable_recuperer_fichier',$param,'',false);
$fichiers[$nom][$f]['chemin'] = $chemin.$fichier['nom'];
}
} else {
$test_array = filtre_tenter_unserialize_dist($champ['valeur']);
$contexte[$champ['nom']] = is_array($test_array) ? $test_array : $champ['valeur'];
}
}
if ($fichiers != array()) {//s'il y a des fichiers dans les réponses
$contexte['cvtupload_precharger_fichiers'] = $fichiers;
} }
return $contexte; return $contexte;
} }
...@@ -243,3 +243,15 @@ function formidable_deplacer_fichiers_produire_vue_saisie($saisie, $options) { ...@@ -243,3 +243,15 @@ function formidable_deplacer_fichiers_produire_vue_saisie($saisie, $options) {
} }
return $description_fichiers; return $description_fichiers;
} }
/**
* efface les fichiers d'une réponse formidable
* @param $str $id_formulaire
* @param $str $id_formulaires_reponse
**/
function formidable_effacer_fichiers_reponse($id_formulaire, $id_formulaires_reponse){
$chemin = _DIR_FICHIERS_FORMIDABLE."formulaire_$id_formulaire/reponse_$id_formulaires_reponse";
if (file_exists($chemin)) {// par sécurité
effacer_repertoire_temporaire($chemin);
}
}
\ No newline at end of file
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
<necessite nom="facteur" compatibilite="[3.0.3;[" /> <necessite nom="facteur" compatibilite="[3.0.3;[" />
<utilise nom="collectionjson" compatibilite="[1.5.0;[" /> <utilise nom="collectionjson" compatibilite="[1.5.0;[" />
<utilise nom="cvtupload" compatibilite="[1.6.6;[" /> <utilise nom="cvtupload" compatibilite="[1.7.0;[" />
<menu nom="formulaires" titre="formidable:bouton_formulaires" parent="menu_edition" icone="images/formulaire-16.png" /> <menu nom="formulaires" titre="formidable:bouton_formulaires" parent="menu_edition" icone="images/formulaire-16.png" />
</paquet> </paquet>
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
if (!defined('_ECRIRE_INC_VERSION')) { if (!defined('_ECRIRE_INC_VERSION')) {
return; return;
} }
include_spip('inc/formidable_fichiers');
function traiter_enregistrement_dist($args, $retours) { function traiter_enregistrement_dist($args, $retours) {
include_spip('inc/formidable'); include_spip('inc/formidable');
include_spip('base/abstract_sql'); include_spip('base/abstract_sql');
...@@ -96,13 +96,15 @@ function traiter_enregistrement_dist($args, $retours) { ...@@ -96,13 +96,15 @@ function traiter_enregistrement_dist($args, $retours) {
// Expiration dans 30 jours // Expiration dans 30 jours
spip_setcookie($nom_cookie, $_COOKIE[$nom_cookie] = $cookie, time() + 30 * 24 * 3600); spip_setcookie($nom_cookie, $_COOKIE[$nom_cookie] = $cookie, time() + 30 * 24 * 3600);
} }
} else { } else { // si c'est une modif de réponse existante
// simple mise à jour du champ maj de la table spip_formulaires_reponses // simple mise à jour du champ maj de la table spip_formulaires_reponses
sql_updateq( sql_updateq(
'spip_formulaires_reponses', 'spip_formulaires_reponses',
array('maj' => 'NOW()'), array('maj' => 'NOW()'),
"id_formulaires_reponse = $id_formulaires_reponse" "id_formulaires_reponse = $id_formulaires_reponse"
); );
//effacer les fichiers existant
formidable_effacer_fichiers_reponse($id_formulaire, $id_formulaires_reponse);
} }
// Si l'id n'a pas été créé correctement alors erreur // Si l'id n'a pas été créé correctement alors erreur
...@@ -202,6 +204,5 @@ function traiter_enregistrement_update_dist($id_formulaire, $traitement, $saisie ...@@ -202,6 +204,5 @@ function traiter_enregistrement_update_dist($id_formulaire, $traitement, $saisie
* return array|null un tableau organisé par fichier, contenant 'nom', 'extension','mime','taille' * return array|null un tableau organisé par fichier, contenant 'nom', 'extension','mime','taille'
**/ **/
function traiter_enregistrement_fichiers($saisie, $id_formulaire, $id_formulaires_reponse){ function traiter_enregistrement_fichiers($saisie, $id_formulaire, $id_formulaires_reponse){
include_spip('inc/formidable_fichiers');
return formidable_deplacer_fichiers_produire_vue_saisie($saisie,array('id_formulaire'=>$id_formulaire,'id_formulaires_reponse'=>$id_formulaires_reponse)); return formidable_deplacer_fichiers_produire_vue_saisie($saisie,array('id_formulaire'=>$id_formulaire,'id_formulaires_reponse'=>$id_formulaires_reponse));
} }
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter