function plagiarism_urkund_send_files() { global $DB, $CFG; $plagiarismsettings = plagiarism_plugin_urkund::get_settings(); if (!empty($plagiarismsettings)) { // Get all files in a pending state. $plagiarismfiles = $DB->get_records("plagiarism_urkund_files", array("statuscode" => "pending")); foreach ($plagiarismfiles as $pf) { // Check to make sure cm exists. - delete record if cm has been deleted. $sql = "SELECT m.name\n FROM {modules} m\n JOIN {course_modules} cm ON cm.module = m.id\n WHERE cm.id = ?"; $modulename = $DB->get_field_sql($sql, array($pf->cm)); if (empty($modulename)) { // The coursemodule related to this file has been deleted, delete the urkund entry. mtrace("URKUND fileid:{$pf->id} Course module id:" . $pf->cm . " does not exist, deleting record"); $DB->delete_records('plagiarism_urkund_files', array('id' => $pf->id)); continue; } mtrace("URKUND fileid:" . $pf->id . ' sending for processing'); $file = plagiarism_urkund_get_file_object($pf); if (empty($file)) { continue; } if ($module = "assign") { // Check for group assignment and adjust userid if required. // This prevents subsequent group submissions from flagging a previous submission as a match. $pf = plagiarism_urkund_check_group($pf); } if (!empty($file)) { urkund_send_file_to_urkund($pf, $plagiarismsettings, $file); } else { $DB->delete_records('plagiarism_urkund_files', array('id' => $pf->id)); mtrace("URKUND fileid:{$pf->id} File not found, this may have been replaced by a newer file - deleting record"); } } } }
function urkund_send_file($cmid, $userid, $file, $plagiarismsettings) { global $DB; $plagiarismfile = urkund_get_plagiarism_file($cmid, $userid, $file); // Check if $plagiarismfile actually needs to be submitted. if ($plagiarismfile->statuscode != 'pending') { return true; } $filename = !empty($file->filename) ? $file->filename : $file->get_filename(); if ($plagiarismfile->filename !== $filename) { // This is a file that was previously submitted and not sent to urkund but the filename has changed so fix it. $plagiarismfile->filename = $filename; $DB->update_record('plagiarism_urkund_files', $plagiarismfile); } // Check to see if this is a valid file. $mimetype = urkund_check_file_type($filename); if (empty($mimetype)) { $plagiarismfile->statuscode = URKUND_STATUSCODE_UNSUPPORTED; $DB->update_record('plagiarism_urkund_files', $plagiarismfile); return true; } // Increment attempt number. $plagiarismfile->attempt = $plagiarismfile->attempt++; $DB->update_record('plagiarism_urkund_files', $plagiarismfile); return urkund_send_file_to_urkund($plagiarismfile, $plagiarismsettings, $file); }