/** * Gets unread data from original forum. * @param int $unread UNREAD_xx constant * @throws forum_exception If this is not a clone forum */ public function init_unread_from_original($unread) { $cmid = $this->forumfields->originalcmid; if (!$cmid) { throw new forum_exception('This forum is not a clone'); } $viewhiddenforums = array(); if (has_capability('mod/forumng:viewallposts', get_context_instance(CONTEXT_MODULE, $cmid))) { $viewhiddenforums[] = get_field('course_modules', 'instance', 'id', $cmid); } $rows = forum::query_forums(array($cmid), null, 0, $unread, array(), array(), $viewhiddenforums); if (count($rows) != 1) { throw new forum_exception('Unexpected data extracting base forum'); } switch ($unread) { case self::UNREAD_BINARY: $this->forumfields->hasunreaddiscussions = reset($rows)->f_hasunreaddiscussions; break; case self::UNREAD_DISCUSSIONS: $this->forumfields->numunreaddiscussions = reset($rows)->f_numunreaddiscussions; break; } }