ConversationModel::addUserToConversation PHP Метод

addUserToConversation() публичный Метод

Add another user to the conversation.
С версии: 2.0.0
public addUserToConversation ( integer $ConversationID, integer $UserID )
$ConversationID integer Unique ID of conversation effected.
$UserID integer Unique ID of current user.
    public function addUserToConversation($ConversationID, $UserID)
    {
        if (!is_array($UserID)) {
            $UserID = array($UserID);
        }
        // First define the current users in the conversation
        $OldContributorData = $this->getRecipients($ConversationID);
        $OldContributorData = Gdn_DataSet::index($OldContributorData, 'UserID');
        $AddedUserIDs = array();
        // Get some information about this conversation
        $ConversationData = $this->SQL->select('LastMessageID')->select('DateUpdated')->select('CountMessages')->from('Conversation')->where('ConversationID', $ConversationID)->get()->firstRow();
        // Add the user(s) if they are not already in the conversation
        foreach ($UserID as $NewUserID) {
            if (!array_key_exists($NewUserID, $OldContributorData)) {
                $AddedUserIDs[] = $NewUserID;
                $this->SQL->insert('UserConversation', array('UserID' => $NewUserID, 'ConversationID' => $ConversationID, 'LastMessageID' => $ConversationData->LastMessageID, 'CountReadMessages' => 0, 'DateConversationUpdated' => $ConversationData->DateUpdated));
            } elseif ($OldContributorData[$NewUserID]->Deleted) {
                $AddedUserIDs[] = $NewUserID;
                $this->SQL->put('UserConversation', array('Deleted' => 0), array('ConversationID' => $ConversationID, 'UserID' => $NewUserID));
            }
        }
        if (count($AddedUserIDs) > 0) {
            $ActivityModel = new ActivityModel();
            foreach ($AddedUserIDs as $AddedUserID) {
                $ActivityModel->queue(array('ActivityType' => 'AddedToConversation', 'NotifyUserID' => $AddedUserID, 'HeadlineFormat' => t('You were added to a conversation.', '{ActivityUserID,User} added you to a <a href="{Url,htmlencode}">conversation</a>.'), 'Route' => '/messages/' . $ConversationID), 'ConversationMessage');
            }
            $ActivityModel->saveQueue();
            $this->updateUserUnreadCount($AddedUserIDs);
            $this->updateParticipantCount($ConversationID);
        }
    }