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

effacer les fichiers lorsqu'on supprime un champ d'un formulaire

parent e4ca223b
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -256,6 +256,33 @@ function formidable_effacer_fichiers_reponse($id_formulaire, $id_formulaires_rep
}
}
/** Efface les fichiers d'un champ pour les réponses d'un formulaire
* @param str $id_formulaire
* @param array|str $reponses
* @param str $champ
**/
function formidable_effacer_fichiers_champ($id_formulaire, $reponses, $champ) {
if ($champ != '') { // on devrait pas arriver ici avec un $champ vide, mais prenons nos précaution
if (!is_array($reponses)) {
$reponses = array($reponses);
}
$rep_vide = array(".",'..','.ok'); // si scandire retourne cela où inférieur, alors le dossier est vide
foreach ($reponses as $rep) {
$chemin_reponse = _DIR_FICHIERS_FORMIDABLE."formulaire_$id_formulaire/reponse_$rep";
$chemin_champ = $chemin_reponse."/".$champ;
if (file_exists($chemin_champ)) {
effacer_repertoire_temporaire($chemin_champ);
if (count(array_diff(scandir($chemin_reponse), $rep_vide)) == 0) { // si jamais il ne reste plus aucun fichiers pour cette réponse, on peut effacer le repertoire de celle-ci
effacer_repertoire_temporaire($chemin_reponse);
}
}
}
}
}
/**
* Générer une url d'action pour la récupération d'un fichier lié à une réponse
* @param int|str $id_formulaire
......
......@@ -180,7 +180,6 @@ function traiter_enregistrement_update_dist($id_formulaire, $traitement, $saisie
'id_formulaire = '.$id_formulaire
);
$reponses = array_map('reset', $reponses);
// Tous les noms de champs à supprimer
$noms = array_keys($comparaison['supprimees']);
......@@ -192,6 +191,12 @@ function traiter_enregistrement_update_dist($id_formulaire, $traitement, $saisie
sql_in('nom', $noms)
)
);
// On efface les vieux fichiers
foreach ($noms as $nom) {
if ($comparaison['supprimees'][$nom]['saisie'] == 'fichiers') {
formidable_effacer_fichiers_champ($id_formulaire, $reponses, $nom);
}
}
}
}
......
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