/**
  * Search a list of modules.
  *
  * @param $modulecode
  * @return array [string]
  * @throws \invalid_parameter_exception
  */
 public static function get_submission_status($submissionid)
 {
     global $DB, $USER;
     $params = self::validate_parameters(self::get_submission_status_parameters(), array('submissionid' => $submissionid));
     $submissionid = $params['submissionid'];
     $submission = $DB->get_record('turnitintooltwo_submissions', array('id' => $submissionid));
     if (!$submission) {
         return array('status' => 'error');
     }
     // Grab more data.
     $turnitintooltwo = $DB->get_record('turnitintooltwo', array('id' => $submission->turnitintooltwoid));
     list($course, $cm) = get_course_and_cm_from_instance($turnitintooltwo, 'turnitintooltwo');
     // Check this is our submission.
     if ($USER->id !== $submission->userid && !has_capability('mod/turnitintooltwo:grade', \context_module::instance($cm->id))) {
         return array('status' => 'nopermission');
     }
     // What is the status?
     $status = $DB->get_record('turnitintooltwo_sub_status', array('submissionid' => $submissionid));
     if (!$status) {
         return array('status' => 'queued');
     }
     // Decode the receipt.
     $digitalreceipt = (array) json_decode($status->receipt);
     // Woo!
     if ($status->status == \mod_turnitintooltwo\task\submit_assignment::STATUS_SUCCESS) {
         $turnitintooltwoview = new \turnitintooltwo_view();
         $digitalreceipt = $turnitintooltwoview->show_digital_receipt($digitalreceipt);
         $digitalreceipt = \html_writer::tag("div", $digitalreceipt, array("id" => "box_receipt"));
         return array('status' => 'success', 'message' => $digitalreceipt);
     }
     return array('status' => 'failed', 'message' => \html_writer::tag("div", $digitalreceipt["message"], array("class" => "alert alert-danger")));
 }
Esempio n. 2
0
 */
