Skip to content
Extraits de code Groupes Projets
Valider 9034f707 rédigé par esj's avatar esj
Parcourir les fichiers

Avec 2 statiques, find_in_path retourne immédiatement si le fichier demandé a...

Avec 2 statiques, find_in_path retourne immédiatement si le fichier demandé a déjà été examiné. Du coup, son non appel dans filtrer() est superflu. A noter qu'il serait bon de cloner include_spip sur la signature de charger_fonction, ça éviterait des allocations de chaines superflues.
parent 7d4d9d5a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -14,9 +14,7 @@ ...@@ -14,9 +14,7 @@
if (!defined("_ECRIRE_INC_VERSION")) return; if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/charsets'); include_spip('inc/charsets');
// on definit la matrice pour les filtres images : le compilateur fera passer l'appel par filtrer // signaler les filtres ayant besoin d'inclue inc/filtres_images
// on ne definit pas de fichier a inclure : l'inclusion sera faite dans image_filtrer
// par un include_spip unique en cas d'appel multiple
$GLOBALS['spip_matrice']['image_valeurs_trans'] = ''; $GLOBALS['spip_matrice']['image_valeurs_trans'] = '';
$GLOBALS['spip_matrice']['image_reduire'] = ''; $GLOBALS['spip_matrice']['image_reduire'] = '';
...@@ -43,18 +41,17 @@ $GLOBALS['spip_matrice']['image_imagick'] = ''; ...@@ -43,18 +41,17 @@ $GLOBALS['spip_matrice']['image_imagick'] = '';
$GLOBALS['spip_matrice']['image_ramasse_miettes'] = ''; $GLOBALS['spip_matrice']['image_ramasse_miettes'] = '';
$GLOBALS['spip_matrice']['image_passe_partout'] = ''; $GLOBALS['spip_matrice']['image_passe_partout'] = '';
$inc_filtres_images = _DIR_RESTREINT."inc/filtres_images.php"; # find_in_path('inc/filtres_images'); $GLOBALS['spip_matrice']['couleur_dec_to_hex'] ='';
$GLOBALS['spip_matrice']['couleur_dec_to_hex'] = $inc_filtres_images; $GLOBALS['spip_matrice']['couleur_hex_to_dec'] ='';
$GLOBALS['spip_matrice']['couleur_hex_to_dec'] = $inc_filtres_images; $GLOBALS['spip_matrice']['couleur_extreme'] ='';
$GLOBALS['spip_matrice']['couleur_extreme'] = $inc_filtres_images; $GLOBALS['spip_matrice']['couleur_inverser'] ='';
$GLOBALS['spip_matrice']['couleur_inverser'] = $inc_filtres_images; $GLOBALS['spip_matrice']['couleur_eclaircir'] ='';
$GLOBALS['spip_matrice']['couleur_eclaircir'] = $inc_filtres_images; $GLOBALS['spip_matrice']['couleur_foncer'] ='';
$GLOBALS['spip_matrice']['couleur_foncer'] = $inc_filtres_images; $GLOBALS['spip_matrice']['couleur_foncer_si_claire'] ='';
$GLOBALS['spip_matrice']['couleur_foncer_si_claire'] = $inc_filtres_images; $GLOBALS['spip_matrice']['couleur_eclaircir_si_foncee'] ='';
$GLOBALS['spip_matrice']['couleur_eclaircir_si_foncee'] = $inc_filtres_images; $GLOBALS['spip_matrice']['couleur_web'] ='';
$GLOBALS['spip_matrice']['couleur_web'] = $inc_filtres_images; $GLOBALS['spip_matrice']['couleur_4096'] ='';
$GLOBALS['spip_matrice']['couleur_4096'] = $inc_filtres_images; $GLOBALS['spip_matrice']['couleur_saturation'] ='';
$GLOBALS['spip_matrice']['couleur_saturation'] = $inc_filtres_images;
// http://doc.spip.org/@chercher_filtre // http://doc.spip.org/@chercher_filtre
function chercher_filtre($fonc, $default=NULL) { function chercher_filtre($fonc, $default=NULL) {
...@@ -78,9 +75,8 @@ function appliquer_filtre($arg, $filtre) { ...@@ -78,9 +75,8 @@ function appliquer_filtre($arg, $filtre) {
// et arguments // et arguments
// http://doc.spip.org/@filtrer // http://doc.spip.org/@filtrer
function filtrer($filtre) { function filtrer($filtre) {
if (isset($GLOBALS['spip_matrice'][$filtre]) if (isset($GLOBALS['spip_matrice'][$filtre]))
AND $f = $GLOBALS['spip_matrice'][$filtre]) include_spip('inc/filtres_images');
include_once($f);
$tous = func_get_args(); $tous = func_get_args();
if (substr($filtre,0,6)=='image_') if (substr($filtre,0,6)=='image_')
...@@ -153,16 +149,11 @@ function version_svn_courante($dir) { ...@@ -153,16 +149,11 @@ function version_svn_courante($dir) {
// http://doc.spip.org/@image_filtrer // http://doc.spip.org/@image_filtrer
function image_filtrer($args){ function image_filtrer($args){
static $inclure = true;
$filtre = array_shift($args); # enlever $filtre $filtre = array_shift($args); # enlever $filtre
$texte = array_shift($args); $texte = array_shift($args);
if (!$texte) return; if (!$texte) return;
// Cas du nom de fichier local // Cas du nom de fichier local
if (preg_match(',^('._DIR_IMG .'|'. _DIR_IMG_PACK .'|'. _DIR_VAR .'),', $texte)) { if (preg_match(',^('._DIR_IMG .'|'. _DIR_IMG_PACK .'|'. _DIR_VAR .'),', $texte)) {
if ($inclure){
include_spip('inc/filtres_images');
$inclure = false;
}
array_unshift($args,"<img src='$texte' />"); array_unshift($args,"<img src='$texte' />");
return call_user_func_array($filtre, $args); return call_user_func_array($filtre, $args);
} }
...@@ -171,10 +162,6 @@ function image_filtrer($args){ ...@@ -171,10 +162,6 @@ function image_filtrer($args){
if (preg_match_all( if (preg_match_all(
',(<([a-z]+) [^<>]*spip_documents[^<>]*>)?\s*(<img\s.*>),UimsS', ',(<([a-z]+) [^<>]*spip_documents[^<>]*>)?\s*(<img\s.*>),UimsS',
$texte, $tags, PREG_SET_ORDER)) { $texte, $tags, PREG_SET_ORDER)) {
if ($inclure){
include_spip('inc/filtres_images');
$inclure = false;
}
foreach ($tags as $tag) { foreach ($tags as $tag) {
$class = extraire_attribut($tag[3],'class'); $class = extraire_attribut($tag[3],'class');
if (!$class || (strpos($class,'no_image_filtrer')===FALSE)){ if (!$class || (strpos($class,'no_image_filtrer')===FALSE)){
......
...@@ -625,23 +625,22 @@ function memoriser_fichiers($dir) { ...@@ -625,23 +625,22 @@ function memoriser_fichiers($dir) {
// http://doc.spip.org/@find_in_path // http://doc.spip.org/@find_in_path
function find_in_path ($file, $dirname='') { function find_in_path ($file, $dirname='') {
static $ram; static $files=array(), $dirs=array();
$a = strrpos($file,'/'); $a = strrpos($file,'/');
if ($a !== false) { if ($a !== false) {
$dirname .= substr($file, 0, $a+1); $dirname .= substr($file, 0, ++$a);
$file = substr($file, $a+1); $file = substr($file, $a);
} }
if (isset($files[$dirname][$file])) return $files[$dirname][$file];
foreach(creer_chemin() as $dir) { foreach(creer_chemin() as $dir) {
if (!isset($ram[$s = $dir . $dirname])) if (!isset($dirs[$a = $dir . $dirname]))
$ram[$s] = is_dir($s) ? array() : false; $dirs[$a] = is_dir($a);
if (isset($ram[$s][$file])) { if ($dirs[$a]) {
if ($a = $ram[$s][$file]) return $a; if (is_readable($a .= $file))
} elseif (is_array($ram[$s])) { return $files[$dirname][$file] = $a;
$a = $s . $file;
if ($ram[$s][$file]=(is_readable($a)?$a:''))
return $a;
} }
} }
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter