/mod_form.php

https://github.com/eviweb/moodle-mod_turnitintool · PHP · 276 lines · 217 code · 53 blank · 6 comment · 26 complexity · 2895216f8306d49285125b2277dcbc54 MD5 · raw file

  1. <?php
  2. /**
  3. * @package turnitintool
  4. * @copyright 2012 Turnitin
  5. *
  6. */
  7. require_once ($CFG->dirroot.'/course/moodleform_mod.php');
  8. require_once ($CFG->dirroot.'/mod/turnitintool/lib.php');
  9. class mod_turnitintool_mod_form extends moodleform_mod {
  10. function definition() {
  11. global $CFG, $DB, $COURSE, $USER;
  12. $mform =& $this->_form;
  13. $mform->addElement('header', 'general', get_string('general', 'form'));
  14. $mform->addElement('text', 'name', get_string('turnitintoolname', 'turnitintool'), array('size'=>'64'));
  15. if (!empty($CFG->formatstringstriptags)) {
  16. $mform->setType('name', PARAM_TEXT);
  17. } else {
  18. $mform->setType('name', PARAM_CLEAN);
  19. }
  20. $mform->addRule('name', null, 'required', null, 'client');
  21. $input = new stdClass();
  22. $input->length=40;
  23. $input->field=get_string('turnitintoolname','turnitintool');
  24. $mform->addRule('name', get_string('maxlength','turnitintool',$input), 'maxlength', 40, 'client');
  25. $mform->addRule('name', get_string('maxlength','turnitintool',$input), 'maxlength', 40, 'server');
  26. if (is_callable(array($this,'add_intro_editor'))) {
  27. $this->add_intro_editor(true, get_string('turnitintoolintro', 'turnitintool'));
  28. } else {
  29. $mform->addElement('htmleditor', 'intro', get_string('turnitintoolintro', 'turnitintool'));
  30. $mform->setType('intro', PARAM_RAW);
  31. $mform->addRule('intro', get_string('required'), 'required', null, 'client');
  32. $input = new stdClass();
  33. $input->length=1000;
  34. $input->field=get_string('turnitintoolintro','turnitintool');
  35. $mform->addRule('intro', get_string('maxlength','turnitintool',$input), 'maxlength', 1000, 'client');
  36. $mform->addRule('intro', get_string('maxlength','turnitintool',$input), 'maxlength', 1000, 'server');
  37. }
  38. $typeoptions = turnitintool_filetype_array();
  39. $mform->addElement('select', 'type', get_string('type', 'turnitintool'), $typeoptions);
  40. turnitintool_modform_help_icon('type', 'types', 'turnitintool', $mform);
  41. $mform->addRule('type', get_string('required'), 'required', null, 'client');
  42. $mform->setDefault('type', $CFG->turnitin_default_type);
  43. $options = array();
  44. for($i = 1; $i <= 5; $i++) {
  45. $options[$i] = $i;
  46. }
  47. $mform->addElement('select', 'numparts', get_string('numberofparts', 'turnitintool'), $options);
  48. turnitintool_modform_help_icon('numparts', 'numberofparts', 'turnitintool', $mform);
  49. $mform->setDefault('numparts', $CFG->turnitin_default_numparts);
  50. $suboptions = array( 0 => get_string('namedparts','turnitintool'), 1 => get_string('portfolio','turnitintool'));
  51. $mform->addElement('hidden','portfolio',0);
  52. $mform->setType('portfolio', PARAM_RAW);
  53. $maxtii=20971520;
  54. if ($CFG->maxbytes>$maxtii) {
  55. $maxbytes1=$maxtii;
  56. } else {
  57. $maxbytes1=$CFG->maxbytes;
  58. }
  59. if ($COURSE->maxbytes>$maxtii) {
  60. $maxbytes2=$maxtii;
  61. } else {
  62. $maxbytes2=$COURSE->maxbytes;
  63. }
  64. $options=get_max_upload_sizes($maxbytes1, $maxbytes2);
  65. $mform->addElement('select', 'maxfilesize', get_string('maxfilesize', 'turnitintool'), $options);
  66. turnitintool_modform_help_icon('maxfilesize', 'maxfilesize', 'turnitintool', $mform);
  67. unset($options);
  68. for ($i=0;$i<=100;$i++) {
  69. $options[$i]=$i;
  70. }
  71. if ( !is_callable(array($this,'standard_grading_coursemodule_elements')) ) {
  72. $mform->addElement('modgrade', 'grade', get_string('overallgrade', 'turnitintool'));
  73. turnitintool_modform_help_icon('grade', 'overallgrade', 'turnitintool', $mform);
  74. $mform->setDefault('grade', $CFG->turnitin_default_grade);
  75. }
  76. $ynoptions = array( 0 => get_string('no'), 1 => get_string('yes'));
  77. $mform->addElement('hidden','defaultdtstart',time());
  78. $mform->setType('defaultdtstart', PARAM_RAW);
  79. $mform->addElement('hidden','defaultdtdue',strtotime('+7 days'));
  80. $mform->setType('defaultdtdue', PARAM_RAW);
  81. $mform->addElement('hidden','defaultdtpost',strtotime('+7 days'));
  82. $mform->setType('defaultdtpost', PARAM_RAW);
  83. if (isset($this->_cm->id)) {
  84. $turnitintool=turnitintool_get_record("turnitintool", "id", $this->_cm->instance);
  85. $updating=true;
  86. $numsubs=turnitintool_count_records('turnitintool_submissions','turnitintoolid',$turnitintool->id);
  87. } else {
  88. $updating=false;
  89. $numsubs=0;
  90. }
  91. if ($updating AND $CFG->turnitin_useanon AND isset($turnitintool->anon) AND $numsubs>0) {
  92. $staticout=(isset($turnitintool->anon) AND $turnitintool->anon) ? get_string('yes', 'turnitintool') : get_string('no', 'turnitintool');
  93. $mform->addElement('static', 'static', get_string('turnitinanon', 'turnitintool'), $staticout);
  94. $mform->addElement('hidden', 'anon', $turnitintool->anon);
  95. $mform->setType('anon', PARAM_RAW);
  96. turnitintool_modform_help_icon('anon', 'turnitinanon', 'turnitintool', $mform);
  97. } else if ($CFG->turnitin_useanon) {
  98. $mform->addElement('select', 'anon', get_string('turnitinanon', 'turnitintool'), $ynoptions);
  99. $mform->setType('anon', PARAM_RAW);
  100. turnitintool_modform_help_icon('anon', 'turnitinanon', 'turnitintool', $mform);
  101. $anon_default = isset($CFG->turnitin_default_anon) ? $CFG->turnitin_default_anon : 0;
  102. $mform->setDefault('anon', $anon_default);
  103. } else {
  104. $mform->addElement('hidden', 'anon', 0);
  105. $mform->setType('anon', PARAM_RAW);
  106. }
  107. $mform->addElement('select', 'studentreports', get_string('studentreports', 'turnitintool'), $ynoptions);
  108. turnitintool_modform_help_icon('studentreports', 'studentreports', 'turnitintool', $mform);
  109. $mform->setDefault('studentreports', $CFG->turnitin_default_studentreports);
  110. $mform->addElement('header', 'general', get_string('advancedoptions', 'turnitintool'));
  111. $mform->addElement('select', 'allowlate', get_string('allowlate', 'turnitintool'), $ynoptions);
  112. $mform->setDefault('allowlate', $CFG->turnitin_default_allowlate);
  113. $genoptions = array( 0 => get_string('genimmediately1','turnitintool'), 1 => get_string('genimmediately2','turnitintool'), 2 => get_string('genduedate','turnitintool'));
  114. $mform->addElement('select', 'reportgenspeed', get_string('reportgenspeed', 'turnitintool'), $genoptions);
  115. $mform->setDefault('reportgenspeed', $CFG->turnitin_default_reportgenspeed);
  116. $suboptions = array( 0 => get_string('norepository','turnitintool'), 1 => get_string('standardrepository','turnitintool'));
  117. if ($CFG->turnitin_userepository=="1") {
  118. $suboptions[2] = get_string('institutionalrepository','turnitintool');
  119. }
  120. $mform->addElement('select', 'submitpapersto', get_string('submitpapersto', 'turnitintool'), $suboptions);
  121. $mform->setDefault('submitpapersto', $CFG->turnitin_default_submitpapersto);
  122. $mform->addElement('select', 'spapercheck', get_string('spapercheck', 'turnitintool'), $ynoptions);
  123. $mform->setDefault('spapercheck', $CFG->turnitin_default_spapercheck);
  124. $mform->addElement('select', 'internetcheck', get_string('internetcheck', 'turnitintool'), $ynoptions);
  125. $mform->setDefault('internetcheck', $CFG->turnitin_default_internetcheck);
  126. $mform->addElement('select', 'journalcheck', get_string('journalcheck', 'turnitintool'), $ynoptions);
  127. $mform->setDefault('journalcheck', $CFG->turnitin_default_journalcheck);
  128. if ($numsubs>0) {
  129. $staticout=(isset($turnitintool->excludebiblio) AND $turnitintool->excludebiblio)
  130. ? get_string('yes', 'turnitintool') : get_string('no', 'turnitintool');
  131. $mform->addElement('static', 'static', get_string('excludebiblio', 'turnitintool'), $staticout);
  132. $mform->addElement('hidden', 'excludebiblio', $turnitintool->excludebiblio);
  133. $mform->setType('excludebiblio', PARAM_RAW);
  134. $staticout=(isset($turnitintool->excludequoted) AND $turnitintool->excludequoted)
  135. ? get_string('yes', 'turnitintool') : get_string('no', 'turnitintool');
  136. $mform->addElement('static', 'static', get_string('excludequoted', 'turnitintool'), $staticout);
  137. $mform->addElement('hidden', 'excludequoted', $turnitintool->excludequoted);
  138. $mform->setType('excludequoted', PARAM_RAW);
  139. $staticout=(isset($turnitintool->excludetype) AND $turnitintool->excludetype==1)
  140. ? get_string('excludewords', 'turnitintool') : get_string('excludepercent', 'turnitintool');
  141. $staticval=(isset($turnitintool->excludevalue) AND empty($turnitintool->excludevalue))
  142. ? get_string('nolimit', 'turnitintool') : $turnitintool->excludevalue.' '.$staticout;
  143. $mform->addElement('static', 'static', get_string('excludevalue', 'turnitintool'), $staticval);
  144. $mform->addElement('hidden', 'excludevalue', $turnitintool->excludevalue);
  145. $mform->setType('excludevalue', PARAM_RAW);
  146. $mform->addElement('hidden', 'excludetype', $turnitintool->excludetype);
  147. $mform->setType('excludetype', PARAM_RAW);
  148. } else {
  149. $mform->addElement('select', 'excludebiblio', get_string('excludebiblio', 'turnitintool'), $ynoptions);
  150. $mform->setDefault('excludebiblio', $CFG->turnitin_default_excludebiblio);
  151. $mform->addElement('select', 'excludequoted', get_string('excludequoted', 'turnitintool'), $ynoptions);
  152. $mform->setDefault('excludequoted', $CFG->turnitin_default_excludequoted);
  153. $mform->addElement('text', 'excludevalue', get_string('excludevalue', 'turnitintool'), array('size'=>'12'));
  154. $mform->setType('excludevalue', PARAM_RAW);
  155. $input = new stdClass();
  156. $input->length=9;
  157. $input->field=get_string('excludevalue','turnitintool');
  158. $mform->addRule('excludevalue', get_string('maxlength','turnitintool',$input), 'maxlength', 9, 'client');
  159. $mform->addRule('excludevalue', get_string('maxlength','turnitintool',$input), 'maxlength', 9, 'server');
  160. $mform->addRule('excludevalue', null, 'numeric', null, 'client');
  161. $mform->addRule('excludevalue', null, 'numeric', null, 'server');
  162. $typeoptions = array( 1 => get_string('excludewords','turnitintool'), 2 => get_string('excludepercent','turnitintool'));
  163. $mform->addElement('select', 'excludetype', '', $typeoptions);
  164. $mform->setDefault('excludetype', 1);
  165. }
  166. if ( isset($CFG->turnitin_useerater) && $CFG->turnitin_useerater=='1') {
  167. $handbook_options = array(
  168. 1 => get_string('erater_handbook_advanced','turnitintool'),
  169. 2 => get_string('erater_handbook_highschool','turnitintool'),
  170. 3 => get_string('erater_handbook_middleschool','turnitintool'),
  171. 4 => get_string('erater_handbook_elementary','turnitintool'),
  172. 5 => get_string('erater_handbook_learners','turnitintool'),
  173. );
  174. $dictionary_options = array(
  175. 'en_US' => get_string('erater_dictionary_enus','turnitintool'),
  176. 'en_GB' => get_string('erater_dictionary_engb','turnitintool'),
  177. 'en' => get_string('erater_dictionary_en','turnitintool')
  178. );
  179. $mform->addElement('select', 'erater', get_string('erater', 'turnitintool'), $ynoptions);
  180. $mform->setDefault('erater', 0);
  181. $mform->addElement('select', 'erater_handbook', get_string('erater_handbook', 'turnitintool'), $handbook_options);
  182. $mform->setDefault('erater_handbook', 2);
  183. $mform->disabledIf('erater_handbook','erater', 'eq', 0);
  184. $mform->addElement('select', 'erater_dictionary', get_string('erater_dictionary', 'turnitintool'), $dictionary_options);
  185. $mform->setDefault('erater_dictionary', 'en_US');
  186. $mform->disabledIf('erater_dictionary','erater', 'eq', 0);
  187. $mform->addElement('checkbox', 'erater_spelling', get_string('erater_categories', 'turnitintool'), " ".get_string('erater_spelling', 'turnitintool'));
  188. $mform->setDefault('erater_spelling', false);
  189. $mform->disabledIf('erater_spelling','erater', 'eq', 0);
  190. $mform->addElement('checkbox', 'erater_grammar', '', " ".get_string('erater_grammar', 'turnitintool'));
  191. $mform->setDefault('erater_grammar', false);
  192. $mform->disabledIf('erater_grammar','erater', 'eq', 0);
  193. $mform->addElement('checkbox', 'erater_usage', '', " ".get_string('erater_usage', 'turnitintool'));
  194. $mform->setDefault('erater_usage', false);
  195. $mform->disabledIf('erater_usage','erater', 'eq', 0);
  196. $mform->addElement('checkbox', 'erater_mechanics', '', " ".get_string('erater_mechanics', 'turnitintool'));
  197. $mform->setDefault('erater_mechanics', false);
  198. $mform->disabledIf('erater_mechanics','erater', 'eq', 0);
  199. $mform->addElement('checkbox', 'erater_style', '', " ".get_string('erater_style', 'turnitintool'));
  200. $mform->setDefault('erater_style', false);
  201. $mform->disabledIf('erater_style','erater', 'eq', 0);
  202. }
  203. if ( isset($CFG->turnitin_transmatch) && $CFG->turnitin_transmatch=='1') {
  204. $mform->addElement( 'select', 'transmatch', get_string('transmatch', 'turnitintool'), $ynoptions );
  205. $mform->setDefault( 'transmatch', false);
  206. } else {
  207. $mform->addElement( 'hidden', 'transmatch', 0 );
  208. $mform->setType('transmatch', PARAM_RAW);
  209. }
  210. $mform->addElement('hidden','ownerid',NULL);
  211. $mform->setType('ownerid', PARAM_RAW);
  212. $features = new stdClass;
  213. $features->groups = true;
  214. $features->groupings = true;
  215. $features->groupmembersonly = true;
  216. if ( is_callable(array($this,'standard_grading_coursemodule_elements')) ) {
  217. $this->standard_grading_coursemodule_elements();
  218. }
  219. $this->standard_coursemodule_elements($features);
  220. $this->add_action_buttons();
  221. }
  222. }
  223. /* ?> */