require_once __DIR__ . "/../../config.php";
require_once __DIR__ . "/lib.php";
require_once $CFG->libdir . "/formslib.php";
require_once $CFG->libdir . "/form/text.php";
require_once $CFG->libdir . "/form/datetimeselector.php";
require_once $CFG->libdir . "/form/hidden.php";
require_once $CFG->libdir . "/form/button.php";
require_once $CFG->libdir . "/form/submit.php";
require_once $CFG->libdir . "/uploadlib.php";
// Offline mode provided by Androgogic. Set tiioffline in config.php.
if (!empty($CFG->tiioffline)) {
    turnitintooltwo_print_error('turnitintoolofflineerror', 'turnitintooltwo');
}
require_once __DIR__ . "/turnitintooltwo_view.class.php";
$turnitintooltwoview = new turnitintooltwo_view();
require_once __DIR__ . '/classes/nonsubmitters/nonsubmitters_message.php';
$nonsubmitters = new nonsubmitters_message();
// Get/Set variables and work out which function to perform.
$id = required_param('id', PARAM_INT);
// Course Module ID.
$a = optional_param('a', 0, PARAM_INT);
// Turnitintooltwo ID.
$part = optional_param('part', 0, PARAM_INT);
// Part ID.
$user = optional_param('user', 0, PARAM_INT);
// User ID.
$do = optional_param('do', "submissions", PARAM_ALPHAEXT);
$action = optional_param('action', "", PARAM_ALPHA);
$viewcontext = optional_param('view_context', "window", PARAM_ALPHAEXT);
$notice = null;
 /**
  * Outputs the HTML for the submission form
  *
  * @global object $CFG
  * @global object $OUTPUT
  * @param object $cm The moodle course module object for this instance
  * @param object $turnitintooltwoassignment The turnitintooltwo object for this activity
  * @param int $partid The part id being submitted to
  * @param int $userid The user id who the submission is for
  * @param array $turnitintooltwofileuploadoptions upload options for the file manager
  * @return string returns the HTML of the form
  */
 public function show_submission_form($cm, $turnitintooltwoassignment, $partid, $turnitintooltwofileuploadoptions, $viewcontext = "box", $userid = 0)
 {
     global $CFG, $OUTPUT, $USER, $DB;
     $output = "";
     $config = turnitintooltwo_admin_config();
     $istutor = has_capability('mod/turnitintooltwo:grade', context_module::instance($cm->id));
     // Check if the submitting user has accepted the EULA
     $eulaaccepted = false;
     if ($userid == $USER->id) {
         $user = new turnitintooltwo_user($userid, "Learner");
         $coursedata = $turnitintooltwoassignment->get_course_data($turnitintooltwoassignment->turnitintooltwo->course);
         $user->join_user_to_class($coursedata->turnitin_cid);
         $eulaaccepted = $user->user_agreement_accepted != 1 ? $user->get_accepted_user_agreement() : $user->user_agreement_accepted;
     }
     $parts = $turnitintooltwoassignment->get_parts_available_to_submit(0, $istutor);
     if (!empty($parts)) {
         $elements = array();
         $elements[] = array('header', 'submitpaper', get_string('submitpaper', 'turnitintooltwo'));
         $elements[] = array('hidden', 'submissionassignment', $turnitintooltwoassignment->turnitintooltwo->id);
         $elements[] = array('hidden', 'action', 'submission');
         if ($istutor || $eulaaccepted == 1) {
             // Upload type.
             switch ($turnitintooltwoassignment->turnitintooltwo->type) {
                 case 0:
                     $options = $this->get_filetypes(false);
                     $elements[] = array('select', 'submissiontype', get_string('submissiontype', 'turnitintooltwo'), 'submissiontype', $options);
                     break;
                 case 1:
                 case 2:
                     $elements[] = array('hidden', 'submissiontype', $turnitintooltwoassignment->turnitintooltwo->type);
                     break;
             }
             // User id if applicable.
             if ($istutor) {
                 $elements[] = array('hidden', 'studentsname', $userid);
             }
             // Submission Title.
             $elements[] = array('text', 'submissiontitle', get_string('submissiontitle', 'turnitintooltwo'), 'submissiontitle', '', 'required', get_string('submissiontitleerror', 'turnitintooltwo'), PARAM_TEXT);
             // Submission Part(s).
             if ($partid == 0) {
                 $options = array();
                 foreach ($parts as $part) {
                     $options[$part->id] = $part->partname;
                 }
                 $elements[] = array('select', 'submissionpart', get_string('submissionpart', 'turnitintooltwo'), 'submissionpart', $options);
             } else {
                 $elements[] = array('hidden', 'submissionpart', $partid);
             }
             // File input for uploads.
             if ($turnitintooltwoassignment->turnitintooltwo->type == 0 || $turnitintooltwoassignment->turnitintooltwo->type == 1) {
                 $elements[] = array('filemanager', 'submissionfile', get_string('filetosubmit', 'turnitintooltwo'), 'filetosubmit', $turnitintooltwofileuploadoptions);
             }
             // Textarea.
             if ($turnitintooltwoassignment->turnitintooltwo->type == 0) {
                 $elements[] = array('textarea', 'submissiontext', get_string('texttosubmit', 'turnitintooltwo'), 'texttosubmit');
             } else {
                 if ($turnitintooltwoassignment->turnitintooltwo->type == 2) {
                     $elements[] = array('textarea', 'submissiontext', get_string('texttosubmit', 'turnitintooltwo'), 'texttosubmit', '', 'required', get_string('submissiontexterror', 'turnitintooltwo'), PARAM_TEXT);
                 }
             }
             // Show agreement if applicable.
             if ($istutor || empty($config->agreement)) {
                 $elements[] = array('hidden', 'submissionagreement', 1);
                 $customdata["checkbox_label_after"] = false;
             } else {
                 $elements[] = array('advcheckbox', 'submissionagreement', $config->agreement, '', array(0, 1), 'required', get_string('copyrightagreementerror', 'turnitintooltwo'), PARAM_INT);
                 $customdata["checkbox_label_after"] = true;
             }
         }
         // Output a link for the student to accept the turnitin licence agreement.
         $noscriptula = "";
         $ula = "";
         if ($userid == $USER->id) {
             if ($eulaaccepted != 1) {
                 $ula = html_writer::tag('p', get_string('turnitinula', 'turnitintooltwo'), array('class' => 'turnitin_ula_text'));
                 $ula .= html_writer::tag('div', turnitintooltwo_view::output_dv_launch_form("useragreement", 0, $user->tii_user_id, "Learner", get_string('turnitinula_btn', 'turnitintooltwo'), false), array('class' => 'turnitin_ula', 'data-userid' => $userid));
                 $noscriptula = html_writer::tag('noscript', $this->output_dv_launch_form("useragreement", 0, $user->tii_user_id, "Learner", get_string('turnitinula', 'turnitintooltwo'), false) . " " . get_string('noscriptula', 'turnitintooltwo'), array('class' => 'warning turnitin_ula_noscript'));
             }
         }
         $customdata["elements"] = $elements;
         $customdata["show_cancel"] = false;
         // Get any previous submission to determine if this is a resubmission.
         $prevsubmission = $turnitintooltwoassignment->get_user_submissions($userid, $turnitintooltwoassignment->turnitintooltwo->id, $partid);
         $customdata["submit_label"] = count($prevsubmission) == 0 ? get_string('addsubmission', 'turnitintooltwo') : get_string('resubmission', 'turnitintooltwo');
         $customdata["disable_form_change_checker"] = true;
         $optionsform = new turnitintooltwo_form($CFG->wwwroot . '/mod/turnitintooltwo/view.php?id=' . $cm->id . '&do=submitpaper&view_context=' . $viewcontext, $customdata);
         $output .= $ula . $noscriptula;
         $output .= $OUTPUT->box($optionsform->display(), "submission_form_container");
         $turnitincomms = new turnitintooltwo_comms();
         $turnitincall = $turnitincomms->initialise_api();
         $customdata = array("disable_form_change_checker" => true, "elements" => array(array('html', $OUTPUT->box('', '', 'useragreement_inputs'))));
         $eulaform = new turnitintooltwo_form($turnitincall->getApiBaseUrl() . TiiLTI::EULAENDPOINT, $customdata, 'POST', $target = 'eulaWindow', array('id' => 'eula_launch'));
         $output .= $OUTPUT->box($eulaform->display(), '', 'useragreement_form');
     }
     return $output;
 }
