From ceb58df19dba18d1e2891adec3755e4cf8db02a5 Mon Sep 17 00:00:00 2001 From: GoZ Date: Mon, 29 Feb 2016 16:45:57 +0100 Subject: [PATCH] Issue #2678016 by GoZ: Plugin filter process should not return string --- prism.libraries.yml | 7 +++++++ src/Plugin/Filter/PrismFilter.php | 16 +++++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 prism.libraries.yml diff --git a/prism.libraries.yml b/prism.libraries.yml new file mode 100644 index 0000000..bcdfe87 --- /dev/null +++ b/prism.libraries.yml @@ -0,0 +1,7 @@ +prism: + version: VERSION + js: + /sites/all/libraries/prism/prism.js: {} + css: + theme: + /sites/all/libraries/prism/prism.css: {} \ No newline at end of file diff --git a/src/Plugin/Filter/PrismFilter.php b/src/Plugin/Filter/PrismFilter.php index b211db3..8edbac4 100644 --- a/src/Plugin/Filter/PrismFilter.php +++ b/src/Plugin/Filter/PrismFilter.php @@ -66,7 +66,6 @@ class PrismFilter extends FilterBase implements ContainerFactoryPluginInterface * {@inheritdoc} */ public function process($text, $langcode) { - $text = new FilterProcessResult($text); $tags = array(); if (preg_match_all('/\[prism:([^\|\\]]+)\|?([^\\]]*)?\]/i', $text, $tag_match)) { @@ -84,11 +83,22 @@ class PrismFilter extends FilterBase implements ContainerFactoryPluginInterface } } } + // Replace [prism:%type] by html tags. + $text = str_replace($search, $replace, $text); - return str_replace($search, $replace, $text); + $result = new FilterProcessResult($text); + + // Add css and js file when necessary. + $result->setAttachments(array( + 'library' => array( + 'prism/prism', + ), + )); + + return $result; } - return $text; + return new FilterProcessResult($text); } } -- 2.5.4 (Apple Git-61)