public function ForumManager::unreadTopics in Drupal 9
Same name and namespace in other branches
- 8 core/modules/forum/src/ForumManager.php \Drupal\forum\ForumManager::unreadTopics()
- 10 core/modules/forum/src/ForumManager.php \Drupal\forum\ForumManager::unreadTopics()
Calculates the number of new posts in a forum that the user has not yet read.
Nodes are new if they are newer than HISTORY_READ_LIMIT.
Parameters
int $term: The term ID of the forum.
int $uid: The user ID.
Return value
The number of new posts in the forum that have not been read by the user.
Overrides ForumManagerInterface::unreadTopics
File
- core/
modules/ forum/ src/ ForumManager.php, line 482
Class
- ForumManager
- Provides forum manager service.
Namespace
Drupal\forumCode
public function unreadTopics($term, $uid) {
$query = $this->connection
->select('node_field_data', 'n');
$query
->join('forum', 'f', '[n].[vid] = [f].[vid] AND [f].[tid] = :tid', [
':tid' => $term,
]);
$query
->leftJoin('history', 'h', '[n].[nid] = [h].[nid] AND [h].[uid] = :uid', [
':uid' => $uid,
]);
$query
->addExpression('COUNT([n].[nid])', 'count');
return $query
->condition('status', 1)
->condition('n.default_langcode', 1)
->condition('n.created', HISTORY_READ_LIMIT, '>')
->isNull('h.nid')
->addTag('node_access')
->execute()
->fetchField();
}