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)); }