From 9cfbf7ed1c92b262984488eaa9cee5df88419d5b Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Thu, 16 Oct 2014 12:13:16 +0200 Subject: Fix SVG icons FIXME: Ugly hack to prevent SVG of being returned if the SVG provider is not enabled. This is required because the preview system is designed in a bad way and relies on opt-in with asterisks (i.e. image/*) which will lead to the fact that a SVG will also match the image provider. Conflicts: lib/private/preview.php --- lib/private/preview.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'lib/private') diff --git a/lib/private/preview.php b/lib/private/preview.php index e9bfb3b9285..00f18219531 100755 --- a/lib/private/preview.php +++ b/lib/private/preview.php @@ -814,8 +814,19 @@ class Preview { self::initProviders(); } - foreach (self::$providers as $supportedMimeType => $provider) { - if (preg_match($supportedMimeType, $mimeType)) { + // FIXME: Ugly hack to prevent SVG of being returned if the SVG + // provider is not enabled. + // This is required because the preview system is designed in a + // bad way and relies on opt-in with asterisks (i.e. image/*) + // which will lead to the fact that a SVG will also match the image + // provider. + if($mimeType === 'image/svg+xml' && !array_key_exists('/image\/svg\+xml/', self::$providers)) { + return false; + } + + //remove last element because it has the mimetype * + foreach(self::$providers as $supportedMimetype => $provider) { + if(preg_match($supportedMimetype, $mimeType)) { return true; } } -- cgit v1.2.3