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();
 }
Exemple #2
0
/**
 *
 * @param object $turnitintool The turnitintool object for this activity
 */
function turnitintool_update_choice_cookie($turnitintool)
{
    global $CFG;
    // If a submission is deleted or submitted we need to update the cookie and correct the submission count
    $userCookieArray = array();
    $newUserCookie = '';
    $newCountCookie = '';
    if (isset($_COOKIE["turnitintool_choice_user"])) {
        $userCookie = $_COOKIE["turnitintool_choice_user"];
        $userCookieArray = explode("_", $userCookie);
    }
    if (isset($_COOKIE["turnitintool_choice_count"])) {
        $countCookie = $_COOKIE["turnitintool_choice_count"];
        $countCookieArray = explode("_", $countCookie);
    }
    for ($i = 0; $i < count($userCookieArray); $i++) {
        if (substr_count($userCookieArray[$i], 'nm-') > 0 and !$turnitintool->anon) {
            $nmuserid = str_replace('nm-', '', $userCookieArray[$i]);
            $numsubmissions = turnitintool_count_records('turnitintool_submissions', 'submission_nmuserid', $nmuserid, 'turnitintoolid', $turnitintool->id);
        } else {
            if (!$turnitintool->anon) {
                $numsubmissions = turnitintool_count_records('turnitintool_submissions', 'userid', $userCookieArray[$i], 'turnitintoolid', $turnitintool->id);
            } else {
                $nmsubmissions = turnitintool_count_records('turnitintool_submissions', 'submission_part', $userCookieArray[$i], 'turnitintoolid', $turnitintool->id, 'userid', 0);
                $cm = get_coursemodule_from_instance('turnitintool', $turnitintool->id, $turnitintool->course);
                $context = turnitintool_get_context('MODULE', $cm->id);
                $studentusers = get_users_by_capability($context, 'mod/turnitintool:submit', 'u.id', '', '', '', '', '', false);
                $numusers = !is_array($studentusers) ? 0 : count($studentusers);
                $numsubmissions = $nmsubmissions + $numusers;
            }
        }
        if ($numsubmissions != 0) {
            $newUserCookie .= $userCookieArray[$i];
            $newCountCookie .= $numsubmissions;
        }
        if ($i != count($userCookieArray) - 1) {
            $newUserCookie .= '_';
            $newCountCookie .= '_';
        }
    }
    setcookie("turnitintool_choice_user", $newUserCookie, 0, "/");
    setcookie("turnitintool_choice_count", $newCountCookie, 0, "/");
}
}
$table->class = '';
$table->width = '100%';
$i = 1;
foreach ($turnitintools as $turnitintool) {
    $dimmed = '';
    if (!$turnitintool->visible) {
        //Show dimmed if the mod is hidden
        $dimmed = ' class="dimmed"';
    }
    $link = '<a' . $dimmed . ' href="view.php?id=' . $turnitintool->coursemodule . '">' . $turnitintool->name . '</a>';
    $part = turnitintool_get_record_select('turnitintool_parts', 'turnitintoolid=' . $turnitintool->id . ' AND deleted=0', NULL, 'MIN(dtstart) AS dtstart');
    $dtstart = '<span' . $dimmed . '>' . userdate($part->dtstart, get_string('strftimedatetimeshort', 'langconfig')) . '</span>';
    $partcount = turnitintool_count_records_select('turnitintool_parts', 'turnitintoolid=' . $turnitintool->id . ' AND deleted=0');
    if (has_capability('mod/turnitintool:grade', turnitintool_get_context('MODULE', $turnitintool->coursemodule))) {
        $submissioncount = '<a' . $dimmed . ' href="view.php?id=' . $turnitintool->coursemodule . '&do=allsubmissions">' . turnitintool_count_records('turnitintool_submissions', 'turnitintoolid', $turnitintool->id) . '</a>';
    } else {
        $submissioncount = '<a' . $dimmed . ' href="view.php?id=' . $turnitintool->coursemodule . '&do=submissions">' . turnitintool_count_records_select('turnitintool_submissions', 'turnitintoolid=' . $turnitintool->id . ' AND userid=' . $USER->id) . '</a>';
    }
    if ($course->format == "weeks" or $course->format == "topics") {
        unset($cells);
        $cells[0] = new stdClass();
        $cells[0]->data = $turnitintool->section;
        $cells[0]->class = "cell c0 cellcenter cellthin";
        $cells[1] = new stdClass();
        $cells[1]->data = $link;
        $cells[1]->class = "cell c1 cellleft";
        $cells[2] = new stdClass();
        $cells[2]->data = $dtstart;
        $cells[2]->class = "cell c2 cellcenter cellthin";
        $cells[3] = new stdClass();