function definition()
 {
     global $CFG, $DB, $COURSE, $USER;
     $mform =& $this->_form;
     $mform->addElement('header', 'general', get_string('general', 'form'));
     $mform->addElement('text', 'name', get_string('turnitintoolname', 'turnitintool'), array('size' => '64'));
     if (!empty($CFG->formatstringstriptags)) {
         $mform->setType('name', PARAM_TEXT);
     } else {
         $mform->setType('name', PARAM_CLEAN);
     }
     $mform->addRule('name', null, 'required', null, 'client');
     $input->length = 40;
     $input->field = get_string('turnitintoolname', 'turnitintool');
     $mform->addRule('name', get_string('maxlength', 'turnitintool', $input), 'maxlength', 40, 'client');
     $mform->addRule('name', get_string('maxlength', 'turnitintool', $input), 'maxlength', 40, 'server');
     if (is_callable(array($this, 'add_intro_editor'))) {
         $this->add_intro_editor(true, get_string('turnitintoolintro', 'turnitintool'));
     } else {
         $mform->addElement('htmleditor', 'intro', get_string('turnitintoolintro', 'turnitintool'));
         $mform->setType('intro', PARAM_RAW);
         $mform->addRule('intro', get_string('required'), 'required', null, 'client');
         $input->length = 1000;
         $input->field = get_string('turnitintoolintro', 'turnitintool');
         $mform->addRule('intro', get_string('maxlength', 'turnitintool', $input), 'maxlength', 1000, 'client');
         $mform->addRule('intro', get_string('maxlength', 'turnitintool', $input), 'maxlength', 1000, 'server');
     }
     $typeoptions = turnitintool_filetype_array();
     $mform->addElement('select', 'type', get_string('type', 'turnitintool'), $typeoptions);
     turnitintool_modform_help_icon('type', 'types', 'turnitintool', $mform);
     $mform->addRule('type', get_string('required'), 'required', null, 'client');
     $mform->setDefault('type', $CFG->turnitin_default_type);
     $options = array();
     for ($i = 1; $i <= 5; $i++) {
         $options[$i] = $i;
     }
     $mform->addElement('select', 'numparts', get_string('numberofparts', 'turnitintool'), $options);
     turnitintool_modform_help_icon('numparts', 'numberofparts', 'turnitintool', $mform);
     $mform->setDefault('numparts', $CFG->turnitin_default_numparts);
     $suboptions = array(0 => get_string('namedparts', 'turnitintool'), 1 => get_string('portfolio', 'turnitintool'));
     $mform->addElement('hidden', 'portfolio', 0);
     $maxtii = 20971520;
     if ($CFG->maxbytes > $maxtii) {
         $maxbytes1 = $maxtii;
     } else {
         $maxbytes1 = $CFG->maxbytes;
     }
     if ($COURSE->maxbytes > $maxtii) {
         $maxbytes2 = $maxtii;
     } else {
         $maxbytes2 = $COURSE->maxbytes;
     }
     $options = get_max_upload_sizes($maxbytes1, $maxbytes2);
     $mform->addElement('select', 'maxfilesize', get_string('maxfilesize', 'turnitintool'), $options);
     turnitintool_modform_help_icon('maxfilesize', 'maxfilesize', 'turnitintool', $mform);
     unset($options);
     for ($i = 0; $i <= 100; $i++) {
         $options[$i] = $i;
     }
     $mform->addElement('modgrade', 'grade', get_string('overallgrade', 'turnitintool'));
     turnitintool_modform_help_icon('grade', 'overallgrade', 'turnitintool', $mform);
     $mform->setDefault('grade', $CFG->turnitin_default_grade);
     $ynoptions = array(0 => get_string('no'), 1 => get_string('yes'));
     $mform->addElement('hidden', 'defaultdtstart', time());
     $mform->addElement('hidden', 'defaultdtdue', strtotime('+7 days'));
     $mform->addElement('hidden', 'defaultdtpost', strtotime('+7 days'));
     if (isset($this->_cm->id)) {
         $turnitintool = turnitintool_get_record("turnitintool", "id", $this->_cm->instance);
         $updating = true;
         $numsubs = turnitintool_count_records('turnitintool_submissions', 'turnitintoolid', $turnitintool->id);
     } else {
         $updating = false;
         $numsubs = 0;
     }
     if ($updating and $CFG->turnitin_useanon and isset($turnitintool->anon) and $numsubs > 0) {
         $staticout = (isset($turnitintool->anon) and $turnitintool->anon) ? get_string('yes', 'turnitintool') : get_string('no', 'turnitintool');
         $mform->addElement('static', 'static', get_string('turnitinanon', 'turnitintool'), $staticout);
         $mform->addElement('hidden', 'anon', $turnitintool->anon);
         turnitintool_modform_help_icon('anon', 'turnitinanon', 'turnitintool', $mform);
     } else {
         if ($CFG->turnitin_useanon) {
             $mform->addElement('select', 'anon', get_string('turnitinanon', 'turnitintool'), $ynoptions);
             turnitintool_modform_help_icon('anon', 'turnitinanon', 'turnitintool', $mform);
             $mform->setDefault('anon', $CFG->turnitin_default_anon);
         } else {
             $mform->addElement('hidden', 'anon', 0);
         }
     }
     $mform->addElement('select', 'studentreports', get_string('studentreports', 'turnitintool'), $ynoptions);
     turnitintool_modform_help_icon('studentreports', 'studentreports', 'turnitintool', $mform);
     $mform->setDefault('studentreports', $CFG->turnitin_default_studentreports);
     $mform->addElement('header', 'general', get_string('advancedoptions', 'turnitintool'));
     $mform->addElement('select', 'allowlate', get_string('allowlate', 'turnitintool'), $ynoptions);
     $mform->setDefault('allowlate', $CFG->turnitin_default_allowlate);
     $genoptions = array(0 => get_string('genimmediately1', 'turnitintool'), 1 => get_string('genimmediately2', 'turnitintool'), 2 => get_string('genduedate', 'turnitintool'));
     $mform->addElement('select', 'reportgenspeed', get_string('reportgenspeed', 'turnitintool'), $genoptions);
     $mform->setDefault('reportgenspeed', $CFG->turnitin_default_reportgenspeed);
     $suboptions = array(0 => get_string('norepository', 'turnitintool'), 1 => get_string('standardrepository', 'turnitintool'));
     if ($CFG->turnitin_userepository == "1") {
         $suboptions[2] = get_string('institutionalrepository', 'turnitintool');
     }
     $mform->addElement('select', 'submitpapersto', get_string('submitpapersto', 'turnitintool'), $suboptions);
     $mform->setDefault('submitpapersto', $CFG->turnitin_default_submitpapersto);
     $mform->addElement('select', 'spapercheck', get_string('spapercheck', 'turnitintool'), $ynoptions);
     $mform->setDefault('spapercheck', $CFG->turnitin_default_spapercheck);
     $mform->addElement('select', 'internetcheck', get_string('internetcheck', 'turnitintool'), $ynoptions);
     $mform->setDefault('internetcheck', $CFG->turnitin_default_internetcheck);
     $mform->addElement('select', 'journalcheck', get_string('journalcheck', 'turnitintool'), $ynoptions);
     $mform->setDefault('journalcheck', $CFG->turnitin_default_journalcheck);
     if ($numsubs > 0) {
         $staticout = (isset($turnitintool->excludebiblio) and $turnitintool->excludebiblio) ? get_string('yes', 'turnitintool') : get_string('no', 'turnitintool');
         $mform->addElement('static', 'static', get_string('excludebiblio', 'turnitintool'), $staticout);
         $mform->addElement('hidden', 'excludebiblio', $turnitintool->excludebiblio);
         $staticout = (isset($turnitintool->excludequoted) and $turnitintool->excludequoted) ? get_string('yes', 'turnitintool') : get_string('no', 'turnitintool');
         $mform->addElement('static', 'static', get_string('excludequoted', 'turnitintool'), $staticout);
         $mform->addElement('hidden', 'excludequoted', $turnitintool->excludequoted);
         $staticout = (isset($turnitintool->excludetype) and $turnitintool->excludetype == 1) ? get_string('excludewords', 'turnitintool') : get_string('excludepercent', 'turnitintool');
         $staticval = (isset($turnitintool->excludevalue) and empty($turnitintool->excludevalue)) ? get_string('nolimit', 'turnitintool') : $turnitintool->excludevalue . ' ' . $staticout;
         $mform->addElement('static', 'static', get_string('excludevalue', 'turnitintool'), $staticval);
         $mform->addElement('hidden', 'excludevalue', $turnitintool->excludevalue);
         $mform->addElement('hidden', 'excludetype', $turnitintool->excludetype);
     } else {
         $mform->addElement('select', 'excludebiblio', get_string('excludebiblio', 'turnitintool'), $ynoptions);
         $mform->setDefault('excludebiblio', $CFG->turnitin_default_excludebiblio);
         $mform->addElement('select', 'excludequoted', get_string('excludequoted', 'turnitintool'), $ynoptions);
         $mform->setDefault('excludequoted', $CFG->turnitin_default_excludequoted);
         $mform->addElement('text', 'excludevalue', get_string('excludevalue', 'turnitintool'), array('size' => '12'));
         $input->length = 9;
         $input->field = get_string('excludevalue', 'turnitintool');
         $mform->addRule('excludevalue', get_string('maxlength', 'turnitintool', $input), 'maxlength', 9, 'client');
         $mform->addRule('excludevalue', get_string('maxlength', 'turnitintool', $input), 'maxlength', 9, 'server');
         $mform->addRule('excludevalue', null, 'numeric', null, 'client');
         $mform->addRule('excludevalue', null, 'numeric', null, 'server');
         $typeoptions = array(1 => get_string('excludewords', 'turnitintool'), 2 => get_string('excludepercent', 'turnitintool'));
         $mform->addElement('select', 'excludetype', '', $typeoptions);
         $mform->setDefault('excludetype', 1);
     }
     if (isset($CFG->turnitin_useerater) && $CFG->turnitin_useerater == '1') {
         $handbook_options = array(1 => get_string('erater_handbook_advanced', 'turnitintool'), 2 => get_string('erater_handbook_highschool', 'turnitintool'), 3 => get_string('erater_handbook_middleschool', 'turnitintool'), 4 => get_string('erater_handbook_elementary', 'turnitintool'), 5 => get_string('erater_handbook_learners', 'turnitintool'));
         $dictionary_options = array('en_US' => get_string('erater_dictionary_enus', 'turnitintool'), 'en_GB' => get_string('erater_dictionary_engb', 'turnitintool'), 'en' => get_string('erater_dictionary_en', 'turnitintool'));
         $mform->addElement('select', 'erater', get_string('erater', 'turnitintool'), $ynoptions);
         $mform->setDefault('erater', 0);
         $mform->addElement('select', 'erater_handbook', get_string('erater_handbook', 'turnitintool'), $handbook_options);
         $mform->setDefault('erater_handbook', 2);
         $mform->disabledIf('erater_handbook', 'erater', 'eq', 0);
         $mform->addElement('select', 'erater_dictionary', get_string('erater_dictionary', 'turnitintool'), $dictionary_options);
         $mform->setDefault('erater_dictionary', 'en_US');
         $mform->disabledIf('erater_dictionary', 'erater', 'eq', 0);
         $mform->addElement('checkbox', 'erater_spelling', get_string('erater_categories', 'turnitintool'), " " . get_string('erater_spelling', 'turnitintool'));
         $mform->setDefault('erater_spelling', false);
         $mform->disabledIf('erater_spelling', 'erater', 'eq', 0);
         $mform->addElement('checkbox', 'erater_grammar', '', " " . get_string('erater_grammar', 'turnitintool'));
         $mform->setDefault('erater_grammar', false);
         $mform->disabledIf('erater_grammar', 'erater', 'eq', 0);
         $mform->addElement('checkbox', 'erater_usage', '', " " . get_string('erater_usage', 'turnitintool'));
         $mform->setDefault('erater_usage', false);
         $mform->disabledIf('erater_usage', 'erater', 'eq', 0);
         $mform->addElement('checkbox', 'erater_mechanics', '', " " . get_string('erater_mechanics', 'turnitintool'));
         $mform->setDefault('erater_mechanics', false);
         $mform->disabledIf('erater_mechanics', 'erater', 'eq', 0);
         $mform->addElement('checkbox', 'erater_style', '', " " . get_string('erater_style', 'turnitintool'));
         $mform->setDefault('erater_style', false);
         $mform->disabledIf('erater_style', 'erater', 'eq', 0);
     }
     $mform->addElement('hidden', 'ownerid', NULL);
     $features = new stdClass();
     $features->groups = true;
     $features->groupings = true;
     $features->groupmembersonly = true;
     $this->standard_coursemodule_elements($features);
     $this->add_action_buttons();
 }
