use wcf\data\user\UserProfileList;
use wcf\system\WCF;
+/**
+ * Represents a list of conversation participants.
+ *
+ * @author Marcel Werk
+ * @copyright 2001-2012 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @package com.woltlab.wcf.conversation
+ * @subpackage data.conversation
+ * @category Community Framework
+ */
class ConversationParticipantList extends UserProfileList {
/**
* @see wcf\data\DatabaseObjectList::$sqlLimit
*
* @param integer $conversationID
*/
- public function __construct($conversationID) {
+ public function __construct($conversationID, $userID = 0) {
parent::__construct();
$this->getConditionBuilder()->add('conversation_to_user.conversationID = ?', array($conversationID));
- $this->getConditionBuilder()->add('conversation_to_user.isInvisible = 0');
+ if ($userID) {
+ $this->getConditionBuilder()->add('conversation_to_user.isInvisible = 0 OR conversation_to_user.participantID = ?', array($userID));
+ }
+ else {
+ $this->getConditionBuilder()->add('conversation_to_user.isInvisible = 0');
+ }
$this->sqlConditionJoins .= " LEFT JOIN wcf".WCF_N."_user user_table ON (user_table.userID = conversation_to_user.participantID)";
if (!empty($this->sqlSelects)) $this->sqlSelects .= ',';
}
// get participants
- $this->participantList = new ConversationParticipantList($this->conversationID);
+ $this->participantList = new ConversationParticipantList($this->conversationID, WCF::getUser()->userID);
$this->participantList->readObjects();
// init quote objects
<item name="wcf.conversation.hideConversation.leavePermanently.description"><![CDATA[Die Konversation wird verlassen und Sie werden nicht länger als aktiver Teilnehmer gelistet.]]></item>
<item name="wcf.conversation.hideConversation.restore"><![CDATA[Konversation als „aktiv“ markieren]]></item>
<item name="wcf.conversation.information"><![CDATA[Informationen]]></item>
+ <item name="wcf.conversation.invisible"><![CDATA[unsichtbar]]></item>
<item name="wcf.conversation.invisibleParticipants"><![CDATA[Unsichtbare Teilnehmer]]></item>
<item name="wcf.conversation.invisibleParticipants.description"><![CDATA[Unsichtbare Teilnehmer sind für andere Teilnehmer nicht sichtbar. Mehrere Teilnehmer können mit Komma getrennt angegeben werden.]]></item>
<item name="wcf.conversation.lastPostTime"><![CDATA[Letzte Antwort]]></item>
<li class="box24">
<a href="{link controller='User' object=$participant}{/link}" class="framed">{@$participant->getAvatar()->getImageTag(24)}</a>
<hgroup>
- <h1><a href="{link controller='User' object=$participant}{/link}" class="userLink{if $participant->hideConversation == 2} conversationLeft{/if}" data-user-id="{@$participant->userID}">{$participant->username}</a></h1>
+ <h1><a href="{link controller='User' object=$participant}{/link}" class="userLink{if $participant->hideConversation == 2} conversationLeft{/if}" data-user-id="{@$participant->userID}">{$participant->username}</a>
+ {if $participant->isInvisible}<small>({lang}wcf.conversation.invisible{/lang})</small>{/if}
+ </h1>
<h2><dl class="plain inlineDataList">
<dt>{lang}wcf.conversation.lastVisitTime{/lang}</dt>
<dd>{if $participant->lastVisitTime}{@$participant->lastVisitTime|time}{else}-{/if}</dd>