Valider 9ef4c078 rédigé par cerdic's avatar cerdic
Parcourir les fichiers

Faciliter l'utilisation d'icones SVG ET la compatibilite avec versions precedentes de SPIP :

- on peut fournir une icone generique -xx.svg qui sera utilisee en remplacement de toutes les icones -32.png, -24.png, 16.png
Ca permet de fournir les icones au format png pour les anciennes versions de SPIP, en continuant a les referencer dans le paquet.xml ET de fournir a cote une seule version svg qui sera utilisee preferentiellement dans SPIP 3.3+
parent 9104f38e
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+15 −4
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -3296,20 +3296,31 @@ function charge_scripts($files, $script = true) {
 *   chemin_image : utiliser chemin_image sur $img fourni, ou non (oui par dafaut)
 *   utiliser_suffixe_size : utiliser ou non le suffixe de taille dans le nom de fichier de l'image
 *   sous forme -xx.png (pour les icones essentiellement) (oui par defaut)
 *   variante_svg_si_possible: utiliser l'image -xx.svg au lieu de -32.png par exemple (si la variante svg est disponible)
 * @return string
 */
function http_img_pack($img, $alt, $atts = '', $title = '', $options = array()) {
	$img_file = $img;
	if (!isset($options['chemin_image']) or $options['chemin_image'] == true) {
		$img = chemin_image($img);
		$img_file = chemin_image($img);
	}
	else {
		if (!isset($options['variante_svg_si_possible']) or $options['variante_svg_si_possible'] == true){
			if (preg_match(',-\d+[.](png|gif|svg)$,', $img_file, $m)
				and $variante_svg_generique = substr($img_file, 0, -strlen($m[0])) . "-xx.svg"
				and file_exists($variante_svg_generique)){
				$img_file = $variante_svg_generique;
			}
		}
	}
	if (stripos($atts, 'width') === false) {
		// utiliser directement l'info de taille presente dans le nom
		if ((!isset($options['utiliser_suffixe_size']) or $options['utiliser_suffixe_size'] == true)
			and preg_match(',-([0-9]+)[.](png|gif)$,', $img, $regs)
			and preg_match(',-([0-9]+)[.](png|gif|svg)$,', $img, $regs)
		) {
			$largeur = $hauteur = intval($regs[1]);
		} else {
			$taille = taille_image($img);
			$taille = taille_image($img_file);
			list($hauteur, $largeur) = $taille;
			if (!$hauteur or !$largeur) {
				return "";
@@ -3318,7 +3329,7 @@ function http_img_pack($img, $alt, $atts = '', $title = '', $options = array())
		$atts .= " width='" . $largeur . "' height='" . $hauteur . "'";
	}

	return "<img src='$img' alt='" . attribut_html($alt ? $alt : $title) . "'"
	return "<img src='$img_file' alt='" . attribut_html($alt ? $alt : $title) . "'"
	. ($title ? ' title="' . attribut_html($title) . '"' : '')
	. " " . ltrim($atts)
	. " />";
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -19,7 +19,7 @@ include_spip('base/objets');

function inc_icone_renommer_dist($fond, $fonction) {
	$size = 24;
	if (preg_match("/(?:-([0-9]{1,3}))?([.](gif|png))?$/i", $fond, $match)
	if (preg_match("/(?:-([0-9]{1,3}))?([.](gif|png|svg))?$/i", $fond, $match)
		and ((isset($match[0]) and $match[0]) or (isset($match[1]) and $match[1]))
	) {
		if (isset($match[1]) and $match[1]) {
+7 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -1385,6 +1385,13 @@ function find_in_theme($file, $subdir = '', $include = false) {
	if (isset($themefiles["$subdir$file"])) {
		return $themefiles["$subdir$file"];
	}
	// on peut fournir une icone generique -xx.svg qui fera le job dans toutes les tailles, et qui est prioritaire
	if (preg_match(',-\d+[.](png|gif|svg)$,', $file, $m)
	  and $file_svg_generique = substr($file,0, -strlen($m[0])) . "-xx.svg"
		and $f = find_in_theme("$file_svg_generique")) {
		return $themefiles["$subdir$file"] = $f;
	}

	$themes = lister_themes_prives();
	foreach ($themes as $theme) {
		if ($f = find_in_path($file, "prive/themes/$theme/$subdir", $include)) {