diff --git a/core/lib/Drupal/Core/Template/TwigExtension.php b/core/lib/Drupal/Core/Template/TwigExtension.php index 637c1e8..e0cd126 100644 --- a/core/lib/Drupal/Core/Template/TwigExtension.php +++ b/core/lib/Drupal/Core/Template/TwigExtension.php @@ -16,7 +16,6 @@ use Drupal\Component\Utility\SafeMarkup; use Drupal\Component\Render\MarkupInterface; use Drupal\Core\Datetime\DateFormatter; -use Drupal\Core\Render\Markup; use Drupal\Core\Render\RenderableInterface; use Drupal\Core\Render\RendererInterface; use Drupal\Core\Routing\UrlGeneratorInterface; @@ -149,8 +148,8 @@ public function getFunctions() { public function getFilters() { return array( // Translation filters. - new \Twig_SimpleFilter('t', [$this, 't'], array('is_safe' => array('html'))), - new \Twig_SimpleFilter('trans', [$this, 't'], array('is_safe' => array('html'))), + new \Twig_SimpleFilter('t', 't', array('is_safe' => array('html'))), + new \Twig_SimpleFilter('trans', 't', array('is_safe' => array('html'))), // The "raw" filter is not detectable when parsing "trans" tags. To detect // which prefix must be used for translation (@, !, %), we must clone the // "raw" filter and give it identifiable names. These filters should only @@ -178,10 +177,6 @@ public function getFilters() { ); } - public function t(\Twig_Environment $env, $string) { - return new \Twig_Markup(t($string), $env->getCharset()); - } - /** * {@inheritdoc} */ @@ -546,11 +541,11 @@ public function renderVar($arg) { * This value is expected to be safe for output and user provided data * should never be used as a glue. * - * @return \Twig_Markup + * @return TwigMarkup * The created imploded string, which is now markup. */ public function safeJoin(\Twig_Environment $env, $value, $glue = '') { - return new \Twig_Markup(implode($glue, array_map(function($item) use ($env) { + return new TwigMarkup(implode($glue, array_map(function($item) use ($env) { // If $item is not marked safe then it will be escaped. return $this->escapeFilter($env, $item, 'html', NULL, TRUE); }, $value)), $env->getCharset()); diff --git a/core/lib/Drupal/Core/Template/TwigMarkup.php b/core/lib/Drupal/Core/Template/TwigMarkup.php new file mode 100644 index 0000000..0344a80 --- /dev/null +++ b/core/lib/Drupal/Core/Template/TwigMarkup.php @@ -0,0 +1,63 @@ +string; + } + + /** + * {@inheritdoc} + */ + public function count() { + return function_exists('mb_get_info') ? mb_strlen($this->content, $this->charset) : strlen($this->content); + } + + /** + * {@inheritdoc} + */ + public function jsonSerialize() { + return $this->__toString(); + } + +} diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc index efa1f5c..ba725bf 100644 --- a/core/modules/system/system.admin.inc +++ b/core/modules/system/system.admin.inc @@ -211,8 +211,7 @@ function template_preprocess_system_modules_details(&$variables) { $module['id'] = $id; $module['enable_id'] = $module['enable']['#id']; - // @todo Remove early rendering and use safe_join in the Twig template once - // https://www.drupal.org/node/2579091 is fixed. + // @todo Remove early rendering. $renderer = \Drupal::service('renderer'); $machine_name_render = [ '#prefix' => '', @@ -222,20 +221,10 @@ function template_preprocess_system_modules_details(&$variables) { $module['machine_name'] = $renderer->render($machine_name_render); if (!empty($module['#requires'])) { - $requires = [ - '#theme' => 'item_list', - '#items' => $module['#requires'], - '#context' => ['list_style' => 'comma-list'], - ]; - $module['requires'] = $renderer->render($requires); + $module['requires'] = $module['#requires']; } if (!empty($module['#required_by'])) { - $required_by = [ - '#theme' => 'item_list', - '#items' => $module['#required_by'], - '#context' => ['list_style' => 'comma-list'], - ]; - $module['required_by'] = $renderer->render($required_by); + $module['required_by'] = $module['#required_by']; } if (!empty($module['version'])) { diff --git a/core/modules/system/templates/system-modules-details.html.twig b/core/modules/system/templates/system-modules-details.html.twig index e431c8e..5ad7812 100644 --- a/core/modules/system/templates/system-modules-details.html.twig +++ b/core/modules/system/templates/system-modules-details.html.twig @@ -53,10 +53,10 @@
{{ 'Version: @module-version'|t({'@module-version': module.version }) }}
{% endif %} {% if module.requires %} -
{{ 'Requires: @module-list'|t({'@module-list': module.requires }) }}
+
{{ 'Requires: @module-list'|t({'@module-list': module.requires|safe_join(', ') }) }}
{% endif %} {% if module.required_by %} -
{{ 'Required by: @module-list'|t({'@module-list': module.required_by }) }}
+
{{ 'Required by: @module-list'|t({'@module-list': module.required_by|safe_join(', ') }) }}
{% endif %} {% if module.links %}