From cee53105c5946a61958f03c6dcd6c3fd1801a9d1 Mon Sep 17 00:00:00 2001 From: Matthieu Marcillaud <marcimat@rezo.net> Date: Wed, 10 Mar 2021 11:13:44 +0100 Subject: [PATCH] =?UTF-8?q?Ticket=20#4682=20:=20Suite=20=C3=A0=20f2ecbd9?= =?UTF-8?q?=20,=20d=C3=A9clarer=20un=20autoloader,=20plutot=20que=20de=20c?= =?UTF-8?q?harger=20chaque=20classe=20individuellement.=20On=20y=20reviend?= =?UTF-8?q?ra.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sanitizer/svg.php | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/sanitizer/svg.php b/sanitizer/svg.php index 9f983906..2cc360c7 100644 --- a/sanitizer/svg.php +++ b/sanitizer/svg.php @@ -48,11 +48,21 @@ function sanitizer_svg_dist($file) { ) { spip_log("sanitization SVG $file", "svg"); - include_spip('lib/svg-sanitizer/src/Sanitizer'); - include_spip('lib/svg-sanitizer/src/data/AttributeInterface'); - include_spip('lib/svg-sanitizer/src/data/AllowedAttributes'); - include_spip('lib/svg-sanitizer/src/data/TagInterface'); - include_spip('lib/svg-sanitizer/src/data/AllowedTags'); + if (!class_exists('enshrined\svgSanitize\Sanitizer')) { + spl_autoload_register(function ($class) { + $prefix = 'enshrined\\svgSanitize\\'; + $base_dir = _DIR_PLUGIN_MEDIAS . 'lib/svg-sanitizer/src/'; + $len = strlen($prefix); + if (strncmp($prefix, $class, $len) !== 0) { + return; + } + $relative_class = substr($class, $len); + $file = $base_dir . str_replace('\\', '/', $relative_class) . '.php'; + if (file_exists($file)) { + require $file; + } + }); + } // sanitization can need multiples call $maxiter = 10; -- GitLab