Ejemplo n.º 1
0
     if ($istutor) {
         echo html_writer::tag("div", $turnitintooltwoview->output_lti_form_launch('peermark_manager', 'Instructor', $parts[$part]->tiiassignid), array("class" => "launch_form"));
     }
     break;
 case "peermarkreviews":
     if ($istutor || has_capability('mod/turnitintooltwo:submit', context_module::instance($cm->id))) {
         echo html_writer::tag("div", $turnitintooltwoview->output_lti_form_launch('peermark_reviews', $userrole, $parts[$part]->tiiassignid), array("class" => "launch_form"));
     }
     break;
 case "origreport":
 case "grademark":
 case "downloadoriginal":
 case "default":
     $submissionid = required_param('submissionid', PARAM_INT);
     $user = new turnitintooltwo_user($USER->id, $userrole);
     echo html_writer::tag("div", $turnitintooltwoview->output_dv_launch_form($do, $submissionid, $user->tii_user_id, $userrole), array("class" => "launch_form"));
     if ($do === "origreport") {
         $submission = new turnitintooltwo_submission($submissionid, 'turnitin');
         turnitintooltwo_add_to_log($turnitintooltwoassignment->turnitintooltwo->course, "view submission", 'view.php?id=' . $cm->id, get_string('viewsubmissiondesc', 'turnitintooltwo') . " '{$submission->submission_title}'", $cm->id, $submission->userid);
     }
     break;
 case "submissions":
     // Output a link for the student to accept the turnitin licence agreement.
     $noscriptula = "";
     $ula = "";
     if (!$istutor) {
         $eulaaccepted = false;
         $user = new turnitintooltwo_user($USER->id, $userrole);
         $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;
 /**
  * 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;
 }
Ejemplo n.º 3
0
$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;
                $moduleconfigvalue->value = time();
Ejemplo n.º 4
0
     $eula_user->userid = $eula_user_id;
     $eula_user->user_agreement_accepted = 1;
     // Update the user using the above object
     $DB->update_record('turnitintooltwo_users', $eula_user, $bulk = false);
     break;
 case "downloadoriginal":
 case "origreport":
 case "grademark":
     $assignmentid = required_param('assignment', PARAM_INT);
     $turnitintooltwoassignment = new turnitintooltwo_assignment($assignmentid);
     $cm = get_coursemodule_from_instance("turnitintooltwo", $assignmentid);
     if (has_capability('mod/turnitintooltwo:read', context_module::instance($cm->id))) {
         $submissionid = required_param('submission', PARAM_INT);
         $userrole = has_capability('mod/turnitintooltwo:grade', context_module::instance($cm->id)) ? 'Instructor' : 'Learner';
         $user = new turnitintooltwo_user($USER->id, $userrole);
         echo turnitintooltwo_view::output_dv_launch_form($action, $submissionid, $user->tii_user_id, $userrole);
     }
     break;
 case "orig_zip":
 case "xls_inbox":
 case "origchecked_zip":
 case "gmpdf_zip":
     $assignmentid = required_param('assignment', PARAM_INT);
     $turnitintooltwoassignment = new turnitintooltwo_assignment($assignmentid);
     $cm = get_coursemodule_from_instance("turnitintooltwo", $assignmentid);
     if (has_capability('mod/turnitintooltwo:grade', context_module::instance($cm->id))) {
         $partid = optional_param('part', 0, PARAM_INT);
         $user = new turnitintooltwo_user($USER->id, 'Instructor');
         $user->edit_tii_user();
         if ($action == "orig_zip") {
             $cm = get_coursemodule_from_instance("turnitintooltwo", $assignmentid);
Ejemplo n.º 5
0
        $output .= turnitintooltwo_init_browser_assignment_table($tiicourseid);
        break;
    case "rubricmanager":
        $PAGE->set_pagelayout('embedded');
        $tiicourseid = optional_param('tiicourseid', 0, PARAM_INT);
        echo html_writer::tag("div", $turnitintooltwoview->output_lti_form_launch('rubric_manager', 'Instructor', 0, $tiicourseid), array("class" => "launch_form"));
        break;
    case "quickmarkmanager":
        $PAGE->set_pagelayout('embedded');
        echo html_writer::tag("div", $turnitintooltwoview->output_lti_form_launch('quickmark_manager', 'Instructor'), array("class" => "launch_form"));
        break;
    case "useragreement":
        $PAGE->set_pagelayout('embedded');
        $user = new turnitintooltwo_user($USER->id, "Learner");
        $output .= $OUTPUT->box_start('tii_eula_launch');
        $output .= turnitintooltwo_view::output_dv_launch_form("useragreement", 0, $user->tii_user_id, "Learner", '');
        $output .= $OUTPUT->box_end(true);
        echo $output;
        echo html_writer::script("<!--\n                                    window.document.forms[0].submit();\n                                    //-->");
        break;
}
$nav = $cmd == "courses" || $cmd == "multiple_class_recreation" || $cmd == "class_recreation" ? array(array('title' => get_string('restorationheader', 'turnitintooltwo'), 'url' => '')) : array();
// Build page.
$coursemodforheader = $id != 0 ? $cm : null;
$courseforheader = $id != 0 ? $course : null;
echo $turnitintooltwoview->output_header($coursemodforheader, $courseforheader, $url, $title, $title, $nav, "", "", true, '', '');
echo html_writer::start_tag('div', array('class' => 'mod_turnitintooltwo'));
echo html_writer::tag("div", $viewcontext, array("id" => "view_context"));
if ($cmd == 'courses') {
    echo $OUTPUT->heading(get_string('pluginname', 'turnitintooltwo'), 2, 'main');
    // Show a warning if javascript is not enabled while a tutor is logged in.
Ejemplo n.º 6
0
 /**
  * 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;
 }