/** * @global object * @global object * @param object $coure * @param object $user * @param object $mod * @param object $forum */ function hsuforum_user_complete($course, $user, $mod, $forum) { global $CFG, $PAGE, $OUTPUT; require_once "{$CFG->libdir}/gradelib.php"; $grades = grade_get_grades($course->id, 'mod', 'hsuforum', $forum->id, $user->id); if (!empty($grades->items[0]->grades)) { $grade = reset($grades->items[0]->grades); echo $OUTPUT->container(get_string('grade') . ': ' . $grade->str_long_grade); if ($grade->str_feedback) { echo $OUTPUT->container(get_string('feedback') . ': ' . $grade->str_feedback); } } if ($posts = hsuforum_get_user_posts($forum->id, $user->id)) { if (!($cm = get_coursemodule_from_instance('hsuforum', $forum->id, $course->id))) { print_error('invalidcoursemodule'); } $discussions = hsuforum_get_user_involved_discussions($forum->id, $user->id); foreach ($posts as $post) { if (!isset($discussions[$post->discussion])) { continue; } $discussion = $discussions[$post->discussion]; $renderer = $PAGE->get_renderer('mod_hsuforum'); echo $renderer->post($cm, $discussion, $post, false, null, false); } } else { echo "<p>" . get_string("noposts", "hsuforum") . "</p>"; } }
/** * @param $userid * @param $cm * @param null|stdClass $showonlypreference * * @return string * @author Mark Nielsen */ public function user_posts_overview($userid, $cm, $showonlypreference = null) { global $PAGE; require_once __DIR__ . '/lib/flag.php'; $config = get_config('hsuforum'); $forum = hsuforum_get_cm_forum($cm); $showonlypreferencebutton = ''; if (!empty($showonlypreference) and !empty($showonlypreference->button) and !$forum->anonymous) { $showonlypreferencebutton = $showonlypreference->button; } $output = ''; $postcount = $discussioncount = $flagcount = 0; $flaglib = new hsuforum_lib_flag(); if ($posts = hsuforum_get_user_posts($forum->id, $userid, context_module::instance($cm->id))) { $discussions = hsuforum_get_user_involved_discussions($forum->id, $userid); if (!empty($showonlypreference) and !empty($showonlypreference->preference)) { foreach ($discussions as $discussion) { if ($discussion->userid == $userid and array_key_exists($discussion->firstpost, $posts)) { $discussionpost = $posts[$discussion->firstpost]; $discussioncount++; if ($flaglib->is_flagged($discussionpost->flags, 'substantive')) { $flagcount++; } } else { if (!($discussionpost = hsuforum_get_post_full($discussion->firstpost))) { continue; } } if (!$forum->anonymous) { $output .= $this->post($cm, $discussion, $discussionpost, false, null, false); $output .= html_writer::start_tag('div', array('class' => 'indent')); } foreach ($posts as $post) { if ($post->discussion == $discussion->id and !empty($post->parent)) { $postcount++; if ($flaglib->is_flagged($post->flags, 'substantive')) { $flagcount++; } $command = html_writer::link(new moodle_url('/mod/hsuforum/discuss.php', array('d' => $discussion->id), 'p' . $post->id), get_string('postincontext', 'hsuforum'), array('target' => '_blank')); if (!$forum->anonymous) { $output .= $this->post($cm, $discussion, $post, false, null, false); } } } if (!$forum->anonymous) { $output .= html_writer::end_tag('div'); } } } else { foreach ($posts as $post) { if (!empty($post->parent)) { $postcount++; } else { $discussioncount++; } if ($flaglib->is_flagged($post->flags, 'substantive')) { $flagcount++; } if (!$forum->anonymous) { $command = html_writer::link(new moodle_url('/mod/hsuforum/discuss.php', array('d' => $post->discussion), 'p' . $post->id), get_string('postincontext', 'hsuforum'), array('target' => '_blank')); $output .= $this->post($cm, $discussions[$post->discussion], $post, false, null, false); } } } } if (!empty($postcount) or !empty($discussioncount)) { if ($forum->anonymous) { $output = html_writer::tag('h3', get_string('thisisanonymous', 'hsuforum')); } $counts = array(get_string('totalpostsanddiscussions', 'hsuforum', $discussioncount + $postcount), get_string('totaldiscussions', 'hsuforum', $discussioncount), get_string('totalreplies', 'hsuforum', $postcount)); if (!empty($config->showsubstantive)) { $counts[] = get_string('totalsubstantive', 'hsuforum', $flagcount); } if ($grade = hsuforum_get_user_formatted_rating_grade($forum, $userid)) { $counts[] = get_string('totalrating', 'hsuforum', $grade); } $countshtml = ''; foreach ($counts as $count) { $countshtml .= html_writer::tag('div', $count, array('class' => 'hsuforum_count')); } $output = html_writer::div($countshtml, 'hsuforum_counts') . $showonlypreferencebutton . $output; $output = html_writer::div($output, 'mod-hsuforum-posts-container article'); } return $output; }