Example #1
0
/**
 * @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";
        }
    }
}
Example #2
0
         // 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');
         }
Example #3
0
/**
 * 
 */
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;
}
Example #4
0
         // 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}&amp;confirm={$delete}&amp;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}&amp;confirm={$delete}&amp;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");
         }
Example #5
0
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;
        }
    }
}