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

effacer les fichiers lorsqu'on efface les réponses/les formulaires

parent 300337d9
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
if (!defined('_ECRIRE_INC_VERSION')) { if (!defined('_ECRIRE_INC_VERSION')) {
return; return;
} }
include_spip('inc/formidable_fichiers');
define( define(
'_RACCOURCI_MODELE_FORMIDABLE', '_RACCOURCI_MODELE_FORMIDABLE',
'(<(formulaire\|formidable|formidable|form)' # <modele '(<(formulaire\|formidable|formidable|form)' # <modele
...@@ -163,12 +163,22 @@ function formidable_optimiser_base_disparus($flux) { ...@@ -163,12 +163,22 @@ function formidable_optimiser_base_disparus($flux) {
'spip_formulaires', 'spip_formulaires',
'statut='.sql_quote('poubelle') 'statut='.sql_quote('poubelle')
); );
$res2 = sql_select(
'id_formulaire AS id',
'spip_formulaires',
'statut='.sql_quote('poubelle')
);//Copie pour supprimer les fichiers
// On génère la suppression // On génère la suppression
$flux['data'] += optimiser_sansref('spip_formulaires', 'id_formulaire', $res); $flux['data'] += optimiser_sansref('spip_formulaires', 'id_formulaire', $res);
while ($reponse = sql_fetch($res2)){
$flux['data'] += formidable_effacer_fichiers_formulaire($reponse['id']);
}
# les reponses qui sont associees a un formulaire inexistant // les reponses qui sont associees a un formulaire inexistant
$res = sql_select( $res = sql_select(
'R.id_formulaire AS id', 'R.id_formulaire AS id',
'spip_formulaires_reponses AS R LEFT JOIN spip_formulaires AS F ON R.id_formulaire=F.id_formulaire', 'spip_formulaires_reponses AS R LEFT JOIN spip_formulaires AS F ON R.id_formulaire=F.id_formulaire',
...@@ -177,16 +187,22 @@ function formidable_optimiser_base_disparus($flux) { ...@@ -177,16 +187,22 @@ function formidable_optimiser_base_disparus($flux) {
$flux['data'] += optimiser_sansref('spip_formulaires_reponses', 'id_formulaire', $res); $flux['data'] += optimiser_sansref('spip_formulaires_reponses', 'id_formulaire', $res);
// Les réponses qui sont à la poubelle // Les réponses qui sont à la poubelle
$res = sql_select( $res = sql_select(
'id_formulaires_reponse AS id', 'id_formulaires_reponse AS id, id_formulaire AS form',
'spip_formulaires_reponses', 'spip_formulaires_reponses',
sql_in('statut', array('refuse', 'poubelle')) sql_in('statut', array('refuse', 'poubelle'))
); );
$res2 = sql_select(
'id_formulaires_reponse AS id, id_formulaire AS form',
'spip_formulaires_reponses',
sql_in('statut', array('refuse', 'poubelle'))
); //Copie pour la suppression des fichiers des réponses, c'est idiot de pas pouvoir faire une seule requete
// On génère la suppression // On génère la suppression
$flux['data'] += optimiser_sansref('spip_formulaires_reponses', 'id_formulaires_reponse', $res); $flux['data'] += optimiser_sansref('spip_formulaires_reponses', 'id_formulaires_reponse', $res);
while ($reponse = sql_fetch($res2)){
$flux['data'] += formidable_effacer_fichiers_reponse($reponse['form'], $reponse['id']);
}
// les champs des reponses associes a une reponse inexistante // les champs des reponses associes a une reponse inexistante
...@@ -220,7 +236,6 @@ function formidable_optimiser_base_disparus($flux) { ...@@ -220,7 +236,6 @@ function formidable_optimiser_base_disparus($flux) {
sql_update('spip_formulaires_reponses', array('ip' => 'MD5(ip)'), $critere_cnil); sql_update('spip_formulaires_reponses', array('ip' => 'MD5(ip)'), $critere_cnil);
} }
} }
return $flux; return $flux;
} }
......
...@@ -248,17 +248,39 @@ function formidable_deplacer_fichiers_produire_vue_saisie($saisie, $options) { ...@@ -248,17 +248,39 @@ function formidable_deplacer_fichiers_produire_vue_saisie($saisie, $options) {
} }
return $description_fichiers; return $description_fichiers;
} }
/**
* Efface les fichiers d'un formulaire
* @param $str $id_formulaire
* @return int 1 ou 0 selon que l'on a effacé ou non un répertoire
**/
function formidable_effacer_fichiers_formulaire($id_formulaire){
$chemin = _DIR_FICHIERS_FORMIDABLE."formulaire_$id_formulaire";
if (file_exists($chemin)) {// par sécurité
if (supprimer_repertoire($chemin)){
return 1;
} else {
return 0;
}
}
return 0;
}
/** /**
* efface les fichiers d'une réponse formidable * efface les fichiers d'une réponse formidable
* @param $str $id_formulaire * @param $str $id_formulaire
* @param $str $id_formulaires_reponse * @param $str $id_formulaires_reponse
* @return int 1 ou 0 selon que l'on a effacé ou non un répertoire
**/ **/
function formidable_effacer_fichiers_reponse($id_formulaire, $id_formulaires_reponse){ function formidable_effacer_fichiers_reponse($id_formulaire, $id_formulaires_reponse){
$chemin = _DIR_FICHIERS_FORMIDABLE."formulaire_$id_formulaire/reponse_$id_formulaires_reponse"; $chemin = _DIR_FICHIERS_FORMIDABLE."formulaire_$id_formulaire/reponse_$id_formulaires_reponse";
if (file_exists($chemin)) {// par sécurité if (file_exists($chemin)) {// par sécurité
supprimer_repertoire($chemin); if (supprimer_repertoire($chemin)){
return 1;
} else {
return 0;
}
} }
return 0;
} }
/** Efface les fichiers d'un champ pour les réponses d'un formulaire /** Efface les fichiers d'un champ pour les réponses d'un formulaire
......
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