public function PrivateMessageMapper::checkForNextThread in Private Message 8.2
Same name and namespace in other branches
- 8 src/Mapper/PrivateMessageMapper.php \Drupal\private_message\Mapper\PrivateMessageMapper::checkForNextThread()
Check if a thread exists after with an ID greater than the given thread ID.
Parameters
\Drupal\user\UserInterface $user: The user for whom to check.
int $timestamp: The timestamp to check against.
Return value
bool TRUE if a previous thread exists, FALSE if one doesn't.
Overrides PrivateMessageMapperInterface::checkForNextThread
File
- src/
Mapper/ PrivateMessageMapper.php, line 147
Class
- PrivateMessageMapper
- Interface for the Private Message Mapper class.
Namespace
Drupal\private_message\MapperCode
public function checkForNextThread(UserInterface $user, $timestamp) {
$query = 'SELECT DISTINCT(thread.id) ' . 'FROM {private_message_threads} AS thread ' . 'JOIN {pm_thread_history} pm_thread_history ' . 'ON pm_thread_history.thread_id = thread.id AND pm_thread_history.uid = :history_uid ' . 'JOIN {private_message_thread__members} AS thread_member ' . 'ON thread_member.entity_id = thread.id AND thread_member.members_target_id = :uid ' . 'JOIN {private_message_thread__private_messages} AS thread_messages ' . 'ON thread_messages.entity_id = thread.id ' . 'JOIN {private_messages} AS messages ' . 'ON messages.id = thread_messages.private_messages_target_id ' . 'WHERE pm_thread_history.delete_timestamp <= messages.created ' . 'AND thread.updated < :timestamp';
$vars = [
':uid' => $user
->id(),
':history_uid' => $user
->id(),
':timestamp' => $timestamp,
];
return (bool) $this->database
->queryRange($query, 0, 1, $vars)
->fetchField();
}