X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fplugins-dist%2Fmedias%2Fmetadata%2Fsvg.php;h=f37adf963c8190c20502e2505730039a8cb7ab4b;hb=4f443dce95ff6f8221c189880a70c74ce1c1f238;hp=0b7e4963a26a17b18f4a0cfc2d5b87b0239a5457;hpb=4a628e9b277d3617535f99d663ca79fa2e891177;p=lhc%2Fweb%2Fwww.git diff --git a/www/plugins-dist/medias/metadata/svg.php b/www/plugins-dist/medias/metadata/svg.php index 0b7e4963..f37adf96 100644 --- a/www/plugins-dist/medias/metadata/svg.php +++ b/www/plugins-dist/medias/metadata/svg.php @@ -10,60 +10,76 @@ * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ -if (!defined('_ECRIRE_INC_VERSION')) return; +/** + * Informations meta d'un SVG + * + * @package SPIP\Medias\Metadata + **/ + +if (!defined('_ECRIRE_INC_VERSION')) { + return; +} include_spip('inc/autoriser'); /** - * Determiner les dimensions d'un svg, et enlever ses scripts si necessaire - * on utilise safehtml qui n'est pas apropriee pour ca en attendant mieux + * Déterminer les dimensions d'un svg, et enlever ses scripts si nécessaire + * + * On utilise safehtml qui n'est pas apropriée pour ça en attendant mieux * cf http://www.slideshare.net/x00mario/the-image-that-called-me * http://heideri.ch/svgpurifier/SVGPurifier/index.php * * @param string $file - * @return array + * @return array Tableau (largeur, hauteur) */ -// https://code.spip.net/@traite_svg -function metadata_svg_dist($file){ +function metadata_svg_dist($file) { $meta = array(); $texte = spip_file_get_contents($file); // Securite si pas autorise : virer les scripts et les references externes // sauf si on est en mode javascript 'ok' (1), cf. inc_version - if ($GLOBALS['filtrer_javascript']<1 - AND !autoriser('televerser', 'script') - ){ + if ($GLOBALS['filtrer_javascript'] < 1 + and !autoriser('televerser', 'script') + ) { include_spip('inc/texte'); $new = trim(safehtml($texte)); // petit bug safehtml - if (substr($new, 0, 2)==']>') $new = ltrim(substr($new, 2)); - if ($new!=$texte) ecrire_fichier($file, $texte = $new); + if (substr($new, 0, 2) == ']>') { + $new = ltrim(substr($new, 2)); + } + if ($new != $texte) { + ecrire_fichier($file, $texte = $new); + } } $width = $height = 150; - if (preg_match(',]+>,', $texte, $s)){ + if (preg_match(',]+>,', $texte, $s)) { $s = $s[0]; - if (preg_match(',\WviewBox\s*=\s*.\s*(\d+)\s+(\d+)\s+(\d+)\s+(\d+),i', $s, $r)){ + if (preg_match(',\WviewBox\s*=\s*.\s*(\d+)\s+(\d+)\s+(\d+)\s+(\d+),i', $s, $r)) { $width = $r[3]; $height = $r[4]; - } - else { + } else { // si la taille est en centimetre, estimer le pixel a 1/64 de cm - if (preg_match(',\Wwidth\s*=\s*.(\d+)([^"\']*),i', $s, $r)){ - if ($r[2]!='%'){ + if (preg_match(',\Wwidth\s*=\s*.(\d+)([^"\']*),i', $s, $r)) { + if ($r[2] != '%') { $width = $r[1]; - if ($r[2]=='cm') $width <<= 6; + if ($r[2] == 'cm') { + $width <<= 6; + } } } - if (preg_match(',\Wheight\s*=\s*.(\d+)([^"\']*),i', $s, $r)){ - if ($r[2]!='%'){ + if (preg_match(',\Wheight\s*=\s*.(\d+)([^"\']*),i', $s, $r)) { + if ($r[2] != '%') { $height = $r[1]; - if ($r[2]=='cm') $height <<= 6; + if ($r[2] == 'cm') { + $height <<= 6; + } } } } } $meta['largeur'] = $width; $meta['hauteur'] = $height; + return $meta; -} \ No newline at end of file +}