ForumManager::unreadTopics

public ForumManager::unreadTopics($term, $uid)

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 476

Class

ForumManager
Provides forum manager service.

Namespace

Drupal\forum

Code

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', array(':tid' => $term));
  $query->leftJoin('history', 'h', 'n.nid = h.nid AND h.uid = :uid', array(':uid' => $uid));
  $query->addExpression('COUNT(n.nid)', 'count');
  return $query
  ->condition('status', 1)
    // @todo This should be actually filtering on the desired node status
    //   field language and just fall back to the default language.
    ->condition('n.default_langcode', 1)
    ->condition('n.created', HISTORY_READ_LIMIT, '>')
    ->isNull('h.nid')
    ->addTag('node_access')
    ->execute()
    ->fetchField();
}
doc_Drupal
2016-10-29 09:17:13
Comments
Leave a Comment

Please login to continue.