*/
$commentid = required_param('commentid', PARAM_INT);
$rownum = optional_param('rownum', 1, PARAM_INT);
if ($rownum < 1) {
    $rownum = 1;
}
if (!($comment = $DB->get_record('emarking_comment', array('id' => $commentid)))) {
    emarking_json_error('Invalid comment id for searching.');
}
$params = array($submission->emarkingid, $submission->id, $comment->levelid);
$similaranswers = $DB->get_records_sql("SELECT c.id, c.rawtext as text, c.pageno, c.pagesid\n\t\tFROM {emarking_comment} as c\n\t\tWHERE pagesid in (\n\t\tSELECT id FROM {emarking_page}\n\t\tWHERE assignment in (SELECT emarking FROM {emarking_page} WHERE id = ?))\n\t\tAND pagesid <> ? AND c.levelid = ?\n\t\tORDER BY c.id", $params);
$count = 0;
foreach ($similaranswers as $answer) {
    $count++;
    if ($count == $rownum) {
        if (!($submission = $DB->get_record('emarking_draft', array('id' => $answer->pagesid)))) {
            emarking_json_error('Invalid submission');
        }
        if (!($emarking = $DB->get_record("emarking", array("id" => $submission->emarkingid)))) {
            emarking_json_error('Invalid assignment');
        }
        if (!($course = $DB->get_record("course", array("id" => $emarking->course)))) {
            emarking_json_error('Invalid course');
        }
        if (!($cm = get_coursemodule_from_instance("emarking", $emarking->id, $course->id))) {
            emarking_json_error('Invalid course module');
        }
        list($imageurl, $imgwidth, $imgheight, $numfiles) = emarking_get_page_image($pageno, $submission, $context->id);
        emarking_json_array(array('error' => '', 'url' => $imageurl, 'width' => $imgwidth, 'height' => $imgheight, 'pagecount' => $numfiles));
    }
}
Example #2
0
        break;
    case 'rotatepage':
        if (!$issupervisor) {
            emarking_json_error('Invalid access');
        }
        list($imageurl, $anonymousurl, $imgwidth, $imgheight) = emarking_rotate_image($pageno, $submission, $context);
        if (strlen($imageurl) == 0) {
            emarking_json_error('Image is empty');
        }
        $output = array('imageurl' => $imageurl, 'anonymousimageurl' => $anonymousurl, 'width' => $imgwidth, 'height' => $imgheight);
        emarking_json_array($output);
        break;
    case 'sortpages':
        $neworder = required_param('neworder', PARAM_SEQUENCE);
        $neworderarr = explode(',', $neworder);
        if (!emarking_sort_submission_pages($submission, $neworderarr)) {
            emarking_json_error('Error trying to resort pages!');
        }
        $output = array('neworder' => $neworder);
        emarking_json_array($output);
        break;
    case 'updcomment':
        emarking_check_grade_permission($readonly, $draft, $context);
        // Add to Moodle log so some auditing can be done.
        \mod_emarking\event\emarking_graded::create_from_draft($draft, $submission, $context)->trigger();
        $newgrade = emarking_update_comment($submission, $draft, $emarking, $context);
        emarking_json_array(array('message' => 'Success!', 'newgrade' => $newgrade, 'timemodified' => time()));
        break;
    default:
        emarking_json_error('Invalid action!');
}
Example #3
0
// Ping action for fast validation of user logged in and communication with server
if ($action === 'ping') {
    emarking_json_array(array('user' => $USER->id));
}
// Now require login so full security is checked
require_login($course->id, false, $cm);
$url = new moodle_url('/mod/emarking/ajax/m.php', array('cmid' => $cmid, 'action' => $action));
// Switch according to action
switch ($action) {
    case 'markersconfig':
        // Add to Moodle log so some auditing can be done
        $item = array('context' => context_module::instance($cm->id), 'objectid' => $cm->id);
        // Add to Moodle log so some auditing can be done
        \mod_emarking\event\markersconfig_called::create($item)->trigger();
        $module = new stdClass();
        include "qry/qryGetMarkersConfiguration.php";
        emarking_json_array($results);
        break;
    case 'addmarker':
    case 'addpage':
        include 'act/actAddCriterion2Marker.php';
        emarking_json_array($output);
        break;
    case 'delmarker':
    case 'delpage':
        include 'act/actDeleteCriterion2Marker.php';
        emarking_json_array($output);
        break;
    default:
        emarking_json_error('Invalid action!' . $action);
}