From b4b6ba0a372d49a6fb3d7f5dff4dc0852ffdda91 Mon Sep 17 00:00:00 2001 From: mrgoldy Date: Tue, 29 Oct 2019 12:07:53 +0100 Subject: [PATCH] [ticket/15538] Extract service and enhance icon function PHPBB3-15538 --- phpBB/config/default/container/services.yml | 1 + phpBB/config/default/container/services_twig.yml | 7 ------- .../default/container/services_twig_extensions.yml | 9 +++++++++ phpBB/phpbb/template/twig/extension/icon.php | 13 +++---------- 4 files changed, 13 insertions(+), 17 deletions(-) create mode 100644 phpBB/config/default/container/services_twig_extensions.yml diff --git a/phpBB/config/default/container/services.yml b/phpBB/config/default/container/services.yml index 0e9a037290..a7ab26f163 100644 --- a/phpBB/config/default/container/services.yml +++ b/phpBB/config/default/container/services.yml @@ -29,6 +29,7 @@ imports: - { resource: services_text_formatter.yml } - { resource: services_text_reparser.yml } - { resource: services_twig.yml } + - { resource: services_twig_extensions.yml } - { resource: services_ucp.yml } - { resource: services_user.yml } diff --git a/phpBB/config/default/container/services_twig.yml b/phpBB/config/default/container/services_twig.yml index 3e3d1a4674..24ee24484b 100644 --- a/phpBB/config/default/container/services_twig.yml +++ b/phpBB/config/default/container/services_twig.yml @@ -54,13 +54,6 @@ services: tags: - { name: twig.extension } - template.twig.extensions.icon: - class: phpbb\template\twig\extension\icon - arguments: - - '@user' - tags: - - { name: twig.extension } - template.twig.extensions.routing: class: phpbb\template\twig\extension\routing arguments: diff --git a/phpBB/config/default/container/services_twig_extensions.yml b/phpBB/config/default/container/services_twig_extensions.yml new file mode 100644 index 0000000000..115d3f1417 --- /dev/null +++ b/phpBB/config/default/container/services_twig_extensions.yml @@ -0,0 +1,9 @@ +# Twig extensions not needed by the installer + +services: + template.twig.extensions.icon: + class: phpbb\template\twig\extension\icon + arguments: + - '@user' + tags: + - { name: twig.extension } diff --git a/phpBB/phpbb/template/twig/extension/icon.php b/phpBB/phpbb/template/twig/extension/icon.php index 4936d24e8e..27807c9ecc 100644 --- a/phpBB/phpbb/template/twig/extension/icon.php +++ b/phpBB/phpbb/template/twig/extension/icon.php @@ -67,7 +67,7 @@ class icon extends \Twig\Extension\AbstractExtension */ public function icon(environment $environment, $type, $icon, $title = '', $hidden = false, $classes = '', array $attributes = []) { - $type = utf8_strtolower($type); + $type = strtolower($type); switch ($type) { @@ -141,16 +141,9 @@ class icon extends \Twig\Extension\AbstractExtension { if ($element->nodeName === 'svg') { - $children = []; - - foreach ($element->childNodes as $node) + while (isset($element->firstChild)) { - $children[] = $node; - } - - foreach ($children as $child) - { - $element->parentNode->insertBefore($child, $element); + $element->parentNode->insertBefore($element->firstChild, $element); } }