Fix like list issues with guest comments
authorMatthias Schmidt <gravatronics@live.com>
Sun, 3 Aug 2014 19:05:03 +0000 (21:05 +0200)
committerMatthias Schmidt <gravatronics@live.com>
Sun, 3 Aug 2014 19:05:03 +0000 (21:05 +0200)
wcfsetup/install/files/lib/data/like/ViewableLikeList.class.php
wcfsetup/install/files/lib/system/comment/manager/UserProfileCommentManager.class.php
wcfsetup/install/lang/de.xml
wcfsetup/install/lang/en.xml

index cff5673dae8810439febe815143f3422f4aecae3..b8b1a3509b6f50e70eea90e0c0dd65fda0d32ad7 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 namespace wcf\data\like;
 use wcf\data\object\type\ObjectTypeCache;
+use wcf\data\user\User;
 use wcf\data\user\UserProfile;
 use wcf\system\like\IViewableLikeProvider;
 
@@ -39,7 +40,7 @@ class ViewableLikeList extends LikeList {
                $userIDs = array();
                $likeGroups = array();
                foreach ($this->objects as &$like) {
-                       $userIDs[] = $like->objectUserID;
+                       $userIDs[] = $like->userID;
                        $like = new ViewableLike($like);
                        
                        if (!isset($likeGroups[$like->objectTypeID])) {
@@ -60,7 +61,7 @@ class ViewableLikeList extends LikeList {
                        
                        $users = UserProfile::getUserProfiles($userIDs);
                        foreach ($this->objects as $like) {
-                               $like->setUserProfile($users[$like->objectUserID]);
+                               $like->setUserProfile($users[$like->userID]);
                        }
                }
                
index c490b82fe393b282c183cea56d221598c876ad0f..2cbf1741c49a38dca0a482c585cdd7551ec0e0da 100644 (file)
@@ -186,12 +186,12 @@ class UserProfileCommentManager extends AbstractCommentManager implements IViewa
                                if (isset($comments[$like->objectID])) {
                                        $comment = $comments[$like->objectID];
                                        
-                                       if (isset($users[$comment->objectID]) && isset($users[$comment->userID]) && !$users[$comment->objectID]->isProtected()) {
+                                       if (isset($users[$comment->objectID]) && !$users[$comment->objectID]->isProtected()) {
                                                $like->setIsAccessible();
                                                
                                                // short output
                                                $text = WCF::getLanguage()->getDynamicVariable('wcf.like.title.com.woltlab.wcf.user.profileComment', array(
-                                                       'commentAuthor' => $users[$comment->userID],
+                                                       'commentAuthor' => $comment->userID ? $users[$comment->userID] : null,
                                                        'user' => $users[$comment->objectID],
                                                        'like' => $like
                                                ));
@@ -208,13 +208,13 @@ class UserProfileCommentManager extends AbstractCommentManager implements IViewa
                                        $response = $responses[$like->objectID];
                                        $comment = $comments[$response->commentID];
                                        
-                                       if (isset($users[$comment->objectID]) && isset($users[$comment->userID]) && isset($users[$response->userID]) && !$users[$comment->objectID]->isProtected()) {
+                                       if (isset($users[$comment->objectID]) && !$users[$comment->objectID]->isProtected()) {
                                                $like->setIsAccessible();
                                        
                                                // short output
                                                $text = WCF::getLanguage()->getDynamicVariable('wcf.like.title.com.woltlab.wcf.user.profileComment.response', array(
-                                                       'responseAuthor' => $users[$response->userID],
-                                                       'commentAuthor' => $users[$comment->userID],
+                                                       'responseAuthor' => $comment->userID ? $users[$response->userID] : null,
+                                                       'commentAuthor' => $comment->userID ? $users[$comment->userID] : null,
                                                        'user' => $users[$comment->objectID],
                                                        'like' => $like
                                                ));
index f55fcd6e6d35165e22195645924fd5dcd2f58ea7..350265d98c0b445899757233679327f900c3bee2 100644 (file)
@@ -2148,8 +2148,8 @@ Fehler sind beispielsweise:
                <item name="wcf.like.objectType.com.woltlab.wcf.comment.response"><![CDATA[Kommentar-Antwort]]></item>
                <item name="wcf.like.likes.more"><![CDATA[Weitere Likes]]></item>
                <item name="wcf.like.likes.noMoreEntries"><![CDATA[Keine weiteren Likes]]></item>
-               <item name="wcf.like.title.com.woltlab.wcf.user.profileComment"><![CDATA[Mag den Kommentar von <a href="{link controller='User' object=$commentAuthor}{/link}">{$commentAuthor->username}</a> an der <a href="{link controller='User' object=$user}{/link}#wall">Pinnwand von {$user->username}</a>{if $like->isDislike()} nicht{/if}.]]></item>
-               <item name="wcf.like.title.com.woltlab.wcf.user.profileComment.response"><![CDATA[Mag die Antwort von <a href="{link controller='User' object=$responseAuthor}{/link}">{$responseAuthor->username}</a> zum Kommentar von <a href="{link controller='User' object=$commentAuthor}{/link}">{$commentAuthor->username}</a> an der <a href="{link controller='User' object=$user}{/link}#wall">Pinnwand von {$user->username}</a>{if $like->isDislike()} nicht{/if}.]]></item>
+               <item name="wcf.like.title.com.woltlab.wcf.user.profileComment"><![CDATA[Mag den Kommentar {if $commentAuthor}<a href="{link controller='User' object=$commentAuthor}{/link}">von {$commentAuthor->username}</a>{else}eines Gasts{/if} an der <a href="{link controller='User' object=$user}{/link}#wall">Pinnwand von {$user->username}</a>{if $like->isDislike()} nicht{/if}.]]></item>
+               <item name="wcf.like.title.com.woltlab.wcf.user.profileComment.response"><![CDATA[Mag die Antwort {if $responseAuthor}<a href="{link controller='User' object=$responseAuthor}{/link}">von {$responseAuthor->username}</a>{else}eines Gasts{/if} zum Kommentar {if $commentAuthor}von <a href="{link controller='User' object=$commentAuthor}{/link}">{$commentAuthor->username}</a> an der <a href="{link controller='User' object=$user}{/link}#wall">Pinnwand von {$user->username}</a>{else}eines Gasts{/if}{if $like->isDislike()} nicht{/if}.]]></item>
        </category>
        
        <category name="wcf.message">
index 3ea99e4fbd6a5d0024f42598dc4d5c60835ec3a9..7496bad486e5d0826228784d60086c3cdefa8cc3 100644 (file)
@@ -2115,8 +2115,8 @@ Errors are:
                <item name="wcf.like.objectType.com.woltlab.wcf.comment.response"><![CDATA[Comment Reply]]></item>
                <item name="wcf.like.likes.more"><![CDATA[TODO: Weitere Likes]]></item>
                <item name="wcf.like.likes.noMoreEntries"><![CDATA[TODO: Keine weiteren Likes]]></item>
-               <item name="wcf.like.title.com.woltlab.wcf.user.profileComment"><![CDATA[TODO: Mag den Kommentar von <a href="{link controller='User' object=$commentAuthor}{/link}">{$commentAuthor->username}</a> an der <a href="{link controller='User' object=$user}{/link}#wall">Pinnwand von {$user->username}</a>{if $like->isDislike()} nicht{/if}.]]></item>
-               <item name="wcf.like.title.com.woltlab.wcf.user.profileComment.response"><![CDATA[TODO: Mag die Antwort von <a href="{link controller='User' object=$responseAuthor}{/link}">{$responseAuthor->username}</a> zum Kommentar von <a href="{link controller='User' object=$commentAuthor}{/link}">{$commentAuthor->username}</a> an der <a href="{link controller='User' object=$user}{/link}#wall">Pinnwand von {$user->username}</a>{if $like->isDislike()} nicht{/if}.]]></item>
+               <item name="wcf.like.title.com.woltlab.wcf.user.profileComment"><![CDATA[TODO: Mag den Kommentar {if $commentAuthor}<a href="{link controller='User' object=$commentAuthor}{/link}">von {$commentAuthor->username}</a>{else}eines Gasts{/if} an der <a href="{link controller='User' object=$user}{/link}#wall">Pinnwand von {$user->username}</a>{if $like->isDislike()} nicht{/if}.]]></item>
+               <item name="wcf.like.title.com.woltlab.wcf.user.profileComment.response"><![CDATA[TOOD: Mag die Antwort {if $responseAuthor}<a href="{link controller='User' object=$responseAuthor}{/link}">von {$responseAuthor->username}</a>{else}eines Gasts{/if} zum Kommentar {if $commentAuthor}von <a href="{link controller='User' object=$commentAuthor}{/link}">{$commentAuthor->username}</a> an der <a href="{link controller='User' object=$user}{/link}#wall">Pinnwand von {$user->username}</a>{else}eines Gasts{/if}{if $like->isDislike()} nicht{/if}.]]></item>
        </category>
        
        <category name="wcf.message">