";
}
/**
* Compatibilite : permet de remplacer les [(#TEXTE|image_reduire{500})] des squelettes
* par un simple [(#TEXTE|adaptive_images)]
* Avec le plugin adaptive_images cela produire des images adaptives
*/
if (!defined('_DIR_PLUGIN_ADAPTIVE_IMAGES')) {
// les images 1x sont au maximum en _ADAPTIVE_IMAGES_MAX_WIDTH_1x px de large dans la page
if (!defined('_ADAPTIVE_IMAGES_MAX_WIDTH_1x')) {
define('_ADAPTIVE_IMAGES_MAX_WIDTH_1x', 640);
}
function adaptive_images($texte, $max_width_1x = _ADAPTIVE_IMAGES_MAX_WIDTH_1x) {
if (!function_exists('filtrer')) {
include_spip('inc/filtres');
}
$texte = filtrer('image_reduire', $texte, $max_width_1x, 10000);
return filtrer('image_graver', $texte);
}
}
/**
* utiliser une icone standard du sprite par defaut :
* #ICON{search,icon-sm,Rechercher}
*
* utiliser une icone #search definie dans un svg inline de la page
* #ICON{#search,icon-sm,Rechercher}
*
* utiliser une l'icone #search definie dans un svg externe (qui sera resolu via #CHEMIN)
* #ICON{img/sprite.svg#search,icon-sm,Rechercher}
*
* utiler une icone svg du path, sans connaitre son id
* #ICON{img/mon_icone_search.svg,icon-sm,Rechercher}
*
* @param $p
* @return mixed
*/
function balise_ICON_dist($p) {
$_name = interprete_argument_balise(1, $p);
if (!$_name) {
// compat avec les champs #ICON utilises dans composition et noizetier : pas d'argument = champ sql (ou DATA)
$_icon = champ_sql('icon', $p);
$p->code = $_icon;
}
else {
$_class = interprete_argument_balise(2, $p);
if (!$_class) {
$_class = "''";
}
$_alt = interprete_argument_balise(3, $p);
if (!$_alt) {
$_alt = "''";
}
$p->code = "afficher_icone_svg($_name, $_class, $_alt)";
}
$p->interdire_scripts = false;
return $p;
}
/**
* Fonction interne utilisee par la balise #ICON
* @param string $name
* @param string $class
* @param string $alt
* @return string
*/
function afficher_icone_svg($name, $class = '', $alt = '') {
$icone_href_class_from_name = chercher_filtre("icone_href_class_from_name");
list($href, $class_base) = $icone_href_class_from_name($name);
if (!$name) {
return $href;
}
if ($href) {
if ($class_base = trim($class_base)) {
$class_base = ' icon-' . $class_base;
}
if ($class = trim($class)) {
$class = preg_replace(",[^\w\s\-],", "", $class);
}
if (strpos($href, '#') === false) {
$id = "icon-title-" . substr(md5("$name:$alt:$href"),0,4);
$svg = afficher_icone_inline_svg(supprimer_timestamp($href), $id, $alt);
}
else {
/*
*/
// width="0" height="0" -> rien ne s'affiche si on a pas la CSS icons.css
$svg = "";
}
if ($svg) {
return "$svg ";
}
}
return "";
}
/**
* function qui permet d'afficher une icone svg inline
* La fonction supprime tout ce qui se trouve au dessus de la balise