id; } if (! $user = $DB->get_record("user", array("id" => $id))) { print_error('invaliduserid'); } if (! $course = $DB->get_record("course", array("id" => $course))) { print_error('invalidcourseid'); } $syscontext = get_context_instance(CONTEXT_SYSTEM); $usercontext = get_context_instance(CONTEXT_USER, $id); // do not force parents to enrol if (!$DB->get_record('role_assignments', array('userid' => $USER->id, 'contextid' => $usercontext->id))) { require_course_login($course); } if ($user->deleted) { echo $OUTPUT->header(); echo $OUTPUT->heading(get_string('userdeleted')); echo $OUTPUT->footer(); die; } add_to_log($course->id, "forum", "user report", "user.php?course=$course->id&id=$user->id&mode=$mode", "$user->id"); $strforumposts = get_string('forumposts', 'forum'); $strparticipants = get_string('participants'); $strmode = get_string($mode, 'forum'); $fullname = fullname($user, has_capability('moodle/site:viewfullnames', $syscontext)); $link = null; if (has_capability('moodle/course:viewparticipants', get_context_instance(CONTEXT_COURSE, $course->id)) || has_capability('moodle/site:viewparticipants', $syscontext)) { $link = new moodle_url($CFG->wwwroot.'/user/index.php',array('id'=>$course->id)); } $PAGE->navbar->add($strparticipants, $link); $PAGE->navbar->add($fullname, new moodle_url($CFG->wwwroot.'/user/view.php',array('id'=>$user->id,'course'=>$course->id))); $PAGE->navbar->add($strforumposts); $PAGE->navbar->add($strmode); $PAGE->set_title("$course->shortname: $fullname: $strmode"); $PAGE->set_heading($course->fullname); echo $OUTPUT->header(); $currenttab = $mode; $showroles = 1; require($CFG->dirroot.'/user/tabs.php'); /// Prints out tabs as part of user page switch ($mode) { case 'posts' : $searchterms = array('userid:'.$user->id); $extrasql = ''; break; default: $searchterms = array('userid:'.$user->id); $extrasql = 'AND p.parent = 0'; break; } echo '
'; if ($course->id == SITEID) { if (empty($CFG->forceloginforprofiles) || isloggedin()) { // Search throughout the whole site. $searchcourse = 0; } else { $searchcourse = SITEID; } } else { // Search only for posts the user made in this course. $searchcourse = $course->id; } // Get the posts. if ($posts = forum_search_posts($searchterms, $searchcourse, $page*$perpage, $perpage, $totalcount, $extrasql)) { $baseurl = new moodle_url('user.php', array('id' => $user->id, 'course' => $course->id, 'mode' => $mode, 'perpage' => $perpage)); echo $OUTPUT->paging_bar(moodle_paging_bar::make($totalcount, $page, $perpage, $baseurl)); $discussions = array(); $forums = array(); $cms = array(); foreach ($posts as $post) { if (!isset($discussions[$post->discussion])) { if (! $discussion = $DB->get_record('forum_discussions', array('id' => $post->discussion))) { print_error('invaliddiscussionid', 'forum'); } $discussions[$post->discussion] = $discussion; } else { $discussion = $discussions[$post->discussion]; } if (!isset($forums[$discussion->forum])) { if (! $forum = $DB->get_record('forum', array('id' => $discussion->forum))) { print_error('invalidforumid', 'forum'); } $forums[$discussion->forum] = $forum; } else { $forum = $forums[$discussion->forum]; } $ratings = null; if ($forum->assessed) { if ($scale = make_grades_menu($forum->scale)) { $ratings =new object(); $ratings->scale = $scale; $ratings->assesstimestart = $forum->assesstimestart; $ratings->assesstimefinish = $forum->assesstimefinish; $ratings->allow = false; } } if (!isset($cms[$forum->id])) { if (!$cm = get_coursemodule_from_instance('forum', $forum->id)) { print_error('invalidcoursemodule'); } $cms[$forum->id] = $cm; unset($cm); // do not use cm directly, it would break caching } $fullsubject = "id\">".format_string($forum->name,true).""; if ($forum->type != 'single') { $fullsubject .= " -> id\">".format_string($discussion->name,true).""; if ($post->parent != 0) { $fullsubject .= " -> discussion&parent=$post->id\">".format_string($post->subject,true).""; } } if ($course->id == SITEID && has_capability('moodle/site:config', $syscontext)) { $postcoursename = $DB->get_field('course', array('shortname' => 'id'), $forum->course); $fullsubject = ''.$postcoursename.' -> '. $fullsubject; } $post->subject = $fullsubject; $fulllink = "discussion#p$post->id\">". get_string("postincontext", "forum").""; forum_print_post($post, $discussion, $forum, $cms[$forum->id], $course, false, false, false, $ratings, $fulllink); echo "
"; } echo $OUTPUT->paging_bar(moodle_paging_bar::make($totalcount, $page, $perpage, $baseurl)); } else { if ($mode == 'posts') { echo $OUTPUT->heading(get_string('noposts', 'forum')); } else { echo $OUTPUT->heading(get_string('nodiscussionsstartedby', 'forum')); } } echo '
'; echo $OUTPUT->footer(); ?>