Example #1
0
 }
 if (!($forum = $DB->get_record("forum", array("id" => $discussion->forum)))) {
     print_error('invalidforumid', 'forum');
 }
 if (!($cm = get_coursemodule_from_instance("forum", $forum->id, $forum->course))) {
     print_error('invalidcoursemodule');
 }
 if (!($course = $DB->get_record('course', array('id' => $forum->course)))) {
     print_error('invalidcourseid');
 }
 require_login($course, false, $cm);
 $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
 if (!($post->userid == $USER->id && has_capability('mod/forum:deleteownpost', $modcontext) || has_capability('mod/forum:deleteanypost', $modcontext))) {
     print_error('cannotdeletepost', 'forum');
 }
 $replycount = forum_count_replies($post);
 if (!empty($confirm) && confirm_sesskey()) {
     // User has confirmed the delete
     //check user capability to delete post.
     $timepassed = time() - $post->created;
     if ($timepassed > $CFG->maxeditingtime && !has_capability('mod/forum:deleteanypost', $modcontext)) {
         print_error("cannotdeletepost", "forum", forum_go_back_to("discuss.php?d={$post->discussion}"));
     }
     if ($post->totalscore) {
         notice(get_string('couldnotdeleteratings', 'rating'), forum_go_back_to("discuss.php?d={$post->discussion}"));
     } else {
         if ($replycount && !has_capability('mod/forum:deleteanypost', $modcontext)) {
             print_error("couldnotdeletereplies", "forum", forum_go_back_to("discuss.php?d={$post->discussion}"));
         } else {
             if (!$post->parent) {
                 // post is a discussion topic as well, so delete discussion
Example #2
0
/**
 * @global object
 * @param object $post
 * @param bool $children
 * @return int
 */
function forum_count_replies($post, $children=true) {
    global $DB;
    $count = 0;

    if ($children) {
        if ($childposts = $DB->get_records('forum_posts', array('parent' => $post->id))) {
           foreach ($childposts as $childpost) {
               $count ++;                   // For this child
               $count += forum_count_replies($childpost, true);
           }
        }
    } else {
        $count += $DB->count_records('forum_posts', array('parent' => $post->id));
    }

    return $count;
}
Example #3
0
File: lib.php Project: r007/PMoodle
/**
 *
 */
function forum_count_replies($post, $children = true)
{
    $count = 0;
    if ($children) {
        if ($childposts = get_records('forum_posts', 'parent', $post->id)) {
            foreach ($childposts as $childpost) {
                $count++;
                // For this child
                $count += forum_count_replies($childpost, true);
            }
        }
    } else {
        $count += count_records('forum_posts', 'parent', $post->id);
    }
    return $count;
}