Update of /home/spip-cvs/spip/ecrire
In directory alan:/tmp/cvs-serv22736/ecrire
Modified Files:
inc_logos.php3 inc_version.php3
Log Message:
Répertoire IMG redéfinissable dans inc_version
Index: inc_logos.php3
RCS file: /home/spip-cvs/spip/ecrire/inc_logos.php3,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -d -r1.44 -r1.45
--- inc_logos.php3 5 Oct 2004 13:55:46 -0000 1.44
+++ inc_logos.php3 5 Oct 2004 15:52:26 -0000 1.45
@@ -11,29 +11,26 @@
function decrire_logo($racine) {
global $connect_id_auteur;
- include_ecrire("inc_admin.php3");
-
- foreach (array('gif','jpg','png') as $fmt) {
- $fichier = "$racine.".$fmt;
- $fid = _DIR_IMG . $fichier;
- if (@file_exists($fid)) {
+ if ($img = cherche_image_nommee($racine)) {
+ list($dir, $racine, $fmt) = $img;
+ $fid = $dir . "$racine.".$fmt;
// contrer le cache du navigateur
- $contre = @filesize($fid) . @filemtime($fid);
- if ($taille = @getimagesize($fid)) {
+ $contre = @filesize($fid) . @filemtime($fid);
+ if ($taille = @getimagesize($fid)) {
list($x, $y, $w, $h) = resize_logo($taille);
$xy = "$x × $y "._T('info_pixels');
$taille = " width='$w' height='$h'";
} else { $xy =''; $w = 0; $h = 0;}
- return array($fichier,
- $xy,
- "<img src='../spip_image_reduite.php3?img=" .
- $fid . "&taille_x=$w&taille_y=$h&hash=" .
- calculer_action_auteur ("reduire $w $h") .
- "&hash_id_auteur=$connect_id_auteur" .
- (!$contre ? '' : ("&".md5($contre))) .
- "'$taille border='0' alt='' />",
- $x, $y);
- }
+ include_ecrire("inc_admin.php3");
+ return array("$racine.".$fmt,
+ $xy,
+ "<img src='../spip_image_reduite.php3?img=" .
+ $fid . "&taille_x=$w&taille_y=$h&hash=" .
+ calculer_action_auteur ("reduire $w $h") .
+ "&hash_id_auteur=$connect_id_auteur" .
+ (!$contre ? '' : ("&".md5($contre))) .
+ "'$taille border='0' alt='' />",
+ $x, $y);
}
return '';
}
@@ -103,7 +100,6 @@
if ($logo) {
list($fichier, $taille, $img) = $logo;
- spip_log("$fichier, $taille, $img");
$hash = calculer_action_auteur("supp_image $fichier");
echo "<p><center><div>$img</div>";
@@ -380,31 +376,25 @@
if (eregi("align=\'([^']+)\'", $img, $regs)) $align = $regs[1];
if (eregi("name=\'([^']+)\'", $img, $regs)) $name = $regs[1];
if (eregi("hspace=\'([^']+)\'", $img, $regs)) $espace = $regs[1];
- spip_log($img);
- if (!$logo)
- $logo = $img; // [(#LOGO_ARTICLE|fichier|reduire_image{100})]
-
- if (ereg("^../",$logo)) $logo = substr($logo,3);
- if (!ereg("^" . _DIR_IMG, $logo)) $logo = _DIR_IMG . $logo;
+ if (!$logo) $logo = $img;
- if (@file_exists($logo) AND
- eregi("\.(jpg|gif|png)$", $logo, $regs)) {
- include_local('inc-public-global.php3');
- $nom = $regs[1];
- $format = $regs[2];
- $suffixe = '-'.$taille.'x'.$taille_y;
- $cache_folder= creer_repertoire_documents('cache'.$suffixe);
- $preview = creer_vignette($logo, $taille, $taille_y, $format, $cache_folder.$nom.$suffixe);
+ if (eregi("(.*)\.(jpg|gif|png)$", $logo, $regs)) {
+ if ($i = cherche_image_nommee($regs[1], array($regs[2]))) {
+ list(,$nom,) = $i;
+ $suffixe = '-'.$taille.'x'.$taille_y;
+ $cache_folder= creer_repertoire_documents('cache'.$suffixe);
+ $preview = creer_vignette($logo, $taille, $taille_y, $format, $cache_folder.$nom.$suffixe);
- if ($preview) {
- $vignette = $preview['fichier'];
- $width = $preview['width'];
- $height = $preview['height'];
- return "<img src='$vignette' name='$name' border='0' align='$align' alt='' hspace='$espace' vspace='$espace' width='$width' height='$height' class='spip_logos' />";
- }
- else if ($taille_origine = getimagesize($logo)) {
- list ($destWidth,$destHeight) = image_ratio($taille_origine[0], $taille_origine[1], $taille, $taille_y);
- return "<img src='$logo' name='$name' width='$destWidth' height='$destHeight' border='0' align='$align' alt='' hspace='$espace' vspace='$espace' class='spip_logos' />";
+ if ($preview) {
+ $vignette = $preview['fichier'];
+ $width = $preview['width'];
+ $height = $preview['height'];
+ return "<img src='$vignette' name='$name' border='0' align='$align' alt='' hspace='$espace' vspace='$espace' width='$width' height='$height' class='spip_logos' />";
+ }
+ else if ($taille_origine = getimagesize($logo)) {
+ list ($destWidth,$destHeight) = image_ratio($taille_origine[0], $taille_origine[1], $taille, $taille_y);
+ return "<img src='$logo' name='$name' width='$destWidth' height='$destHeight' border='0' align='$align' alt='' hspace='$espace' vspace='$espace' class='spip_logos' />";
+ }
}
}
}
Index: inc_version.php3
RCS file: /home/spip-cvs/spip/ecrire/inc_version.php3,v
retrieving revision 1.371
retrieving revision 1.372
diff -u -d -r1.371 -r1.372
--- inc_version.php3 4 Oct 2004 21:50:45 -0000 1.371
+++ inc_version.php3 5 Oct 2004 15:52:26 -0000 1.372
@@ -195,7 +195,9 @@
// Masquer les warning
error_reporting(E_ALL ^ E_NOTICE);
-/* ATTENTION CES VARIABLES NE FONCTIONNENT PAS ENCORE */
+// le repértoire des images
+
+/* ATTENTION CETTE VARIABLE NE FONCTIONNE PAS ENCORE */
// Extension du fichier du squelette
$extension_squelette = 'html';
/* / MERCI DE VOTRE ATTENTION */
@@ -218,6 +220,11 @@
}
}
+// le repertoire des pieces rapportes
+
+define('_DIR_IMG', ($flag_ecrire ? "../" : "")."IMG/");
+
+
// Version courante de SPIP
// Stockee sous forme de nombre decimal afin de faciliter les comparaisons
// (utilise pour les modifs de la base de donnees)
@@ -885,7 +892,7 @@
//
-// Une fonction service pour tout le monde
+// qq fonctions service pour les 2 niveaux
//
function calculer_hierarchie($id_rubrique, $exclure_feuille = false) {
if (!$id_rubrique)
@@ -902,4 +909,59 @@
return substr($hierarchie, 1); // Attention ca demarre toujours par '0'
}
+//
+// Retourne $subdir/ si le sous-repertoire peut etre cree, '' sinon
+//
+
+function creer_repertoire($base, $subdir) {
+ if (@file_exists("$base/.plat")) return '';
+ $path = $base.'/'.$subdir;
+ if (@file_exists($path)) return "$subdir/";
+
+ @mkdir($path, 0777);
+ @chmod($path, 0777);
+ $ok = false;
+ if ($f = @fopen("$path/.test", "w")) {
+ @fputs($f, '<'.'?php $ok = true; ?'.'>');
+ @fclose($f);
+ include("$path/.test");
+ }
+ if (!$ok) {
+ $f = @fopen("$base/.plat", "w");
+ if ($f)
+ fclose($f);
+ else {
+ @header("Location: spip_test_dirs.php3");
+ exit;
+ }
+ }
+ return ($ok? "$subdir/" : '');
+}
+
+function creer_repertoire_documents($ext) {
+# est-il bien raisonnable d'accepter de creer si creer_rep retourne '' ?
+ return _DIR_IMG . creer_repertoire(_DIR_IMG, $ext);
+}
+
+
+// Pour les documents comme pour les logos, le filtre |fichier donne
+// le chemin du fichier apres 'IMG/' ; peut-etre pas d'une purete
+// remarquable, mais a conserver pour compatibilite ascendante.
+// -> http://www.spip.net/fr_article901.html
+
+function calcule_fichier_logo($on) {
+ $r= ereg_replace("^" . _DIR_IMG, "", $on);
+# spip_log("calculer_fihchier_logo $on $r");
+ return $r;
+}
+
+function cherche_image_nommee($nom, $formats = array ('gif', 'jpg', 'png')) {
+ if (ereg("^../",$nom)) $nom = substr($nom,3);
+ if (ereg("^" . _DIR_IMG, $nom)) $nom = substr($nom,strlen(_DIR_IMG));
+ while (list(, $format) = each($formats)) {
+ $d = _DIR_IMG . "$nom.$format";
+ if (@file_exists($d)) return array(_DIR_IMG, $nom, $format);
+ }
+}
+
?>