From 179d54398cd51b75c7915debc204c8b018ead808 Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Fri, 19 Jan 2018 15:36:59 +0100 Subject: [PATCH] Non-text pages were incorrectly processed as text --- .../worker/PageRebuildDataWorker.class.php | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/wcfsetup/install/files/lib/system/worker/PageRebuildDataWorker.class.php b/wcfsetup/install/files/lib/system/worker/PageRebuildDataWorker.class.php index d0aedd9dc7..d9670c7f89 100644 --- a/wcfsetup/install/files/lib/system/worker/PageRebuildDataWorker.class.php +++ b/wcfsetup/install/files/lib/system/worker/PageRebuildDataWorker.class.php @@ -2,8 +2,10 @@ namespace wcf\system\worker; use wcf\data\page\content\PageContentEditor; use wcf\data\page\content\PageContentList; +use wcf\data\page\Page; use wcf\data\page\PageList; use wcf\system\html\input\HtmlInputProcessor; +use wcf\system\html\simple\HtmlSimpleParser; use wcf\system\message\embedded\object\MessageEmbeddedObjectManager; use wcf\system\search\SearchIndexManager; @@ -65,6 +67,7 @@ class PageRebuildDataWorker extends AbstractRebuildDataWorker { $pageContentList->getConditionBuilder()->add('page_content.pageID IN (?)', [$this->objectList->getObjectIDs()]); $pageContentList->readObjects(); foreach ($pageContentList as $pageContent) { + /** @var Page $page */ $page = $pages[$pageContent->pageID]; if ($page->pageType == 'text' || $page->pageType == 'html') { // update search index @@ -85,18 +88,18 @@ class PageRebuildDataWorker extends AbstractRebuildDataWorker { if ($page->pageType == 'text') { $this->getHtmlInputProcessor()->process($pageContent->content, 'com.woltlab.wcf.page.content', $pageContent->pageContentID); $data['content'] = $this->getHtmlInputProcessor()->getHtml(); + + $hasEmbeddedObjects = 0; + if (MessageEmbeddedObjectManager::getInstance()->registerObjects($this->getHtmlInputProcessor())) { + $hasEmbeddedObjects = 1; + } + + if ($hasEmbeddedObjects != $pageContent->hasEmbeddedObjects) { + $data['hasEmbeddedObjects'] = $hasEmbeddedObjects; + } } - else { - $this->getHtmlInputProcessor()->processEmbeddedContent($pageContent->content, 'com.woltlab.wcf.page.content', $pageContent->pageContentID); - } - - $hasEmbeddedObjects = 0; - if (MessageEmbeddedObjectManager::getInstance()->registerObjects($this->getHtmlInputProcessor())) { - $hasEmbeddedObjects = 1; - } - - if ($hasEmbeddedObjects != $pageContent->hasEmbeddedObjects) { - $data['hasEmbeddedObjects'] = $hasEmbeddedObjects; + else if ($page->pageType == 'html' || $page->pageType == 'tpl') { + HtmlSimpleParser::getInstance()->parse('com.woltlab.wcf.page.content', $pageContent->pageContentID, $pageContent->content); } if (!empty($data)) { -- 2.20.1