コード例 #1
0
 /**
  * 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;
     }
 }