Valider 9471aa8e rédigé par cerdic's avatar cerdic
Parcourir les fichiers

normaliser la recherche des vignettes de type de document :

cela devient un simple find_in_path dans le chemin prive/vignettes/
ce qui permet de couvrir d'un seul coup tous les cas de figure.
Suppression des constantes idoines et de leurs références, et code mort dans les filtres images ou la fonction cherche_image_nommee ne servait plus.

Cela ouvre la porte au deplacement du dossier prive/vignettes/ dans l'extension medias

En cas de personalisation dans un squelette, il faut deplace squelettes/vignettes/ vers squelettes/prive/vignettes/
parent b1c29b4a
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+3 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -45,7 +45,9 @@ function get_spip_doc($fichier) {
	if (!strlen($fichier))
		return false;

	$fichier = (strpos($fichier, _DIR_IMG) === false)
	$fichier = (
		    strncmp($fichier,_DIR_IMG, strlen(_DIR_IMG))!=0
		)
		? _DIR_IMG . $fichier
		: $fichier ;

+0 −34
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -58,35 +58,6 @@ function statut_effacer_images_temporaires($stat){
	$statut = $stat?true:false;
}

// http://doc.spip.org/@cherche_image_nommee
function cherche_image_nommee($nom, $formats = array ('gif', 'jpg', 'png')) {

	if (strncmp(_DIR_IMG, $nom,$n=strlen(_DIR_IMG))==0) {
		$nom = substr($nom,$n);
	} else 	if (strncmp(_DIR_IMG_PACK, $nom,$n=strlen(_DIR_IMG_PACK))==0) {
		$nom = substr($nom,$n);
	} else if (strncmp(_DIR_IMG_ICONE_DIST, $nom,$n=strlen(_DIR_IMG_ICONES_DIST))==0) {
		$nom = substr($nom,$n);
	}
	$pos = strrpos($nom, "/");
	if ($pos > 0) {
		$chemin = substr($nom, 0, $pos+1);
		$nom = substr($nom, $pos+1);
	} else {
		$chemin = "";
	}

	reset($formats);
	while (list(, $format) = each($formats)) {
		if (@file_exists(_DIR_IMG . "$chemin$nom.$format")){ 
			return array((_DIR_IMG . $chemin), $nom, $format);
		} else if (@file_exists(_DIR_IMG_PACK . "$chemin$nom.$format")){ 
			return array((_DIR_IMG_PACK . $chemin), $nom, $format);
		} else if (@file_exists(_DIR_IMG_ICONES_DIST . "$chemin$nom.$format")){ 
			return array((_DIR_IMG_ICONES_DIST . $chemin), $nom, $format);
		}
	}
}

// Fonctions de traitement d'image
// uniquement pour GD2
@@ -780,11 +751,6 @@ function process_image_reduire($fonction,$img,$taille,$taille_y,$force,$cherche_
	if ($image['creer']==false && !$force)
		return _image_ecrire_tag($image,array('src'=>$image['fichier_dest'],'width'=>$image['largeur_dest'],'height'=>$image['hauteur_dest']));

	if ($cherche_image){
		$cherche = cherche_image_nommee(substr($image['fichier'],0,-4), array($image["format_source"]));
		if (!$cherche) return $img;
		//list($chemin,$nom,$format) = $cherche;
	}
	if (in_array($image["format_source"],array('jpg','gif','png'))){
		$destWidth = $image['largeur_dest'];
		$destHeight = $image['hauteur_dest'];
+0 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -45,12 +45,9 @@ define('_ROOT_RESTREINT', _ROOT_CWD . _DIR_RESTREINT);
if (!defined('_NOM_IMG_PACK')) define('_NOM_IMG_PACK', 'images/');
# le chemin http (relatif) vers les images standard
define('_DIR_IMG_PACK', (_DIR_RACINE . 'prive/' . _NOM_IMG_PACK));
# le chemin des vignettes de type de fichier
define('_DIR_IMG_ICONES_DIST', _DIR_RACINE . "prive/vignettes/");

# le chemin php (absolu) vers les images standard (pour hebergement centralise)
define('_ROOT_IMG_PACK', dirname(dirname(__FILE__)) . '/prive/' . _NOM_IMG_PACK);
define('_ROOT_IMG_ICONES_DIST', dirname(dirname(__FILE__)) . '/prive/vignettes/');

# le nom du repertoire des  bibliotheques JavaScript
if (!defined('_JAVASCRIPT')) define('_JAVASCRIPT', 'javascript/'); // utilisable avec #CHEMIN et find_in_path
+5 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -202,7 +202,10 @@ function quete_logo_file($row, $connect=NULL) {
		$f = charger_fonction('vignette','inc');
		$logo = $f($row['extension'], false);
	}
	if (preg_match(',^'._DIR_IMG_ICONES_DIST.',', $logo))
	// si c'est une vignette type doc, la renvoyer direct
	if (strncmp($logo,_DIR_PLUGINS, strlen(_DIR_PLUGINS))==0
		OR strncmp($logo,_DIR_EXTENSIONS, strlen(_DIR_EXTENSIONS))==0
		OR strncmp($logo,_DIR_RACINE.'prive/', strlen(_DIR_RACINE.'prive/'))==0)
		return $logo;
	return get_spip_doc($logo);
}