// Initialise plugin class.
$pluginturnitin = new plagiarism_plugin_turnitin();
switch ($action) {
    case "get_dv_html":
        $submissionid = required_param('submissionid', PARAM_INT);
        $dvtype = optional_param('dvtype', 'default', PARAM_ALPHAEXT);
        $user = new turnitintooltwo_user($USER->id, $userrole);
        $coursedata = turnitintooltwo_assignment::get_course_data($cm->course, 'PP');
        if ($userrole == 'Instructor') {
            $user->join_user_to_class($coursedata->turnitin_cid);
        }
        // Edit assignment in Turnitin in case any changes have been made that would affect DV.
        $pluginturnitin = new plagiarism_plugin_turnitin();
        $syncassignment = $pluginturnitin->sync_tii_assignment($cm, $coursedata->turnitin_cid);
        if ($syncassignment['success']) {
            $turnitintooltwoview = new turnitintooltwo_view();
            $return = html_writer::tag("div", $turnitintooltwoview->output_dv_launch_form($dvtype, $submissionid, $user->tii_user_id, $userrole, ''), array('style' => 'display: none'));
        }
        break;
    case "update_grade":
        if (!confirm_sesskey()) {
            throw new moodle_exception('invalidsesskey', 'error');
        }
        include_once $CFG->libdir . "/gradelib.php";
        $submissionid = optional_param('submission', 0, PARAM_INT);
        if ($userrole == 'Instructor' && $cm->modname == "assign") {
            $return["status"] = $pluginturnitin->update_grades_from_tii($cm);
            $moduleconfigvalue = new stdClass();
            // If we have a turnitin timestamp stored then update it, otherwise create it.
            if ($timestampid = $DB->get_record('plagiarism_turnitin_config', array('cm' => $cm->id, 'name' => 'grades_last_synced'), 'id')) {
                $moduleconfigvalue->id = $timestampid->id;
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
/**
 * @package   turnitintooltwo
 * @copyright 2012 iParadigms LLC
 */
if ($ADMIN->fulltree) {
    include_once __DIR__ . '/lib.php';
    require_once __DIR__ . '/settingslib.php';
    require_once __DIR__ . "/turnitintooltwo_view.class.php";
    $turnitintooltwoview = new turnitintooltwo_view();
    $config = turnitintooltwo_admin_config();
    $library_warning = '';
    if (!extension_loaded('XMLWriter')) {
        $library_warning = html_writer::tag('div', get_string('noxmlwriterlibrary', 'turnitintooltwo'), array('class' => 'library_not_present_warning'));
    }
    $tabmenu = $turnitintooltwoview->draw_settings_menu($module, 'settings') . html_writer::tag('noscript', get_string('noscript', 'turnitintooltwo')) . $library_warning . html_writer::tag('link', '', array("rel" => "stylesheet", "type" => "text/css", "href" => $CFG->wwwroot . "/mod/turnitintooltwo/styles.css"));
    $current_section = optional_param('section', '', PARAM_ALPHAEXT);
    $version = empty($module->version) ? $module->versiondisk : $module->version;
    if ($current_section == 'modsettingturnitintooltwo') {
        if ($CFG->branch <= 25) {
            $tabmenu .= html_writer::tag('script', '', array("type" => "text/javascript", "src" => $CFG->wwwroot . "/mod/turnitintooltwo/jquery/jquery-1.8.2.min.js")) . html_writer::tag('script', '', array("type" => "text/javascript", "src" => $CFG->wwwroot . "/mod/turnitintooltwo/jquery/turnitintooltwo_settings.min.js"));
        } else {
            $PAGE->requires->jquery();
            $PAGE->requires->jquery_plugin('turnitintooltwo-turnitintooltwo_settings', 'mod_turnitintooltwo');
        }
     break;
 case "peermarkreviews":
     switch ($cm->modname) {
         case "forum":
         case "workshop":
             $istutor = has_capability('plagiarism/turnitin:viewfullreport', $context);
             break;
         default:
             $istutor = has_capability('mod/' . $cm->modname . ':grade', $context);
             break;
     }
     $isstudent = $cm->modname == "forum" ? has_capability('mod/' . $cm->modname . ':replypost', $context) : has_capability('mod/' . $cm->modname . ':submit', $context);
     if ($istutor || $isstudent) {
         $role = $istutor ? 'Instructor' : 'Learner';
         $tiiassignment = $DB->get_record('plagiarism_turnitin_config', array('cm' => $cm->id, 'name' => 'turnitin_assignid'));
         echo html_writer::tag("div", turnitintooltwo_view::output_lti_form_launch('peermark_reviews', $role, $tiiassignment->value), array("class" => "launch_form", "style" => "display:none;"));
         echo html_writer::script("<!--\n                                    window.document.forms[0].submit();\n                                    //-->");
     }
     break;
 case "actionuseragreement":
     if (!confirm_sesskey()) {
         throw new moodle_exception('invalidsesskey', 'error');
     }
     $message = optional_param('message', '', PARAM_ALPHAEXT);
     // Get the id from the turnitintooltwo_users table so we can update
     $turnitin_user = $DB->get_record('turnitintooltwo_users', array('userid' => $USER->id));
     // Build user object for update
     $eula_user = new object();
     $eula_user->id = $turnitin_user->id;
     $eula_user->user_agreement_accepted = 0;
     if ($message == 'turnitin_eula_accepted') {
Esempio n. 7
0
     if (is_siteadmin()) {
         $modules = $DB->get_record('modules', array('name' => 'turnitintooltwo'));
         $PAGE->set_context($modules);
         echo json_encode(turnitintooltwo_getfiles($modules->id));
     }
     break;
 case "get_members":
     $assignmentid = required_param('assignment', PARAM_INT);
     $turnitintooltwoassignment = new turnitintooltwo_assignment($assignmentid);
     $cm = get_coursemodule_from_instance("turnitintooltwo", $assignmentid);
     $return["aaData"] = array();
     if (has_capability('mod/turnitintooltwo:grade', context_module::instance($cm->id))) {
         $role = required_param('role', PARAM_ALPHA);
         $members = $turnitintooltwoassignment->get_tii_users_by_role($role);
         $PAGE->set_context(context_module::instance($cm->id));
         $turnitintooltwoview = new turnitintooltwo_view();
         $return["aaData"] = $turnitintooltwoview->get_tii_members_by_role($cm, $turnitintooltwoassignment, $members, $role);
     }
     echo json_encode($return);
     break;
 case "reveal_submission_name":
     if (!confirm_sesskey()) {
         throw new moodle_exception('invalidsesskey', 'error');
     }
     $assignmentid = required_param('assignment', PARAM_INT);
     $cm = get_coursemodule_from_instance("turnitintooltwo", $assignmentid);
     $PAGE->set_context(context_module::instance($cm->id));
     $return = array("status" => "fail", "msg" => get_string('unanonymiseerror', 'turnitintooltwo'));
     if (has_capability('mod/turnitintooltwo:grade', context_module::instance($cm->id))) {
         $submissionid = required_param('submission_id', PARAM_INT);
         $reason = optional_param('reason', get_string('noreason', 'turnitintooltwo'), PARAM_TEXT);
Esempio n. 8
0
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
/**
 * @package   turnitintooltwo
 * @copyright 2012 iParadigms LLC
 */
require_once __DIR__ . '/../../config.php';
require_once $CFG->libdir . '/tablelib.php';
require_once __DIR__ . "/lib.php";
require_once __DIR__ . "/turnitintooltwo_view.class.php";
$turnitintooltwoview = new turnitintooltwo_view();
$cmd = optional_param('cmd', "", PARAM_ALPHAEXT);
$viewcontext = optional_param('view_context', "window", PARAM_ALPHAEXT);
// Initialise variables.
$output = "";
$jsrequired = false;
$hidebg = $cmd == 'rubricmanager' || $cmd == 'quickmarkmanager' ? true : false;
// Module id needed for support form.
$id = optional_param('id', 0, PARAM_INT);
// Get course and module data that we've linked to here from and set context accordingly.
if ($id != 0) {
    //Pre 2.8 does not have the function get_course_and_cm_from_cmid.
    if ($CFG->branch >= 28) {
        list($course, $cm) = get_course_and_cm_from_cmid($id, 'turnitintooltwo');
    } else {
        $cm = get_coursemodule_from_id('turnitintooltwo', $id, 0, false, MUST_EXIST);
 /**
  * Print the Turnitin student disclosure inside the submission page for students to see
  *
  * @global type $DB
  * @global type $OUTPUT
  * @param type $cmid
  * @return type
  */
 public function print_disclosure($cmid)
 {
     global $DB, $OUTPUT, $USER, $PAGE, $CFG;
     static $tiiconnection;
     if (empty($tiiconnection)) {
         $tiiconnection = $this->test_turnitin_connection();
     }
     $config = turnitintooltwo_admin_config();
     $output = '';
     // Get course details
     $cm = get_coursemodule_from_id('', $cmid);
     $moduletiienabled = $this->get_config_settings('mod_' . $cm->modname);
     // Exit if Turnitin is not being used for this activity type.
     if (empty($moduletiienabled)) {
         return '';
     }
     $plagiarismsettings = $this->get_settings($cmid);
     // Check Turnitin is enabled for this current module.
     if (empty($plagiarismsettings['use_turnitin'])) {
         return '';
     }
     $this->load_page_components();
     // Show agreement.
     if (!empty($config->agreement)) {
         $contents = format_text($config->agreement, FORMAT_MOODLE, array("noclean" => true));
         $output = $OUTPUT->box($contents, 'generalbox boxaligncenter', 'intro');
     }
     // Show EULA if necessary and we have a connection to Turnitin.
     if ($tiiconnection) {
         $coursedata = $this->get_course_data($cm->id, $cm->course);
         $user = new turnitintooltwo_user($USER->id, "Learner");
         $user->join_user_to_class($coursedata->turnitin_cid);
         $eulaaccepted = $user->user_agreement_accepted == 0 ? $user->get_accepted_user_agreement() : $user->user_agreement_accepted;
         if ($eulaaccepted != 1) {
             // Moodle strips out form and script code for forum posts so we have to do the Eula Launch differently.
             $ula_link = html_writer::link($CFG->wwwroot . '/plagiarism/turnitin/extras.php?cmid=' . $cmid . '&cmd=useragreement&view_context=box_solid', $OUTPUT->pix_icon('tiiIcon', '', 'plagiarism_turnitin', array('class' => 'icon_size_large')) . '<br/>' . get_string('turnitinppulapre', 'plagiarism_turnitin'), array("class" => "pp_turnitin_eula_link"));
             $eulaignoredclass = $eulaaccepted == 0 ? ' pp_turnitin_ula_ignored' : '';
             $ula = html_writer::tag('div', $ula_link, array('class' => 'pp_turnitin_ula js_required' . $eulaignoredclass, 'data-userid' => $user->id));
             $noscriptula = html_writer::tag('noscript', turnitintooltwo_view::output_dv_launch_form("useragreement", 0, $user->tii_user_id, "Learner", get_string('turnitinppulapre', 'plagiarism_turnitin'), false) . " " . get_string('noscriptula', 'plagiarism_turnitin'), array('class' => 'warning turnitin_ula_noscript'));
         }
         // Show EULA launcher and form placeholder.
         if (!empty($ula)) {
             $output .= $ula . $noscriptula;
             $turnitincomms = new turnitin_comms();
             $turnitincall = $turnitincomms->initialise_api();
             $customdata = array("disable_form_change_checker" => true, "elements" => array(array('html', $OUTPUT->box('', '', 'useragreement_inputs'))));
             $eulaform = new turnitintooltwo_form($turnitincall->getApiBaseUrl() . TiiLTI::EULAENDPOINT, $customdata, 'POST', $target = 'eulaWindow', array('id' => 'eula_launch'));
             $output .= $OUTPUT->box($eulaform->display(), 'tii_useragreement_form', 'useragreement_form');
         }
     }
     if ($config->usegrademark && !empty($plagiarismsettings["plagiarism_rubric"])) {
         // Update assignment in case rubric is not stored in Turnitin yet.
         $tiiassignment = $this->sync_tii_assignment($cm, $coursedata->turnitin_cid);
         $rubricviewlink = html_writer::tag('div', html_writer::link($CFG->wwwroot . '/plagiarism/turnitin/ajax.php?cmid=' . $cm->id . '&action=rubricview&view_context=box', get_string('launchrubricview', 'plagiarism_turnitin'), array('class' => 'rubric_view_pp_launch', 'id' => 'rubric_view_launch', 'title' => get_string('launchrubricview', 'plagiarism_turnitin'))) . html_writer::tag('span', '', array('class' => 'launch_form', 'id' => 'rubric_view_form')), array('class' => 'row_rubric_view'));
         $output .= html_writer::tag('div', $rubricviewlink, array('class' => 'tii_links_container tii_disclosure_links'));
     }
     return $output;
 }
Esempio n. 10
0
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
/**
 * @package   turnitintooltwo
 * @copyright 2012 iParadigms LLC
 */
require_once __DIR__ . '/../../config.php';
require_once $CFG->libdir . '/tablelib.php';
require_once __DIR__ . "/lib.php";
require_once $CFG->dirroot . "/mod/turnitintooltwo/lib.php";
require_once $CFG->dirroot . "/mod/turnitintooltwo/turnitintooltwo_view.class.php";
$turnitintooltwoview = new turnitintooltwo_view();
$cmd = optional_param('cmd', "", PARAM_ALPHAEXT);
$viewcontext = optional_param('view_context', "window", PARAM_ALPHAEXT);
// If opening DV then $viewcontext needs to be set to box
if ($cmd == "origreport" || $cmd == "grademark") {
    $viewcontext = "box";
}
// Initialise variables.
$output = "";
$jsrequired = false;
$cmid = required_param('cmid', PARAM_INT);
$cm = get_coursemodule_from_id('', $cmid);
$context = context_course::instance($cm->course);
// Work out user role.
switch ($cm->modname) {
    case "forum":
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
/**
 * @package   turnitintooltwo
 * @copyright 2012 iParadigms LLC
 */
require_once __DIR__ . '/../../config.php';
require_once $CFG->dirroot . '/course/lib.php';
require_once $CFG->libdir . '/adminlib.php';
require_once $CFG->libdir . '/tablelib.php';
require_once __DIR__ . "/lib.php";
require_once __DIR__ . "/turnitintooltwo_view.class.php";
admin_externalpage_setup('managemodules');
$turnitintooltwoview = new turnitintooltwo_view();
$turnitintooltwoview->load_page_components();
// Get/Set variables and work out which function to perform.
$cmd = optional_param('cmd', "", PARAM_ALPHAEXT);
$filedate = optional_param('filedate', null, PARAM_ALPHANUMEXT);
$unlink = optional_param('unlink', null, PARAM_ALPHA);
$relink = optional_param('relink', null, PARAM_ALPHA);
$module = $DB->get_record('modules', array('name' => "turnitintooltwo"));
$viewcontext = optional_param('view_context', "window", PARAM_ALPHAEXT);
$filetodelete = optional_param('file', '', PARAM_INT);
$filehashtodelete = optional_param('filehash', '', PARAM_ALPHANUM);
// Initialise variables.
$output = "";
$jsrequired = false;
$config = turnitintooltwo_admin_config();
switch ($cmd) {
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
/**
 * @package   turnitintooltwo
 * @copyright 2012 iParadigms LLC
 */
require_once __DIR__ . '/../../config.php';
require_once $CFG->libdir . '/tablelib.php';
require_once __DIR__ . "/lib.php";
require_once $CFG->dirroot . "/mod/turnitintooltwo/lib.php";
require_once $CFG->dirroot . "/mod/turnitintooltwo/turnitintooltwo_view.class.php";
$turnitintooltwoview = new turnitintooltwo_view();
$cmd = optional_param('cmd', "", PARAM_ALPHAEXT);
$viewcontext = optional_param('view_context', "window", PARAM_ALPHAEXT);
// Initialise variables.
$output = "";
$jsrequired = false;
$cmid = required_param('cmid', PARAM_INT);
$cm = get_coursemodule_from_id('', $cmid);
$context = context_course::instance($cm->course);
$PAGE->set_context(context_system::instance());
require_login();
switch ($cmd) {
    case "useragreement":
        $PAGE->set_pagelayout('embedded');
        $PAGE->requires->jquery();
        $PAGE->requires->jquery_plugin('ui');
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
/**
 * @package   turnitintooltwo
 * @copyright 2010 iParadigms LLC
 */
require_once __DIR__ . "/../../config.php";
require_once __DIR__ . "/lib.php";
require_once __DIR__ . "/turnitintooltwo_view.class.php";
$turnitintooltwoview = new turnitintooltwo_view();
// Load Javascript and CSS.
$turnitintooltwoview->load_page_components();
$id = required_param('id', PARAM_INT);
// Course id.
// Configure URL correctly.
$urlparams = array('id' => $id);
$url = new moodle_url('/mod/turnitintooltwo/index.php', $urlparams);
// Get course data.
if (!($course = $DB->get_record("course", array("id" => $id)))) {
    turnitintooltwo_print_error('courseiderror', 'turnitintooltwo');
}
require_login($course->id);
// Print the header.
$extranavigation = array(array('title' => get_string("modulenameplural", "turnitintooltwo"), 'url' => null));
$turnitintooltwoview->output_header(null, $course, $url, get_string("modulenameplural", "turnitintooltwo"), $SITE->fullname, $extranavigation, '', '', true);