Valider 657db8af rédigé par cedric@yterium.com's avatar cedric@yterium.com
Parcourir les fichiers

ajout d'une fonction determiner_sous_dossier_document() pour choisir le...

ajout d'une fonction determiner_sous_dossier_document() pour choisir le sous-dossier dans lequel on range un document : par defaut dans le dossier correspondant a l'extension, sauf si le mode commence par logo -> on range alors dans un sous-dossier IMG/logo/
Utilisation de la fonction avant chaque appel a copier_document() pour que le dossier soit toujours decide ici
parent 5934933f
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+22 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -185,7 +185,8 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet,
		// Exemple : si extension .jpg mais le contenu est un png
		if (!empty($infos['type_image']) and $infos['type_image'] !== $champs['extension']) {
			spip_log('Image `' . $file['name'] . '` mauvaise extension. Correcte : ' . $infos['type_image'], 'medias' . _LOG_INFO);
			$new = copier_document($infos['type_image'], $file['name'] . '.' . $infos['type_image'], $champs['fichier']);
			$subdir = determiner_sous_dossier_document($infos['type_image'], $file['name'] . '.' . $infos['type_image'], $mode);
			$new = copier_document($infos['type_image'], $file['name'] . '.' . $infos['type_image'], $champs['fichier'], $subdir);
			if ($new) {
				supprimer_fichier($champs['fichier']);
				$champs['fichier'] = $new;
@@ -290,6 +291,23 @@ function action_ajouter_un_document_dist($id_document, $file, $objet, $id_objet,
	return $id_document;
}

/**
 * Sous-repertoire dans lequel on stocke le document
 * en regle general $ext/ sauf pour les logo
 * @param $ext
 * @param $fichier
 * @param $mode
 * @return mixed
 */
function determiner_sous_dossier_document($ext, $fichier, $mode) {

	// si mode un logoxx on met dans logo/
	if (strncmp($mode, 'logo', 4) === 0) {
		return "logo";
	}

	return $ext;
}

/**
 * Corrige l'extension du fichier dans quelques cas particuliers
@@ -407,8 +425,9 @@ function fixer_fichier_upload($file, $mode = '') {
	 * On vérifie que le fichier existe et qu'il contient quelque chose
	 */
	if (is_array($row = verifier_upload_autorise($file['name'], $mode))) {
		$subdir = determiner_sous_dossier_document($row['extension'], $file['name'], $mode);
		if (!isset($row['autozip'])) {
			$row['fichier'] = copier_document($row['extension'], $file['name'], $file['tmp_name']);
			$row['fichier'] = copier_document($row['extension'], $file['name'], $file['tmp_name'], $subdir);
			/**
			 * On vérifie que le fichier a une taille
			 * si non, on le supprime et on affiche une erreur
@@ -460,7 +479,7 @@ function fixer_fichier_upload($file, $mode = '') {
				return false;
			}

			$row['fichier'] = copier_document($row['extension'], $file['name'], $source);
			$row['fichier'] = copier_document($row['extension'], $file['name'], $source, $subdir);
			spip_unlink($source);
			/**
			 * On vérifie que le fichier a une taille
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<paquet
	prefix="medias"
	categorie="multimedia"
	version="2.24.0"
	version="2.24.1"
	etat="stable"
	compatibilite="[3.3.0-dev;3.3.*]"
	logo="prive/themes/spip/images/portfolio-32.png"