/** * @todo Document this function * @global object * @global object * @return void */ function forum_print_posts_nested($course, &$cm, $forum, $discussion, $parent, $reply, $forumtracked, $posts) { global $USER, $CFG; $link = false; if (!empty($posts[$parent->id]->children)) { $posts = $posts[$parent->id]->children; foreach ($posts as $post) { echo '<div class="indent">'; if (!isloggedin()) { $ownpost = false; } else { $ownpost = ($USER->id == $post->userid); } $post->subject = format_string($post->subject); $postread = !empty($post->postread); forum_print_post($post, $discussion, $forum, $cm, $course, $ownpost, $reply, $link, '', '', $postread, true, $forumtracked); forum_print_posts_nested($course, $cm, $forum, $discussion, $post, $reply, $forumtracked, $posts); echo "</div>\n"; } } }
// User just asked to delete something forum_set_return(); $PAGE->navbar->add(get_string('delete', 'forum')); $PAGE->set_title($course->shortname); $PAGE->set_heading($course->fullname); if ($replycount) { if (!has_capability('mod/forum:deleteanypost', $modcontext)) { print_error("couldnotdeletereplies", "forum", forum_go_back_to("discuss.php?d={$post->discussion}")); } echo $OUTPUT->header(); echo $OUTPUT->confirm(get_string("deletesureplural", "forum", $replycount + 1), "post.php?delete={$delete}&confirm={$delete}", $CFG->wwwroot . '/mod/forum/discuss.php?d=' . $post->discussion . '#p' . $post->id); forum_print_post($post, $discussion, $forum, $cm, $course, false, false, false); if (empty($post->edit)) { $forumtracked = forum_tp_is_tracked($forum); $posts = forum_get_all_discussion_posts($discussion->id, "created ASC", $forumtracked); forum_print_posts_nested($course, $cm, $forum, $discussion, $post, false, false, $forumtracked, $posts); } } else { echo $OUTPUT->header(); echo $OUTPUT->confirm(get_string("deletesure", "forum", $replycount), "post.php?delete={$delete}&confirm={$delete}", $CFG->wwwroot . '/mod/forum/discuss.php?d=' . $post->discussion . '#p' . $post->id); forum_print_post($post, $discussion, $forum, $cm, $course, false, false, false); } } echo $OUTPUT->footer(); die; } else { if (!empty($prune)) { // Pruning if (!($post = forum_get_post_full($prune))) { print_error('invalidpostid', 'forum'); }
/** * */ function forum_print_posts_nested($parent, $courseid, $ratings, $reply, &$user_read_array, $forumid = 0, $modcontext = NULL) { global $USER, $CFG; $link = false; $ratingsmenuused = false; if ($posts = forum_get_child_posts($parent, $forumid)) { foreach ($posts as $post) { echo '<div class="indent">'; if (empty($USER->id)) { $ownpost = false; } else { $ownpost = $USER->id == $post->userid; } $post->subject = format_string($post->subject); $post->modcontext = $modcontext; if (forum_print_post($post, $courseid, $ownpost, $reply, $link, $ratings, '', '', isset($user_read_array[$post->id]) || forum_tp_is_post_old($post))) { $ratingsmenuused = true; } if (forum_print_posts_nested($post->id, $courseid, $ratings, $reply, $user_read_array, $forumid, $modcontext)) { $ratingsmenuused = true; } echo "</div>\n"; } } return $ratingsmenuused; }
// User just asked to delete something forum_set_return(); if ($replycount) { if (!has_capability('mod/forum:deleteanypost', $modcontext)) { error(get_string("couldnotdeletereplies", "forum"), forum_go_back_to("discuss.php?d={$post->discussion}")); } print_header(); notice_yesno(get_string("deletesureplural", "forum", $replycount + 1), "post.php?delete={$delete}&confirm={$delete}&sesskey=" . sesskey(), $CFG->wwwroot . '/mod/forum/discuss.php?d=' . $post->discussion . '#p' . $post->id); forum_print_post($post, $course->id, $ownpost = false, $reply = false, $link = false); if (empty($post->edit)) { if (forum_tp_can_track_forums($forum) && forum_tp_is_tracked($forum)) { $user_read_array = forum_tp_get_discussion_read_records($USER->id, $discussion->id); } else { $user_read_array = array(); } forum_print_posts_nested($post->id, $course->id, false, false, $user_read_array, $forum->id); } } else { print_header(); notice_yesno(get_string("deletesure", "forum", $replycount), "post.php?delete={$delete}&confirm={$delete}&sesskey=" . sesskey(), $CFG->wwwroot . '/mod/forum/discuss.php?d=' . $post->discussion . '#p' . $post->id); forum_print_post($post, $forum->course, $ownpost = false, $reply = false, $link = false); } } print_footer($course); die; } else { if (!empty($prune)) { // Pruning if (!($post = forum_get_post_full($prune))) { error("Post ID was incorrect"); }
function forum_print_posts_nested($course, &$cm, $forum, $discussion, $parent, $reply, $forumtracked, $posts, $parentid = 0, $count = 1, $flag = 0) { global $USER, $CFG, $DB; $link = false; $modcontext = context_module::instance($cm->id); if (!empty($posts[$parent->id]->children)) { $posts = $posts[$parent->id]->children; foreach ($posts as $post) { if ((show_discussion($parentid, $forum) and $post->userid != $USER->id and !$flag) && !has_capability('mod/forum:editanypost', $modcontext)) { continue; } else { $flag = 1; } echo '<div class="indent">'; if (!isloggedin()) { $ownpost = false; } else { $ownpost = $USER->id == $post->userid; } $post->subject = format_string($post->subject); $postread = !empty($post->postread); if ($forum->type == 'collaborate' and $post->parent == $parentid) { $regionid = 'forum-questionview' . $count; print_collapsible_region_start('', $regionid, get_string('questionview', 'forum')); forum_print_post($post, $discussion, $forum, $cm, $course, $ownpost, $reply, false, '', '', $postread, true, $forumtracked, false, $parentid); } else { forum_print_post($post, $discussion, $forum, $cm, $course, $ownpost, $reply, false, '', '', $postread, true, $forumtracked, false, $parentid); } if ($forum->type == 'collaborate') { $n = $DB->count_records('forum_posts', array('parent' => $post->id)); if ($n == 0) { print_collapsible_region_end(); } } forum_print_posts_nested($course, $cm, $forum, $discussion, $post, $reply, $forumtracked, $posts, $parentid, $count + 1, $flag); $flag = 0; echo "</div>\n"; $count = $count + 1; } } }