Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3357 → Rev 3358

/trunk/widget/modules/manager/Manager.php
70,12 → 70,13
 
if ( $mode === 'modification' ) {
$parametres = $this->traiterParametresModif();
$json = $this->getDao()->modifier( $this->cel_url_tpl, $parametres );
$donnees = array_merge( $parametres, $this->traiterDonneesFiles() );
$json = $this->getDao()->modifier( $this->cel_url_tpl, $donnees );
} else {
$donnees = array_merge( $_POST, $this->traiterDonneesFiles() );
// var_dump($donnees);
$json = $this->getDao()->ajouter( $this->cel_url_tpl, $donnees );
$mode = $this->parametres['mode'] = 'modification';
$json = $this->getDao()->ajouter( $this->cel_url_tpl, $donnees );
$mode = $this->parametres['mode'] = 'modification';
}
}
 
184,7 → 185,6
 
foreach( $this->parametres as $nom_critere => $valeur_critere ) {
if ( in_array( $nom_critere, $criteres ) ) {
 
$valeur_critere = str_replace( ' ', '%20', $valeur_critere );
$parametres_flux .= $nom_critere . '=' . $valeur_critere . '&';
}
202,7 → 202,7
if ($parametres !== '' ) {
$parametres_modif[$id] = $parametres;
} else {
$parametres_modif[$id] = ' ';
$parametres_modif[$id] = ' ';
}
}
return $parametres_modif;
215,36 → 215,33
$help_files_names = array();
$error =
"<div class=\"message-echec container\">Echec du téléchargement : ".
"L\'extention de l\'image pour " . $nom . " n\'est pas bonne".
", formats acceptés : png, gif, jpg, jpeg, ou csv.".
"L\'extention de l\'image pour " . $nom . " n\'est pas bonne".
", formats acceptés : png, gif, jpg, jpeg, ou csv.".
"</div>";
$image_projet_langue = ( $this->parametres['langue'] !== 'fr' ) ? '_' . $this->parametres['langue'] : '';
$dossier_url = __DIR__ . '/squelettes/img/images_projets/' . $_POST['projet'] . $image_projet_langue . '/';
 
