PageRenderTime 42ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/mod_form.php

https://github.com/ccle/Moodle-Flashcard
PHP | 151 lines | 92 code | 30 blank | 29 comment | 7 complexity | 628fb0b8c92ded4c407c4591e608c60c MD5 | raw file
  1. <?php
  2. /**
  3. * @package mod-flashcard
  4. * @category mod
  5. * @author Gustav Delius
  6. * @author Valery Fremaux
  7. * @author Tomasz Muras
  8. * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
  9. */
  10. /**
  11. * Requires and includes
  12. */
  13. require_once ($CFG->dirroot.'/course/moodleform_mod.php');
  14. require_once ($CFG->libdir.'/questionlib.php');
  15. require_once ($CFG->dirroot.'/mod/flashcard/locallib.php');
  16. /**
  17. * overrides moodleform for flashcard setup
  18. */
  19. class mod_flashcard_mod_form extends moodleform_mod {
  20. function definition() {
  21. global $CFG, $COURSE, $DB;
  22. $mform =& $this->_form;
  23. $mform->addElement('header', 'general', get_string('general', 'form'));
  24. $mform->addElement('text', 'name', get_string('name'), array('size'=>'64'));
  25. $mform->setType('name', PARAM_TEXT);
  26. $mform->addRule('name', null, 'required', null, 'client');
  27. /// Introduction.
  28. $this->add_intro_editor(false, get_string('summary', 'flashcard'));
  29. //$mform->addHelpButton($elementname, $identifier, $component, $linktext, $suppresscheck)
  30. //$mform->setHelpButton($elementname, $buttonargs, $suppresscheck, $function)
  31. //$mform->addHelpButton('summary', 'import', 'flashcard');
  32. //$mform->setHelpButton('summary', array('writing', 'questions', 'richtext2'), false, 'editorhelpbutton');
  33. $startdatearray[] = &$mform->createElement('date_time_selector', 'starttime', '');
  34. $startdatearray[] = &$mform->createElement('checkbox', 'starttimeenable', '');
  35. $mform->addGroup($startdatearray, 'startfrom', get_string('starttime', 'flashcard'), ' ', false);
  36. $mform->disabledIf('startfrom', 'starttimeenable');
  37. $enddatearray[] = &$mform->createElement('date_time_selector', 'endtime', '');
  38. $enddatearray[] = &$mform->createElement('checkbox', 'endtimeenable', '');
  39. $mform->addGroup($enddatearray, 'endfrom', get_string('endtime', 'flashcard'), ' ', false);
  40. $mform->disabledIf('endfrom', 'endtimeenable');
  41. $mform->addElement('selectyesno', 'flipdeck', get_string('flipdeck', 'flashcard'));
  42. $mform->addHelpButton('flipdeck', 'flipdeck', 'flashcard');
  43. $options['2'] = 2;
  44. $options['3'] = 3;
  45. $options['4'] = 4;
  46. $mform->addElement('select', 'decks', get_string('decks', 'flashcard'), $options);
  47. $mform->setType('decks', PARAM_INT);
  48. $mform->setDefault('decks', 2);
  49. $mform->addHelpButton('decks', 'decks', 'flashcard');
  50. $mform->addElement('selectyesno', 'autodowngrade', get_string('autodowngrade', 'flashcard'));
  51. $mform->addHelpButton('autodowngrade', 'autodowngrade', 'flashcard');
  52. $mform->addElement('text', 'deck2_release', get_string('deck2_release', 'flashcard'), array('size'=>'5'));
  53. $mform->addHelpButton('deck2_release', 'deck_release', 'flashcard');
  54. $mform->setType('deck2_release', PARAM_INT);
  55. $mform->setDefault('deck2_release', 96);
  56. $mform->addRule('deck2_release', get_string('numericrequired', 'flashcard'), 'numeric', null, 'client');
  57. $mform->addElement('text', 'deck3_release', get_string('deck3_release', 'flashcard'), array('size'=>'5'));
  58. $mform->setType('deck3_release', PARAM_INT);
  59. $mform->setDefault('deck3_release', 96);
  60. $mform->addRule('deck3_release', get_string('numericrequired', 'flashcard'), 'numeric', null, 'client');
  61. $mform->disabledIf('deck3_release', 'decks', 'eq', 2);
  62. $mform->addElement('text', 'deck4_release', get_string('deck4_release', 'flashcard'), array('size'=>'5'));
  63. $mform->setType('deck4_release', PARAM_INT);
  64. $mform->setDefault('deck4_release', 96);
  65. $mform->addRule('deck4_release', get_string('numericrequired', 'flashcard'), 'numeric', null, 'client');
  66. $mform->disabledIf('deck4_release', 'decks', 'neq', 4);
  67. $mform->addElement('text', 'deck1_delay', get_string('deck1_delay', 'flashcard'), array('size'=>'5'));
  68. $mform->addHelpButton('deck1_delay', 'deck_delay', 'flashcard');
  69. $mform->setType('deck1_delay', PARAM_INT);
  70. $mform->setDefault('deck1_delay', 48);
  71. $mform->addRule('deck1_delay', get_string('numericrequired', 'flashcard'), 'numeric', null, 'client');
  72. $mform->addElement('text', 'deck2_delay', get_string('deck2_delay', 'flashcard'), array('size'=>'5'));
  73. $mform->setType('deck2_delay', PARAM_INT);
  74. $mform->setDefault('deck2_delay', 96);
  75. $mform->addRule('deck2_delay', get_string('numericrequired', 'flashcard'), 'numeric', null, 'client');
  76. $mform->addElement('text', 'deck3_delay', get_string('deck3_delay', 'flashcard'), array('size'=>'5'));
  77. $mform->setType('deck3_delay', PARAM_INT);
  78. $mform->setDefault('deck3_delay', 168);
  79. $mform->addRule('deck3_delay', get_string('numericrequired', 'flashcard'), 'numeric', null, 'client');
  80. $mform->disabledIf('deck3_delay', 'decks', 'eq', 2);
  81. $mform->addElement('text', 'deck4_delay', get_string('deck4_delay', 'flashcard'), array('size'=>'5'));
  82. $mform->setType('deck4_delay', PARAM_INT);
  83. $mform->setDefault('deck4_delay', 336);
  84. $mform->addRule('deck4_delay', get_string('numericrequired', 'flashcard'), 'numeric', null, 'client');
  85. $mform->disabledIf('deck4_delay', 'decks', 'neq', 4);
  86. $this->standard_coursemodule_elements();
  87. $this->add_action_buttons();
  88. }
  89. /**
  90. function definition_after_data(){
  91. $mform =& $this->_form;
  92. $startfrom =&$mform->getElement('startfrom');
  93. $elements = $startfrom->getElements();
  94. print_object($elements[1]->getValue());
  95. if ($mform->getElementValue('starttime') != 0){
  96. $starttimeenable->setValue(true);
  97. }
  98. }*/
  99. public function validation($data, $files) {
  100. $errors = parent::validation($data, $files);
  101. if ($data['starttime'] > $data['endtime']){
  102. $errors['endfrom'] = get_string('mustbehigherthanstart', 'flashcard');
  103. }
  104. if ($data['decks'] >= 2){
  105. if ($data['deck1_delay'] > $data['deck2_delay']) {
  106. $errors['deck2_delay'] = get_string('mustbegreaterthanabove');
  107. }
  108. }
  109. if ($data['decks'] >= 3){
  110. if ($data['deck2_delay'] > $data['deck3_delay']) {
  111. $errors['deck3_delay'] = get_string('mustbegreaterthanabove');
  112. }
  113. }
  114. if ($data['decks'] >= 4){
  115. if ($data['deck3_delay'] > $data['deck4_delay']) {
  116. $errors['deck4_delay'] = get_string('mustbegreaterthanabove');
  117. }
  118. }
  119. return $errors;
  120. }
  121. }