public function getID($ConversationID, $datasetType = false, $options = [])
{
if (is_numeric($datasetType)) {
deprecated('ConversationModel->getID(int, int)', 'ConversationModel->getID(int, string, array)');
$viewingUserID = $datasetType;
$datasetType = false;
} else {
$viewingUserID = val('viewingUserID', $options);
}
$datasetType = $datasetType ?: DATASET_TYPE_OBJECT;
// Get the conversation.
$Conversation = $this->getWhere(array('ConversationID' => $ConversationID))->firstRow(DATASET_TYPE_ARRAY);
if ($viewingUserID) {
$Data = $this->SQL->getWhere('UserConversation', array('ConversationID' => $ConversationID, 'UserID' => $viewingUserID))->firstRow(DATASET_TYPE_ARRAY);
// Convert the array.
$UserConversation = arrayTranslate($Data, array('LastMessageID', 'CountReadMessages', 'DateLastViewed', 'Bookmarked'));
$UserConversation['CountNewMessages'] = $Conversation['CountMessages'] - $Data['CountReadMessages'];
} else {
$UserConversation = array('CountNewMessages' => 0, 'CountReadMessages' => $Conversation['CountMessages'], 'DateLastViewed' => $Conversation['DateUpdated']);
}
$Conversation = array_merge($Conversation, $UserConversation);
if ($datasetType === DATASET_TYPE_OBJECT) {
$Conversation = (object) $Conversation;
}
return $Conversation;
}