Avoid replacement of internal string inside code blocks
authorAlexander Ebert <ebert@woltlab.com>
Thu, 5 Oct 2017 13:06:55 +0000 (15:06 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Thu, 5 Oct 2017 13:06:55 +0000 (15:06 +0200)
wcfsetup/install/files/lib/system/html/node/AbstractHtmlNodeProcessor.class.php
wcfsetup/install/files/lib/system/html/output/node/HtmlOutputNodePre.class.php

index 89d3e947f0cb016857dfe8bcac1817f4d84ed757..86563f448cc747a9864ceeff93b635463251e321 100644 (file)
@@ -109,11 +109,15 @@ abstract class AbstractHtmlNodeProcessor implements IHtmlNodeProcessor {
                                $obj = $data['object'];
                                $string = $obj->replaceTag($data['data']);
                                
-                               if (mb_strpos($string, '<!-- META_CODE_INNER_CONTENT -->') !== false) {
-                                       return str_replace('<!-- META_CODE_INNER_CONTENT -->', $matches['content'], $string);
-                               }
-                               else if (mb_strpos($string, '&lt;!-- META_CODE_INNER_CONTENT --&gt;') !== false) {
-                                       return str_replace('&lt;!-- META_CODE_INNER_CONTENT --&gt;', $matches['content'], $string);
+                               if (!isset($data['data']['skipInnerContent']) || $data['data']['skipInnerContent'] !== true) {
+                                       if (mb_strpos($string, '<!-- META_CODE_INNER_CONTENT -->') !== false) {
+                                               return str_replace('<!-- META_CODE_INNER_CONTENT -->', $matches['content'], $string);
+                                       }
+                                       else {
+                                               if (mb_strpos($string, '&lt;!-- META_CODE_INNER_CONTENT --&gt;') !== false) {
+                                                       return str_replace('&lt;!-- META_CODE_INNER_CONTENT --&gt;', $matches['content'], $string);
+                                               }
+                                       }
                                }
                                
                                return $string;
index 81ef19923d95d119e06dbc866068f90d6172975e..437e23d11ced2a595fc253fceb8a6a000b2dd7ea 100644 (file)
@@ -52,7 +52,8 @@ class HtmlOutputNodePre extends AbstractHtmlOutputNode {
                                                'content' => $element->textContent,
                                                'file' => $element->getAttribute('data-file'),
                                                'highlighter' => $element->getAttribute('data-highlighter'),
-                                               'line' => $element->hasAttribute('data-line') ? $element->getAttribute('data-line') : 1
+                                               'line' => $element->hasAttribute('data-line') ? $element->getAttribute('data-line') : 1,
+                                               'skipInnerContent' => true
                                        ]);
                                        
                                        $htmlNodeProcessor->renameTag($element, 'wcfNode-' . $nodeIdentifier);