foreach ( array_keys( $_FILES ) as $file ) {
 
if ( $_FILES[$file]['name'] !== '' ) {
$extension = $this->obtenirExtension( $_FILES[$file] );
 
if ( $extension ) {
 
$transmettre_donnees = true;
 
if ( strstr( $file, 'help-') ) {
// Pas besoin de $return :
// Type déjà transmis dans le json des champs supp
if ( strstr( $file, 'help-') ) {
// Pas besoin de $return :
// Type déjà transmis dans le json des champs supp
$real_file_key = str_replace( 'help-', '', $file );
$help_files_names[$real_file_key] = $real_file_key . '.' . $extension;
} else {
$return[$file] = $_FILES[$file]['type'];
$files_names[$file] = $file .'.' . $extension;
$files_names[$file] = $file .'.' . $extension;
}
} else {
 
echo (
"<div class=\"message-echec container\">Echec du téléchargement : ".
"L\'extention de l\'image pour " . $nom . " n\'est pas bonne".
", formats acceptés : png, gif, jpg, jpeg, ou csv.".
"L\'extention de l\'image pour " . $nom . " n\'est pas bonne".
", formats acceptés : png, gif, jpg, jpeg, ou csv.".
"</div>"
);
}
253,10 → 250,8
 
if ( $transmettre_donnees ) {
if( !is_dir( $dossier_url ) ) {
 
mkdir( $dossier_url, 0755 );
}
 
// Téléversements
if ( count( $files_names ) > 0 ) {
foreach ( array_keys( $files_names ) as $file ) {
269,25 → 264,44
}
}
}
 
return $return;
}
 
private function televerser( $file, $full_name, $dossier_url ) {
$taille_maxi = 5242880;
$taille = filesize( $_FILES[$file]['tmp_name'] );
$extension = $this->obtenirExtension( $_FILES[$file] );
$file_name = str_replace( $extension, '', $full_name );
$taille_maxi = 5242880;
$taille = filesize( $_FILES[$file]['tmp_name'] );
$extension = $this->obtenirExtension( $_FILES[$file] );
$file_name = str_replace( '.' . $extension, '', $full_name );
$file_exists = file_exists( $dossier_url . $full_name );
$ex_file_name = $full_name;
 
// verifier l'existance d'un fichier avec une extention différente
// ex: logo.png vers logo.jpg
if ( !$file_exists ) {
switch ( $extension ) {
case 'png':
$ex_file_name = $file_name . '.jpg';
break;
case 'csv':
$ex_file_name = $file_name . '.tsv';
break;
case 'tsv':
$ex_file_name = $file_name . '.csv';
break;
case 'jpg':
default:
$ex_file_name = $file_name . '.png';
break;
}
$file_exists = file_exists( $dossier_url . $ex_file_name );
}
 
//Début des vérifications de sécurité...
if ( file_exists( $dossier_url . $full_name ) ) {
 
if ( $_POST['mode'] === 'modification' ) {
 
if ( $file_exists ) {
if ( $this->parametres['mode'] === 'modification' ) {
// Le fichier existe déjà, c'est normal si on est en mode modification
unlink ( $dossier_url . $full_name );
unlink( $dossier_url . $ex_file_name );
} else {
 
$erreur =
"<div class=\"message-echec container\">Echec du téléchargement : ".
"Un fichier pour \"" . $file_name.
299,7 → 313,6
}
 
if ( !$extension ) {
 
//Si le format n'est pas bon
$erreur =
"<div class=\"message-echec container\">".
310,7 → 323,6
}
 
if ( $taille > $taille_maxi ) {
 
$erreur =
"<div class=\"message-echec container\">".
"Echec du téléchargement pour ".
320,11 → 332,10
}
 
if ( isset( $erreur ) ) {
 
echo $erreur;
} else {
 
if ( !move_uploaded_file( $_FILES[$file]['tmp_name'], $dossier_url . $this->remove_accents( $full_name ) ) ) {
$dest_file = $dossier_url . $this->remove_accents( $full_name );
if ( !move_uploaded_file( $_FILES[$file]['tmp_name'], $dest_file ) ) {
// move_uploaded_file() renvoie false si l'upload a échoué
echo
"<div class=\"message-echec container\">".
331,6 → 342,8
"Erreur du téléchargement pour ".
"\"" . $file_name . "\"".
"</div>";
} else {
chmod($dest_file, 0666);
}
}
}
337,31 → 350,31
 
private function obtenirExtension( $files ) {
$type = exif_imagetype( $files['tmp_name'] );
 
//une vérif pas mal pour les types image
if ( $type == ( IMAGETYPE_PNG || IMAGETYPE_JPEG || IMAGETYPE_GIF ) ) {
 
switch ( $type ) {
case '1' :
$format = 'gif';
break;
case '2' :
$format = 'jpg';
break;
case '3' :
$format = 'png';
break;
default :
break;
}
} elseif ( str_replace( '.csv' , '', $files['name'] ) && substr( strrchr($files['type'], '/' ), 1 ) === 'csv' ) {
// Pas trouvé mieux pour csv :
// Les fonctions qui pourraient utiliser $_FILES[file]["tmp_path"] me répondent "text/plain"...
 
$format = 'csv';
} else {
 
return false;
}
switch ( $type ) {
case '1' :
$format = 'gif';
break;
case '2' :
$format = 'jpg';
break;
case '3' :
$format = 'png';
break;
default :
break;
}
} elseif ( str_replace( '.csv' , '', $files['name'] ) && substr( strrchr($files['type'], '/' ), 1 ) === 'csv' ) {
// Pas trouvé mieux pour csv :
// Les fonctions qui pourraient utiliser $_FILES[file]["tmp_path"] me répondent "text/plain"...
$format = 'csv';
} elseif ( str_replace( '.tsv' , '', $files['name'] ) && substr( strrchr($files['type'], '/' ), 1 ) === 'tsv' ) {
$format = 'tsv';
} else {
return false;
}
return $format;
}