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