/** * Synchronises the assignment part settings with the settings that Turnitin has for the assignment parts * * @global object * @param object $cm The moodle course module object for this instance * @param object $turnitintool The turnitintool object for this activity * @param boolean $forced True if we want ot force the operation otherwise determined by a session array updatedconfig * @param object $loaderbar Passed by reference can be NULL if no loader bar is used * @return boolean Returns false on failure */ function turnitintool_synch_parts($cm, $turnitintool, $forced = false, $loaderbar = NULL) { $param_type = optional_param('type', null, PARAM_CLEAN); if ((isset($_SESSION['updatedconfig'][$turnitintool->id]) and $_SESSION['updatedconfig'][$turnitintool->id] == 1 or !is_null($param_type)) and !$forced) { return false; } else { if (!($parts = turnitintool_get_records_select('turnitintool_parts', 'turnitintoolid=' . $turnitintool->id . ' AND deleted=0'))) { mtrace(get_string('partgeterror', 'turnitintool') . ' - ID: ' . $turnitintool->id . '\\n'); } $partsarray = array(); $owner = turnitintool_get_owner($turnitintool->course); $tii = new turnitintool_commclass(turnitintool_getUID($owner), $owner->firstname, $owner->lastname, $owner->email, 2, $loaderbar); $tii->startSession(); $tiitooldone = false; foreach ($parts as $part) { $post = new stdClass(); $post->cid = turnitintool_getCID($turnitintool->course); $post->ctl = turnitintool_getCTL($turnitintool->course); $post->assign = $turnitintool->name . ' - ' . $part->partname . ' (Moodle: ' . $part->tiiassignid . ')'; $post->assignid = $part->tiiassignid; $post->assignid = $part->maxmarks; $tii->queryAssignment($post, get_string('synchassignments', 'turnitintool')); $assignObj = $tii->getAssignmentObject(); if (!$tii->getRerror()) { if (!$tiitooldone) { $tiiupdate = new stdClass(); $tiiupdate->id = $turnitintool->id; $tiiupdate->anon = $assignObj->anon; $tiiupdate->reportgenspeed = $assignObj->report_gen_speed; $tiiupdate->studentreports = $assignObj->s_view_report; $tiiupdate->allowlate = $assignObj->late_accept_flag; $tiiupdate->submitpapersto = $assignObj->submit_papers_to; $tiiupdate->internetcheck = $assignObj->internet_check; $tiiupdate->journalcheck = $assignObj->journal_check; if (!($update = turnitintool_update_record('turnitintool', $tiiupdate))) { mtrace(get_string('turnitintoolupdateerror', 'turnitintool') . ' - ID: ' . $turnitintool->id . '\\n'); } $partupdate = new stdClass(); $partupdate->id = $part->id; $partupdate->maxmarks = $assignObj->maxpoints; $partupdate->dtstart = $assignObj->dtstart; $partupdate->dtdue = $assignObj->dtdue; $partupdate->dtpost = $assignObj->dtpost; if (!($update = turnitintool_update_record('turnitintool_parts', $partupdate))) { mtrace(get_string('partupdateerror', 'turnitintool') . ' - ID: ' . $part->id . '\\n'); } } } } $tii->endSession(); } }