User online lookup for the article page was using the article id instead of the conte...
authorMarcel Werk <burntime@woltlab.com>
Fri, 27 Mar 2020 12:33:10 +0000 (13:33 +0100)
committerMarcel Werk <burntime@woltlab.com>
Fri, 27 Mar 2020 12:33:10 +0000 (13:33 +0100)
wcfsetup/install/files/lib/system/page/handler/ArticlePageHandler.class.php

index 79b58dd4ecdaa74b44d9a923c1f7cd3f40fae4f6..524290d92ddc8aab17b5a0d70d197868d99161eb 100644 (file)
@@ -3,6 +3,7 @@ namespace wcf\system\page\handler;
 use wcf\data\article\ViewableArticleList;
 use wcf\data\page\Page;
 use wcf\data\user\online\UserOnline;
+use wcf\system\cache\runtime\ViewableArticleContentRuntimeCache;
 use wcf\system\cache\runtime\ViewableArticleRuntimeCache;
 use wcf\system\WCF;
 
@@ -75,12 +76,12 @@ class ArticlePageHandler extends AbstractLookupPageHandler implements IOnlineLoc
                        return '';
                }
                
-               $article = ViewableArticleRuntimeCache::getInstance()->getObject($user->pageObjectID);
-               if ($article === null || !$article->canRead()) {
+               $content = ViewableArticleContentRuntimeCache::getInstance()->getObject($user->pageObjectID);
+               if ($content === null || !$content->getArticle()->canRead()) {
                        return '';
                }
                
-               return WCF::getLanguage()->getDynamicVariable('wcf.page.onlineLocation.'.$page->identifier, ['article' => $article]);
+               return WCF::getLanguage()->getDynamicVariable('wcf.page.onlineLocation.'.$page->identifier, ['article' => $content->getArticle()]);
        }
        
        /**
@@ -88,7 +89,7 @@ class ArticlePageHandler extends AbstractLookupPageHandler implements IOnlineLoc
         */
        public function prepareOnlineLocation(/** @noinspection PhpUnusedParameterInspection */Page $page, UserOnline $user) {
                if ($user->pageObjectID !== null) {
-                       ViewableArticleRuntimeCache::getInstance()->cacheObjectID($user->pageObjectID);
+                       ViewableArticleContentRuntimeCache::getInstance()->cacheObjectID($user->pageObjectID);
                }
        }
 }