Use method to cache embedded objects in signatures
authorJoshua Rüsweg <josh@bastelstu.be>
Sun, 21 Apr 2019 12:14:31 +0000 (14:14 +0200)
committerJoshua Rüsweg <josh@bastelstu.be>
Sun, 21 Apr 2019 12:14:31 +0000 (14:14 +0200)
See WoltLab/WCF#2670

files/lib/page/ConversationPage.class.php

index 5ef2a63a6c662f094de494f3492f838533b8a703..5a088d459246894586f803f17049fb025d18935d 100644 (file)
@@ -19,6 +19,7 @@ use wcf\system\message\quote\MessageQuoteManager;
 use wcf\system\page\PageLocationManager;
 use wcf\system\page\ParentPageLocation;
 use wcf\system\request\LinkHandler;
+use wcf\system\user\signature\SignatureCache;
 use wcf\system\WCF;
 use wcf\util\HeaderUtil;
 use wcf\util\StringUtil;
@@ -200,20 +201,26 @@ class ConversationPage extends MultipleLinkPage {
                }
                MessageQuoteManager::getInstance()->initObjects('com.woltlab.wcf.conversation.message', $messageIDs);
                
+               $userIDs = [];
+               foreach ($this->objectList as $message) {
+                       if ($message->userID) {
+                               $userIDs[] = $message->userID;
+                       }
+               }
+               
                // fetch special trophies
                if (MODULE_TROPHY) {
-                       $userIDs = [];
-                       foreach ($this->objectList as $message) {
-                               if ($message->userID) {
-                                       $userIDs[] = $message->userID;
-                               }
-                       }
-                       
                        if (!empty($userIDs)) {
                                UserProfile::prepareSpecialTrophies(array_unique($userIDs));
                        }
                }
                
+               if (MODULE_USER_SIGNATURE) {
+                       if (!empty($userIDs)) {
+                               SignatureCache::getInstance()->cacheUserSignature($userIDs);
+                       }
+               }
+               
                // set attachment permissions
                if ($this->objectList->getAttachmentList() !== null) {
                        $this->objectList->getAttachmentList()->setPermissions([