Esempio n. 1
0
    print_error('invalidcoursemodule');
}
if (!($course = $DB->get_record("course", array("id" => $oublog->course)))) {
    print_error('coursemisconf');
}
if (!($post = oublog_get_post($postid))) {
    print_error('invalidpost', 'oublog');
}
if (!($oubloginstance = $DB->get_record('oublog_instances', array('id' => $post->oubloginstancesid)))) {
    print_error('invalidblog', 'oublog');
}
$url = new moodle_url('/mod/oublog/editcomment.php', array('blog' => $blog, 'post' => $postid, 'comment' => $commentid));
$PAGE->set_url($url);
// Check security.
$context = context_module::instance($cm->id);
oublog_check_view_permissions($oublog, $context, $cm);
$post->userid = $oubloginstance->userid;
// oublog_can_view_post needs this
if (!oublog_can_view_post($post, $USER, $context, $oublog->global)) {
    print_error('accessdenied', 'oublog');
}
oublog_get_activity_groupmode($cm, $course);
if (!oublog_can_comment($cm, $oublog, $post)) {
    print_error('accessdenied', 'oublog');
}
if ($oublog->allowcomments == OUBLOG_COMMENTS_PREVENT || $post->allowcomments == OUBLOG_COMMENTS_PREVENT) {
    print_error('commentsnotallowed', 'oublog');
}
$viewurl = 'viewpost.php?post=' . $post->id;
if ($oublog->global) {
    $blogtype = 'personal';
header('Content-Type: application/json');
require_once dirname(__FILE__) . '/../../config.php';
require_once $CFG->dirroot . '/mod/oublog/locallib.php';
require_sesskey();
$type = required_param('type', PARAM_ALPHA);
$id = optional_param('id', 0, PARAM_INT);
if ($id) {
    // Load efficiently (and with full $cm data) using get_fast_modinfo.
    $course = $DB->get_record_select('course', 'id = (SELECT course FROM {course_modules} WHERE id = ?)', array($id), '*', MUST_EXIST);
    $modinfo = get_fast_modinfo($course);
    $cm = $modinfo->get_cm($id);
    if ($cm->modname !== 'oublog') {
        print_error('invalidcoursemodule');
    }
    if (!($oublog = $DB->get_record('oublog', array('id' => $cm->instance)))) {
        print_error('invalidcoursemodule');
    }
} else {
    // Global personal blog.
    if (!($oublog = $DB->get_record('oublog', array('global' => 1)))) {
        print_error('personalblognotsetup', 'oublog');
    }
    if (!($cm = get_coursemodule_from_instance('oublog', $oublog->id))) {
        print_error('invalidcoursemodule');
    }
}
oublog_check_view_permissions($oublog, context_module::instance($cm->id), $cm);
$func = "oublog_stats_output_{$type}";
if (function_exists($func)) {
    echo json_encode($func($oublog, $cm, null, true));
}