예제 #2
0
/**
 * Generates the HTML for the submission form in Moodle versions below 2.9
 *
 * @global object
 * @global object
 * @global object
 * @param object $cm The moodle course module object for this instance
 * @param object $turnitintool The turnitintool object for this activity
 * @param object $optional_params The optional parameter object for this instance
 * @param object $cansubmit The list of students that can be submitted for
 * @return string returns the HTML of the form
 */
function turnitintool_view_submission_form_pre_29($cm, $turnitintool, $optional_params, $cansubmit)
{
    global $CFG, $USER, $COURSE;
    $output = turnitintool_box_start('generalbox boxwidthwide boxaligncenter eightyfive', 'submitbox', true);
    if (has_capability('mod/turnitintool:grade', turnitintool_get_context('MODULE', $cm->id))) {
        $submissions = turnitintool_get_records_select('turnitintool_submissions', 'turnitintoolid=' . $turnitintool->id);
    } else {
        $submissions = turnitintool_get_records_select('turnitintool_submissions', 'userid=' . $USER->id . ' AND turnitintoolid=' . $turnitintool->id);
    }
    $output .= '<script language="javascript" type="text/javascript">' . PHP_EOL;
    $output .= 'var stringsArray = new Array("' . get_string('addsubmission', 'turnitintool') . '","' . get_string('resubmit', 'turnitintool') . '","' . get_string('resubmission', 'turnitintool') . '","' . get_string('resubmissionnotenabled', 'turnitintool') . '","' . get_string('anonenabled', 'turnitintool') . '");' . PHP_EOL;
    $output .= 'var submissionArray = new Array();' . PHP_EOL;
    if ($turnitintool->allowlate == 1) {
        $parts = turnitintool_get_records_select('turnitintool_parts', "turnitintoolid='" . $turnitintool->id . "' AND deleted=0 AND dtstart < '" . time() . "'", null, 'dtstart,dtdue,dtpost,id');
    } else {
        $parts = turnitintool_get_records_select('turnitintool_parts', "turnitintoolid='" . $turnitintool->id . "' AND deleted=0 AND dtstart < '" . time() . "' AND dtdue > '" . time() . "'", NULL, 'dtstart,dtdue,dtpost,id');
    }
    if (is_array($submissions)) {
        $i = 0;
        foreach ($submissions as $submission) {
            $lockresubmission = 0;
            if (isset($parts[$submission->submission_part]) and $parts[$submission->submission_part]->dtdue < time()) {
                $lockresubmission = 1;
            }
            $output .= 'submissionArray[' . $i . '] = new Array("' . $submission->userid . '","' . $submission->submission_part . '","' . $submission->submission_title . '","' . $submission->submission_unanon . '",' . $lockresubmission . ');' . PHP_EOL;
            $submittedparts[] = $submission->submission_part;
            $i++;
        }
    }
    $output .= '</script>' . PHP_EOL;
    $table = new stdClass();
    $table->width = '100%';
    $table->id = 'uploadtable';
    $table->class = 'uploadtable';
    unset($cells);
    $cells = array();
    $cells[0] = new stdClass();
    $cells[0]->class = 'cell c0';
    $cells[0]->data = get_string('submissiontype', 'turnitintool') . turnitintool_help_icon('submissiontype', get_string('submissiontype', 'turnitintool'), 'turnitintool', true, false, '', true);
    if ($turnitintool->type == 0) {
        if ($optional_params->type == 1) {
            $selected = array('', ' selected', '', '');
        } else {
            if ($optional_params->type == 2) {
                $selected = array('', '', ' selected', '');
            } else {
                if ($optional_params->type == 3) {
                    $selected = array('', '', '', ' selected');
                } else {
                    $selected = array(' selected', '', '', '');
                    $optional_params->type = 0;
                }
            }
        }
        $cells[1] = new stdClass();
        $cells[1]->class = 'cell c1';
        $cells[1]->data = '<select onchange="turnitintool_jumptopage(this.value)">';
        $cells[1]->data .= '<option label="Select Submission Type" value="' . $CFG->wwwroot . '/mod/turnitintool/view.php' . '?id=' . $cm->id . '&do=submissions"' . $selected[0] . '>Select Submission Type</option>';
        $cells[1]->data .= '<option label="-----------------" value="#">-----------------</option>';
        $typearray = turnitintool_filetype_array(false);
        foreach ($typearray as $typekey => $typevalue) {
            $cells[1]->data .= '
            <option label="' . $typevalue . '" value="' . $CFG->wwwroot . '/mod/turnitintool/view.php' . '?id=' . $cm->id . '&do=submissions&type=' . $typekey . '"' . $selected[$typekey] . '>' . $typevalue . '</option>';
        }
        $cells[1]->data .= '
        </select>
        <input id="submissiontype" name="submissiontype" type="hidden" value="' . $optional_params->type . '" />';
    } else {
        if ($turnitintool->type == 1) {
            $optional_params->type = 1;
            $cells[1] = new stdClass();
            $cells[1]->data = '<input id="submissiontype" name="submissiontype" type="hidden" value="1" />' . get_string('fileupload', 'turnitintool');
        } else {
            if ($turnitintool->type == 2) {
                $optional_params->type = 2;
                $cells[1] = new stdClass();
                $cells[1]->data = '<input id="submissiontype" name="submissiontype" type="hidden" value="2" />' . get_string('textsubmission', 'turnitintool');
            }
        }
    }
    $output .= '<b>' . get_string('submit', 'turnitintool') . '</b><br />
<form enctype="multipart/form-data" action="' . $CFG->wwwroot . '/mod/turnitintool/view.php' . '?id=' . $cm->id . '&do=submissions&type=' . $optional_params->type . '" method="POST" name="submissionform">';
    $table->rows[0] = new stdClass();
    $table->rows[0]->class = 'r0';
    $table->rows[0]->cells = $cells;
    $context = turnitintool_get_context('MODULE', $cm->id);
    if ($optional_params->type != 0) {
        $submissiontitle = optional_param('submissiontitle', '', PARAM_CLEAN);
        $disableform = false;
        if (has_capability('mod/turnitintool:grade', turnitintool_get_context('MODULE', $cm->id))) {
            $utype = "tutor";
            // If tutor submitting on behalf of student
            unset($cells);
            $cells[0] = new stdClass();
            $cells[0]->class = 'cell c0';
            $cells[0]->data = get_string('studentsname', 'turnitintool') . turnitintool_help_icon('studentsname', get_string('studentsname', 'turnitintool'), 'turnitintool', true, false, '', true);
            if (count($cansubmit) > 0) {
                $cells[1] = new stdClass();
                $cells[1]->data = '<select name="userid" id="userid" onchange="updateSubForm(submissionArray,stringsArray,this.form,' . $turnitintool->reportgenspeed . ')">';
                $module_group = turnitintool_module_group($cm);
                $studentusers = array_keys(get_users_by_capability($context, 'mod/turnitintool:submit', 'u.id', '', '', '', $module_group, '', false));
                foreach ($cansubmit as $courseuser) {
                    // Filter Guest users, admins and grader users
                    if (in_array($courseuser->id, $studentusers)) {
                        if (!is_null($optional_params->userid) and $optional_params->userid == $courseuser->id) {
                            $selected = ' selected';
                        } else {
                            $selected = '';
                        }
                        $cells[1]->data .= '<option label="' . $courseuser->firstname . ' ' . $courseuser->lastname . '" value="' . $courseuser->id . '"' . $selected . '>' . $courseuser->lastname . ', ' . $courseuser->firstname . '</option>';
                    }
                }
                $cells[1]->data .= '</select>';
                if ($cells[1]->data == '<select id="userid" name="userid">' . '</select>') {
                    $cells[1]->data = '<i>' . get_string('allsubmissionsmade', 'turnitintool') . '</i>';
                    $disableform = true;
                }
            } else {
                $cells[1] = new stdClass();
                $cells[1]->data = '<i>' . get_string('noenrolledstudents', 'turnitintool') . '</i>';
            }
            $table->rows[1] = new stdClass();
            $table->rows[1]->class = 'r1';
            $table->rows[1]->cells = $cells;
        } else {
            $utype = "student";
            // If student submitting
            unset($cells);
            $cells[0] = new stdClass();
            $cells[0]->class = 'cell c0';
            $cells[0]->data = '';
            $cells[1] = new stdClass();
            $cells[1]->data = '<input id="userid" name="userid" type="hidden" value="' . $USER->id . '" />';
            $table->rows[1] = new stdClass();
            $table->rows[1]->class = 'r1';
            $table->rows[1]->cells = $cells;
        }
        if (!$disableform) {
            unset($cells);
            $cells[0] = new stdClass();
            $cells[0]->class = 'cell c0';
            $cells[0]->data = get_string('submissiontitle', 'turnitintool') . turnitintool_help_icon('submissiontitle', get_string('submissiontitle', 'turnitintool'), 'turnitintool', true, false, '', true);
            $cells[1] = new stdClass();
            $cells[1]->data = '<input type="text" name="submissiontitle" class="formwide" maxlength="200" value="' . $submissiontitle . '" />&nbsp;<span id="submissionnotice"></span>';
            $table->rows[2] = new stdClass();
            $table->rows[2]->class = 'r0';
            $table->rows[2]->cells = $cells;
            if (count($parts) > 1) {
                unset($cells);
                $cells[0] = new stdClass();
                $cells[0]->class = 'cell c0';
                $cells[0]->data = get_string('submissionpart', 'turnitintool') . turnitintool_help_icon('submissionpart', get_string('submissionpart', 'turnitintool'), 'turnitintool', true, false, '', true);
                $cells[1] = new stdClass();
                $cells[1]->data = '<select name="submissionpart" class="formwide" onchange="updateSubForm(submissionArray,stringsArray,this.form,' . $turnitintool->reportgenspeed . ',\'' . $utype . '\')">';
                $i = 0;
                foreach ($parts as $part) {
                    // Do parts that have not yet been submitted to
                    $cells[1]->data .= '<option label="' . $part->partname . '" value="' . $part->id . '">' . $part->partname . '</option>';
                    $i++;
                }
                $cells[1]->data .= '</select>';
                $table->rows[3] = new stdClass();
                $table->rows[3]->class = 'r1';
                $table->rows[3]->cells = $cells;
            } else {
                unset($cells);
                $cells[0] = new stdClass();
                $cells[0]->class = 'cell c0';
                $cells[0]->data = get_string('submissionpart', 'turnitintool') . turnitintool_help_icon('submissionpart', get_string('submissionpart', 'turnitintool'), 'turnitintool', true, false, '', true);
                foreach ($parts as $part) {
                    // Do parts that have not yet been submitted to
                    $cells[1] = new stdClass();
                    $cells[1]->data = $part->partname . '<input type="hidden" name="submissionpart" value="' . $part->id . '" />';
                    break;
                }
                $table->rows[3] = new stdClass();
                $table->rows[3]->class = 'r1';
                $table->rows[3]->cells = $cells;
            }
            if ($optional_params->type == 1) {
                unset($cells);
                $cells[0] = new stdClass();
                $cells[0]->class = 'cell c0';
                $cells[0]->data = get_string('filetosubmit', 'turnitintool') . turnitintool_help_icon('filetosubmit', get_string('filetosubmit', 'turnitintool'), 'turnitintool', true, false, '', true);
                $cells[1] = new stdClass();
                $cells[1]->data = '<input type="hidden" name="MAX_FILE_SIZE" value="' . $turnitintool->maxfilesize . '" />';
                $cells[1]->data .= '<input type="file" name="submissionfile" size="55%" />';
                $table->rows[4] = new stdClass();
                $table->rows[4]->class = 'r0';
                $table->rows[4]->cells = $cells;
            }
            if ($optional_params->type == 2) {
                unset($cells);
                $submissiontext = optional_param('submissiontext', '', PARAM_CLEAN);
                $cells[0] = new stdClass();
                $cells[0]->class = 'cell c0';
                $cells[0]->data = get_string('texttosubmit', 'turnitintool') . turnitintool_help_icon('texttosubmit', get_string('texttosubmit', 'turnitintool'), 'turnitintool', true, false, '', true);
                $cells[1] = new stdClass();
                $cells[1]->data = '<textarea name="submissiontext" class="submissionText">' . $submissiontext . '</textarea>';
                $table->rows[5] = new stdClass();
                $table->rows[5]->class = 'r1';
                $table->rows[5]->cells = $cells;
            }
            if ($optional_params->type == 3) {
                unset($cells);
                $submissionurl = optional_param('submissionurl', '', PARAM_CLEAN);
                $cells[0] = new stdClass();
                $cells[0]->class = 'cell c0';
                $cells[0]->data = get_string('urltosubmit', 'turnitintool') . turnitintool_help_icon('urltosubmit', get_string('urltosubmit', 'turnitintool'), 'turnitintool', true, false, '', true);
                $cells[1] = new stdClass();
                $cells[1]->data = '<input type="text" name="submissionurl" class="formwide" value="' . $submissionurl . '" />';
                $table->rows[6] = new stdClass();
                $table->rows[6]->class = 'r0';
                $table->rows[6]->cells = $cells;
            }
            $checked = '';
            if (!is_null($optional_params->agreement)) {
                $checked = ' checked';
            }
            if (has_capability('mod/turnitintool:grade', $context) or empty($CFG->turnitin_agreement)) {
                unset($cells);
                $cells[0] = new stdClass();
                $cells[0]->class = 'cell c0';
                $cells[0]->data = '';
                $cells[1] = new stdClass();
                $cells[1]->data = '<input type="hidden" name="agreement" value="1" />';
                $table->rows[7] = new stdClass();
                $table->rows[7]->class = 'r1';
                $table->rows[7]->cells = $cells;
            } else {
                unset($cells);
                $cells[0] = new stdClass();
                $cells[0]->class = 'cell c0';
                $cells[0]->data = '<input type="checkbox" name="agreement" value="1"' . $checked . ' />';
                $cells[1] = new stdClass();
                $cells[1]->data = $CFG->turnitin_agreement;
                $table->rows[7] = new stdClass();
                $table->rows[7]->class = 'r1';
                $table->rows[7]->cells = $cells;
            }
            unset($cells);
            $cells[0] = new stdClass();
            $cells[0]->class = 'cell c0';
            $cells[0]->data = '&nbsp;';
            $cells[1] = new stdClass();
            $cells[1]->data = '<input name="submitbutton" type="submit" value="' . get_string('addsubmission', 'turnitintool') . '" />';
            $table->rows[8] = new stdClass();
            $table->rows[8]->class = 'r0';
            $table->rows[8]->cells = $cells;
        }
    }
    $output .= turnitintool_print_table($table, true);
    if ($optional_params->type > 0) {
        $output .= '
                <script language="javascript" type="text/javascript">updateSubForm(submissionArray,stringsArray,document.submissionform,' . $turnitintool->reportgenspeed . ',"' . $utype . '");</script>
        </form>
                ';
    }
    $output .= turnitintool_box_end(true) . '<br />';
    return $output;
}
 if (isset($CFG->turnitin_enablepseudo) and $CFG->turnitin_enablepseudo) {
     $CFG->turnitin_pseudofirstname = isset($CFG->turnitin_pseudofirstname) ? $CFG->turnitin_pseudofirstname : get_string('defaultcoursestudent');
     $settings->add(new admin_setting_configtext('turnitin_pseudofirstname', get_string('pseudofirstname', 'turnitintool'), get_string('pseudofirstname_desc', 'turnitintool'), get_string('defaultcoursestudent')));
     $lnoptions = array(0 => get_string('user'));
     $user_profiles = turnitintool_get_records('user_info_field');
     foreach ($user_profiles as $profile) {
         $lnoptions[$profile->id] = get_string('profilefield', 'admin') . ': ' . $profile->name;
     }
     $settings->add(new admin_setting_configselect('turnitin_pseudolastname', get_string('pseudolastname', 'turnitintool'), get_string('pseudolastname_desc', 'turnitintool'), 0, $lnoptions));
     $settings->add(new admin_setting_configselect('turnitin_lastnamegen', get_string('psuedolastnamegen', 'turnitintool'), get_string('psuedolastnamegen_desc', 'turnitintool'), 0, $options));
     $settings->add(new admin_setting_configtext('turnitin_pseudosalt', get_string('pseudoemailsalt', 'turnitintool'), get_string('pseudoemailsalt_desc', 'turnitintool'), ''));
     $settings->add(new admin_setting_configtext('turnitin_pseudoemaildomain', get_string('pseudoemaildomain', 'turnitintool'), get_string('pseudoemaildomain_desc', 'turnitintool'), ''));
 }
 // Following are default values for new instance
 $settings->add(new admin_setting_heading('turnitin_defaults', get_string('defaults', 'turnitintool'), get_string('defaults_desc', 'turnitintool')));
 $settings->add(new admin_setting_configselect('turnitin_default_type', get_string('type', 'turnitintool'), '', 0, turnitintool_filetype_array()));
 $settings->add(new admin_setting_configselect('turnitin_default_numparts', get_string('numberofparts', 'turnitintool'), '', 1, array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5)));
 $options = array();
 $scales = get_scales_menu();
 foreach ($scales as $value => $scale) {
     $options[-$value] = $scale;
 }
 for ($i = 100; $i >= 1; $i--) {
     $options[$i] = $i;
 }
 $settings->add(new admin_setting_configselect('turnitin_default_grade', get_string('overallgrade', 'turnitintool'), '', 100, $options));
 unset($options);
 $ynoptions = array(0 => get_string('no', 'turnitintool'), 1 => get_string('yes', 'turnitintool'));
 if (!empty($CFG->turnitin_useanon)) {
     $settings->add(new admin_setting_configselect('turnitin_default_anon', get_string('anon', 'turnitintool'), '', 0, $ynoptions));
 }