Exemple #1
0
/**
 * 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();
    }
}