/** * Get the latest version info from the XML file https://www.turnitin.com/static/resources/files/moodledirect_latest.xml * * @return string url of latest if this version is not the latest null if update is not available */ function turnitintool_updateavailable($module) { $basedir = "https://www.turnitin.com/static/resources/files/"; $loaderbar = null; // Use the comms class so we can make sure the call is using any proxy in place $tii = new turnitintool_commclass('', '', '', '', '', $loaderbar); $result = $tii->doRequest("GET", $basedir . "moodledirect_latest.xml", ""); $tii->xmlToSimple($result, false); $moduleversion = isset($module->version) ? $module->version : $module->versiondb; if (strlen($result) > 0 and isset($tii->simplexml->version)) { $version = $tii->simplexml->version; if ($version <= $moduleversion) { // No update available return null; } else { // Update available return URL return $tii->simplexml->filename; } } // Could not find the xml file can't return URL so return null return null; }
/** * @package turnitintool * @copyright 2012 Turnitin */ function xmldb_turnitintool_upgrade($oldversion) { global $CFG, $THEME, $DB, $OUTPUT; $result = true; // Do necessary DB upgrades here //function add_field($name, $type, $precision=null, $unsigned=null, $notnull=null, $sequence=null, $enum=null, $enumvalues=null, $default=null, $previous=null) // Newer DB Man ($name, $type=null, $precision=null, $unsigned=null, $notnull=null, $sequence=null, $default=null, $previous=null) if ($result && $oldversion < 2009071501) { if (is_callable(array($DB, 'get_manager'))) { $dbman = $DB->get_manager(); $table = new xmldb_table('turnitintool_submissions'); $field = new xmldb_field('submission_gmimaged', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0', 'submission_grade'); if (!$dbman->field_exists($table, $field)) { $dbman->add_field($table, $field); } } else { $table = new XMLDBTable('turnitintool_submissions'); $field = new XMLDBField('submission_gmimaged'); $field->setAttributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0', 'submission_grade'); $result = $result && add_field($table, $field); } } if ($result && $oldversion < 2009091401) { if (is_callable(array($DB, 'get_manager'))) { $dbman = $DB->get_manager(); $table = new xmldb_table('turnitintool'); $field = new xmldb_field('introformat', XMLDB_TYPE_INTEGER, '4', XMLDB_UNSIGNED, null, null, null, null, '0', 'intro'); if (!$dbman->field_exists($table, $field)) { $dbman->add_field($table, $field); } } else { $table = new XMLDBTable('turnitintool'); $field = new XMLDBField('introformat'); $field->setAttributes(XMLDB_TYPE_INTEGER, '4', XMLDB_UNSIGNED, null, null, null, null, '0', 'intro'); $result = $result && add_field($table, $field); } } if ($result && $oldversion < 2009092901) { if (is_callable(array($DB, 'get_manager'))) { $dbman = $DB->get_manager(); $table1 = new xmldb_table('turnitintool'); $field1 = new xmldb_field('resubmit', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, null, null, null, null, '0', 'defaultdtpost'); if ($dbman->field_exists($table1, $field1)) { $dbman->rename_field($table1, $field1, 'anon'); } $table2 = new xmldb_table('turnitintool_submissions'); $field2 = new xmldb_field('submission_unanon', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, NULL, null, null, null, '0', 'submission_nmlastname'); $field3 = new xmldb_field('submission_unanonreason', XMLDB_TYPE_TEXT, 'medium', null, null, null, null, 'submission_unanon'); $field4 = new xmldb_field('submission_nmuserid', XMLDB_TYPE_TEXT, 'medium', null, null, null, null, null); if (!$dbman->field_exists($table2, $field2)) { $dbman->add_field($table2, $field2); } if (!$dbman->field_exists($table2, $field3)) { $dbman->add_field($table2, $field3); } $dbman->change_field_type($table2, $field4); } else { $table1 = new XMLDBTable('turnitintool'); $field1 = new XMLDBField('resubmit'); $field1->setAttributes(XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, null, null, null, null, '0', 'defaultdtpost'); $result = $result && rename_field($table1, $field1, 'anon'); $table2 = new XMLDBTable('turnitintool_submissions'); $field2 = new XMLDBField('submission_unanon'); $field3 = new XMLDBField('submission_unanonreason'); $field4 = new XMLDBField('submission_nmuserid'); $field2->setAttributes(XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, null, null, null, null, '0', 'submission_nmlastname'); $result = $result && add_field($table2, $field2); $field3->setAttributes(XMLDB_TYPE_TEXT, 'medium', null, null, null, null, null, null, 'submission_unanon'); $result = $result && add_field($table2, $field3); $field4->setAttributes(XMLDB_TYPE_TEXT, 'medium', null, null, null, null, null, null, null); $result = $result && change_field_type($table2, $field4); } } if ($result && $oldversion < 2009120501) { if (is_callable(array($DB, 'get_manager'))) { $dbman = $DB->get_manager(); // Launch add index userid $table = new xmldb_table('turnitintool_submissions'); $index = new xmldb_index('userid', XMLDB_INDEX_NOTUNIQUE, array('userid')); if (!$dbman->index_exists($table, $index)) { $dbman->add_index($table, $index); } // Launch add index turnitintoolid $table = new xmldb_table('turnitintool_submissions'); $index = new xmldb_index('turnitintoolid', XMLDB_INDEX_NOTUNIQUE, array('turnitintoolid')); if (!$dbman->index_exists($table, $index)) { $dbman->add_index($table, $index); } } else { $table = new XMLDBTable('turnitintool_submissions'); // Launch add index userid $index = new XMLDBIndex('userid'); $index->setAttributes(XMLDB_INDEX_NOTUNIQUE, array('userid')); if (index_exists($table, $index)) { $result = $result && add_index($table, $index); } // Launch add index turnitintoolid $index = new XMLDBIndex('turnitintoolid'); $index->setAttributes(XMLDB_INDEX_NOTUNIQUE, array('turnitintoolid')); if (index_exists($table, $index)) { $result = $result && add_index($table, $index); } } } if ($result && $oldversion < 2010012201) { if (is_callable(array($DB, 'get_manager'))) { $dbman = $DB->get_manager(); // Fix fields where '' has been used $DB->execute("UPDATE " . $CFG->prefix . "turnitintool_submissions SET submission_score=NULL WHERE submission_score=''"); $DB->execute("UPDATE " . $CFG->prefix . "turnitintool_submissions SET submission_grade=NULL WHERE submission_grade=''"); $DB->execute("UPDATE " . $CFG->prefix . "turnitintool_submissions SET submission_objectid=NULL WHERE submission_objectid=''"); $table = new xmldb_table('turnitintool_submissions'); $field1 = new xmldb_field('submission_score', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, NULL, null, null, null, null, 'submission_objectid'); $field2 = new xmldb_field('submission_grade', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, NULL, null, null, null, null, 'submission_score'); $field3 = new xmldb_field('submission_objectid', XMLDB_TYPE_INTEGER, '50', XMLDB_UNSIGNED, NULL, null, null, null, null, 'submission_filename'); $dbman->change_field_type($table, $field1); $dbman->change_field_type($table, $field2); $dbman->change_field_type($table, $field3); } else { $table = new XMLDBTable('turnitintool_submissions'); $field1 = new XMLDBField('submission_score'); $field2 = new XMLDBField('submission_grade'); $field3 = new XMLDBField('submission_objectid'); // Fix fields where '' has been used execute_sql("UPDATE " . $CFG->prefix . "turnitintool_submissions SET submission_score=NULL WHERE submission_score=''"); execute_sql("UPDATE " . $CFG->prefix . "turnitintool_submissions SET submission_grade=NULL WHERE submission_grade=''"); execute_sql("UPDATE " . $CFG->prefix . "turnitintool_submissions SET submission_objectid=NULL WHERE submission_objectid=''"); $field1->setAttributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null, 'submission_objectid'); $result = $result && change_field_type($table, $field1); $field2->setAttributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null, 'submission_score'); $result = $result && change_field_type($table, $field2); $field3->setAttributes(XMLDB_TYPE_INTEGER, '50', XMLDB_UNSIGNED, null, null, null, null, null, 'submission_filename'); $result = $result && change_field_type($table, $field3); } } if ($result && $oldversion < 2010021901) { require_once $CFG->dirroot . "/mod/turnitintool/lib.php"; $loaderbar = NULL; if (turnitintool_check_config()) { $tii = new turnitintool_commclass("", "FID99", "Turnitin", "*****@*****.**", "2", $loaderbar, false); $tii->migrateSRCData(); if (is_callable(array($DB, 'get_manager'))) { if (!$tii->getRerror()) { echo $OUTPUT->notification("Migrating Turnitin SRC Namespace: " . $tii->getRmessage(), 'notifysuccess'); } else { echo $OUTPUT->notification("Migrating Turnitin SRC Namespace: " . $tii->getRmessage()); } } else { if (!$tii->getRerror()) { notify($tii->getRmessage(), 'notifysuccess'); } else { notify($tii->getRmessage()); } } $result = $result && !$tii->getRerror(); } } if ($result && $oldversion < 2010090701) { $table = 'config'; $dataobject->name = 'turnitin_userepository'; $dataobject->value = 1; if (is_callable(array($DB, 'get_manager'))) { $DB->insert_record($table, $dataobject); } else { insert_record($table, $dataobject); } } if ($result && $oldversion < 2010102601) { if (is_callable(array($DB, 'get_manager'))) { $dbman = $DB->get_manager(); // Change the field size from 50 to 20 to add oracle compatibility $table1 = new xmldb_table('turnitintool_submissions'); $field1 = new xmldb_field('submission_objectid', XMLDB_TYPE_INTEGER, '20', XMLDB_UNSIGNED, NULL, null, null, 'submission_filename'); $field2 = new xmldb_field('submission_nmuserid', XMLDB_TYPE_CHAR, '100', XMLDB_UNSIGNED, NULL, null, null, 'submission_parent'); $dbman->change_field_type($table1, $field1); $dbman->change_field_type($table1, $field2); // Add the exclude small matches db fields $table2 = new xmldb_table('turnitintool'); $field3 = new xmldb_field('excludebiblio', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, 0, 'shownonsubmission'); $field4 = new xmldb_field('excludequoted', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, 0, 'excludebiblio'); $field5 = new xmldb_field('excludevalue', XMLDB_TYPE_INTEGER, '9', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, 0, 'excludequoted'); $field6 = new xmldb_field('excludetype', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, 1, 'excludevalue'); $field7 = new xmldb_field('perpage', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, 25, 'excludetype'); if (!$dbman->field_exists($table2, $field3)) { $dbman->add_field($table2, $field3); } if (!$dbman->field_exists($table2, $field4)) { $dbman->add_field($table2, $field4); } if (!$dbman->field_exists($table2, $field5)) { $dbman->add_field($table2, $field5); } if (!$dbman->field_exists($table2, $field6)) { $dbman->add_field($table2, $field6); } if (!$dbman->field_exists($table2, $field7)) { $dbman->add_field($table2, $field7); } // Rename table fields to add Oracle compatibility $table3 = new xmldb_table('turnitintool_comments'); $field8 = new xmldb_field('comment', XMLDB_TYPE_TEXT, 'medium', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, 'userid'); $dbman->rename_field($table3, $field8, "commenttext"); $field9 = new xmldb_field('date', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, 'comment'); $dbman->rename_field($table3, $field9, "dateupdated"); } else { // Change the field size from 50 to 20 to add oracle compatibility $table1 = new XMLDBTable('turnitintool_submissions'); $field1 = new XMLDBField('submission_objectid'); $field2 = new XMLDBField('submission_nmuserid'); $field1->setAttributes(XMLDB_TYPE_INTEGER, '20', XMLDB_UNSIGNED, null, null, null, null, null, 'submission_filename'); $field2->setAttributes(XMLDB_TYPE_CHAR, '100', XMLDB_UNSIGNED, null, null, null, null, null, 'submission_parent'); $result = $result && change_field_type($table1, $field1); $result = $result && change_field_type($table1, $field2); // Add the exclude small matches db fields $table2 = new XMLDBTable('turnitintool'); $field3 = new XMLDBField('excludebiblio'); $field4 = new XMLDBField('excludequoted'); $field5 = new XMLDBField('excludevalue'); $field6 = new XMLDBField('excludetype'); $field7 = new XMLDBField('perpage'); $field3->setAttributes(XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, 0, 'shownonsubmission'); $result = $result && add_field($table2, $field3); $field4->setAttributes(XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, 0, 'excludebiblio'); $result = $result && add_field($table2, $field4); $field5->setAttributes(XMLDB_TYPE_INTEGER, '9', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, 0, 'excludequoted'); $result = $result && add_field($table2, $field5); $field6->setAttributes(XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, 1, 'excludevalue'); $result = $result && add_field($table2, $field6); $field7->setAttributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, 25, 'excludetype'); $result = $result && add_field($table2, $field7); // Rename table fields to add Oracle compatibility $table3 = new XMLDBTable('turnitintool_comments'); $field8 = new XMLDBField('comment'); $field8->setAttributes(XMLDB_TYPE_TEXT, 'medium', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null, 'userid'); $result = $result && rename_field($table3, $field8, "commenttext"); $field9 = new XMLDBField('date'); $field9->setAttributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null, 'comment'); $result = $result && rename_field($table3, $field9, "dateupdated"); } } if ($result && $oldversion < 2011030101) { if (is_callable(array($DB, 'get_manager'))) { $dbman = $DB->get_manager(); $table = new xmldb_table('turnitintool'); $field1 = new xmldb_field('grade', XMLDB_TYPE_INTEGER, '10', null, null, null, null, null, null, 'name'); $dbman->change_field_type($table, $field1); } else { $table = new XMLDBTable('turnitintool'); $field1 = new XMLDBField('grade'); $field1->setAttributes(XMLDB_TYPE_INTEGER, '10', null, null, null, null, null, null, 'name'); $result = $result && change_field_type($table, $field1); } } if ($result && $oldversion < 2011081701) { if (is_callable(array($DB, 'get_manager'))) { $dbman = $DB->get_manager(); // Add erater fields $table = new xmldb_table('turnitintool'); $field1 = new xmldb_field('erater', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, 0, 'perpage'); $field2 = new xmldb_field('erater_handbook', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, 0, 'erater'); $field3 = new xmldb_field('erater_dictionary', XMLDB_TYPE_CHAR, '10', XMLDB_UNSIGNED, null, null, null, 'erater_handbook'); $field4 = new xmldb_field('erater_spelling', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, 0, 'erater_dictionary'); $field5 = new xmldb_field('erater_grammar', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, 0, 'erater_spelling'); $field6 = new xmldb_field('erater_usage', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, 0, 'erater_grammar'); $field7 = new xmldb_field('erater_mechanics', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, 0, 'erater_usage'); $field8 = new xmldb_field('erater_style', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, 0, 'erater_mechanics'); if (!$dbman->field_exists($table, $field1)) { $dbman->add_field($table, $field1); } if (!$dbman->field_exists($table, $field2)) { $dbman->add_field($table, $field2); } if (!$dbman->field_exists($table, $field3)) { $dbman->add_field($table, $field3); } if (!$dbman->field_exists($table, $field4)) { $dbman->add_field($table, $field4); } if (!$dbman->field_exists($table, $field5)) { $dbman->add_field($table, $field5); } if (!$dbman->field_exists($table, $field6)) { $dbman->add_field($table, $field6); } if (!$dbman->field_exists($table, $field7)) { $dbman->add_field($table, $field7); } if (!$dbman->field_exists($table, $field8)) { $dbman->add_field($table, $field8); } } else { // Add erater fields $table = new XMLDBTable('turnitintool'); $field1 = new XMLDBField('erater'); $field2 = new XMLDBField('erater_handbook'); $field3 = new XMLDBField('erater_dictionary'); $field4 = new XMLDBField('erater_spelling'); $field5 = new XMLDBField('erater_grammar'); $field6 = new XMLDBField('erater_usage'); $field7 = new XMLDBField('erater_mechanics'); $field8 = new XMLDBField('erater_style'); $field1->setAttributes(XMLDB_TYPE_INTEGER, '10', null, null, null, null, null, null, 'perpage'); $result = $result && add_field($table, $field1); $field2->setAttributes(XMLDB_TYPE_INTEGER, '10', null, null, null, null, null, null, 'erater'); $result = $result && add_field($table, $field2); $field3->setAttributes(XMLDB_TYPE_TEXT, '10', null, null, null, null, null, null, 'erater_handbook'); $result = $result && add_field($table, $field3); $field4->setAttributes(XMLDB_TYPE_INTEGER, '10', null, null, null, null, null, null, 'erater_dictionary'); $result = $result && add_field($table, $field4); $field5->setAttributes(XMLDB_TYPE_INTEGER, '10', null, null, null, null, null, null, 'erater_spelling'); $result = $result && add_field($table, $field5); $field6->setAttributes(XMLDB_TYPE_INTEGER, '10', null, null, null, null, null, null, 'erater_grammar'); $result = $result && add_field($table, $field6); $field7->setAttributes(XMLDB_TYPE_INTEGER, '10', null, null, null, null, null, null, 'erater_usage'); $result = $result && add_field($table, $field7); $field8->setAttributes(XMLDB_TYPE_INTEGER, '10', null, null, null, null, null, null, 'erater_mechanics'); $result = $result && add_field($table, $field8); } } if ($result && $oldversion < 2012030501) { if (is_callable(array($DB, 'get_manager'))) { $dbman = $DB->get_manager(); $table = new xmldb_table('turnitintool_users'); // Launch add index userid $index = new xmldb_index('userid', XMLDB_INDEX_UNIQUE, array('userid')); if (!$dbman->index_exists($table, $index)) { $dbman->add_index($table, $index); } } else { $table = new XMLDBTable('turnitintool_users'); // Launch add index userid $index = new XMLDBIndex('userid'); $index->setAttributes(XMLDB_INDEX_UNIQUE, array('userid')); if (index_exists($table, $index)) { $result = $result && add_index($table, $index); } } } if ($result && $oldversion < 2012042701) { if (is_callable(array($DB, 'get_manager'))) { $dbman = $DB->get_manager(); $table = new xmldb_table('turnitintool_users'); $field = new xmldb_field('turnitin_utp', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, 0, 'turnitin_uid'); if (!$dbman->field_exists($table, $field)) { $dbman->add_field($table, $field); } } else { $table = new XMLDBTable('turnitintool_users'); $field = new XMLDBField('turnitin_utp'); $field->setAttributes(XMLDB_TYPE_INTEGER, '10', null, null, null, null, null, 0, 'turnitin_uid'); $result = $result && add_field($table, $field); } } if ($result && $oldversion < 2012081301) { if (is_callable(array($DB, 'get_manager'))) { $dbman = $DB->get_manager(); $table = new xmldb_table('turnitintool_submissions'); $field = new xmldb_field('submission_transmatch', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, 0, 'submission_unanonreason'); if (!$dbman->field_exists($table, $field)) { $dbman->add_field($table, $field); } $table = new xmldb_table('turnitintool'); $field = new xmldb_field('transmatch', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, 0, 'erater_style'); if (!$dbman->field_exists($table, $field)) { $dbman->add_field($table, $field); } } else { $table = new XMLDBTable('turnitintool_submissions'); $field = new XMLDBField('submission_transmatch'); $field->setAttributes(XMLDB_TYPE_INTEGER, '10', null, null, null, null, null, 0, 'submission_unanonreason'); $result = $result && add_field($table, $field); $table = new XMLDBTable('turnitintool'); $field = new XMLDBField('transmatch'); $field->setAttributes(XMLDB_TYPE_INTEGER, '10', null, null, null, null, null, 0, 'erater_style'); $result = $result && add_field($table, $field); } } if ($result && $oldversion < 2013111403) { if (is_callable(array($DB, 'get_manager'))) { $dbman = $DB->get_manager(); $table = new xmldb_table('turnitintool'); $field = new xmldb_field('submitted', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, null, null, 0, 'anon'); if (!$dbman->field_exists($table, $field)) { $dbman->add_field($table, $field); } } else { $table = new XMLDBTable('turnitintool'); $field = new XMLDBField('submitted'); $field->setAttributes(XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, null, null, null, null, 0, 'anon'); $result = $result && add_field($table, $field); } } if ($result && $oldversion < 2015030302) { if (is_callable(array($DB, 'get_manager'))) { $dbman = $DB->get_manager(); $table = new xmldb_table('turnitintool'); $field = new xmldb_field('needs_updating', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, 0, 'transmatch'); if (!$dbman->field_exists($table, $field)) { $dbman->add_field($table, $field); } } else { $table = new XMLDBTable('turnitintool'); $field = new XMLDBField('needs_updating'); $field->setAttributes(XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, 0, 'transmatch'); $result = $result && add_field($table, $field); } } if ($result && $oldversion < 2015030303) { // Update URL for UK accounts. $apiurl = get_config('', 'turnitin_apiurl'); $newurl = str_replace('submit.ac.uk', 'api.turnitinuk.com', strtolower($apiurl)); set_config('turnitin_apiurl', $newurl); } return $result; }
$output .= '<a href="' . $CFG->wwwroot . '/mod/turnitintool/extras.php?do=' . $param_do . '&filedate=' . $date . '">' . ucfirst($param_do) . ' (' . userdate(strtotime($year . '-' . $month . '-' . $day), '%Y-%m-%d %H:%M:%S') . ')</a><br />' . PHP_EOL; } } echo $output; } else { echo get_string("nologsfound"); } echo "<br />"; turnitintool_box_end(); turnitintool_footer(); } } else { $post = new stdClass(); $post->utp = '2'; $loaderbar = new turnitintool_loaderbarclass(3); $tii = new turnitintool_commclass(turnitintool_getUID($USER), $USER->firstname, $USER->lastname, $USER->email, 2, $loaderbar); $tii->startSession(); $result = $tii->createUser($post, get_string('connecttesting', 'turnitintool')); $rcode = $tii->getRcode(); $rmessage = $tii->getRmessage(); $tiiuid = $tii->getUserID(); $tii->endSession(); turnitintool_header(NULL, NULL, $_SERVER["REQUEST_URI"], get_string("modulenameplural", "turnitintool"), $SITE->fullname); turnitintool_box_start('generalbox boxwidthwide boxaligncenter', 'general'); if ($rcode >= API_ERROR_START or empty($rcode)) { if (empty($rmessage)) { $rmessage = get_string('connecttestcommerror', 'turnitintool'); } turnitintool_print_error('connecttesterror', 'turnitintool', $CFG->wwwroot . '/admin/module.php?module=turnitintool', $rmessage, __FILE__, __LINE__); } else { $data = new object();
// Check to see if the user logged in is the user that submitted or is a grader (tutor) turnitintool_print_error('permissiondeniederror', 'turnitintool', NULL, NULL, __FILE__, __LINE__); exit; } $fs = get_file_storage(); $file = $fs->get_file($cm->id, 'mod_turnitintool', 'submission', $submission->id, '/', $submission->submission_filename); send_stored_file($file, 0, 0, true); } if (!is_null($param_part)) { if (!has_capability('mod/turnitintool:grade', turnitintool_get_context('MODULE', $cm->id))) { turnitintool_print_error('permissiondeniederror', 'turnitintool', NULL, NULL, __FILE__, __LINE__); exit; } $owner = turnitintool_get_owner($course->id); $loaderbar = null; $tii = new turnitintool_commclass(turnitintool_getUID($owner), $owner->firstname, $owner->lastname, $owner->email, 2, $loaderbar); $post = new stdClass(); $post->cid = turnitintool_getCID($course->id); $post->assignid = turnitintool_getAID($param_part); $post->ctl = turnitintool_getCTL($course->id); $post->assign = $turnitintool->name . ' - ' . turnitintool_partnamefromnum($param_part) . ' (Moodle ' . $post->assignid . ')'; $post->fcmd = 4; $tii->listSubmissions($post, get_string('downloadingfile', 'turnitintool')); if ($tii->getRerror()) { if (!$tii->getAPIunavailable()) { $reason = $tii->getRcode() == TURNITINTOOL_DB_UNIQUEID_ERROR ? get_string('assignmentdoesnotexist', 'turnitintool') : $tii->getRmessage(); } else { $reason = get_string('apiunavailable', 'turnitintool'); } turnitintool_print_error('downloadingfileerror', 'turnitintool', NULL, NULL, __FILE__, __LINE__); exit;
/** * Get the latest version info from the XML file https://www.turnitin.com/static/resources/files/moodledirect_latest.xml * * @return string url of latest if this version is not the latest null if update is not available */ function turnitintool_updateavailable($module) { $basedir = "https://www.turnitin.com/static/resources/files/"; $loaderbar = null; // Use the comms class so we can make sure the call is using any proxy in place $tii = new turnitintool_commclass('', '', '', '', '', $loaderbar); $result = $tii->doRequest("GET", $basedir . "moodledirect_latest.xml", ""); if (strlen($result) > 0 and $tii->xmlToArray($result)) { $version = $tii->_xmlarray["MOODLEDIRECT"][0]["VERSION"]['value']; if ($version <= $module->version) { // No update available return null; } else { // Update available return URL return $basedir . $tii->_xmlarray["MOODLEDIRECT"][0]["FILENAME"]['value']; } } // Could not find the xml file can't return URL so return null return null; }