PageRenderTime 43ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/admin/tool/uploadcourse/classes/step2_form.php

https://bitbucket.org/synergylearning/campusconnect
PHP | 193 lines | 118 code | 31 blank | 44 comment | 5 complexity | 34e64f3af99d709a4e48f6a8cbf81c1b MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, LGPL-3.0, GPL-3.0, LGPL-2.1, Apache-2.0, BSD-3-Clause, AGPL-3.0
  1. <?php
  2. // This file is part of Moodle - http://moodle.org/
  3. //
  4. // Moodle is free software: you can redistribute it and/or modify
  5. // it under the terms of the GNU General Public License as published by
  6. // the Free Software Foundation, either version 3 of the License, or
  7. // (at your option) any later version.
  8. //
  9. // Moodle is distributed in the hope that it will be useful,
  10. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. // GNU General Public License for more details.
  13. //
  14. // You should have received a copy of the GNU General Public License
  15. // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
  16. /**
  17. * Bulk course upload step 2.
  18. *
  19. * @package tool_uploadcourse
  20. * @copyright 2011 Piers Harding
  21. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  22. */
  23. defined('MOODLE_INTERNAL') || die();
  24. /**
  25. * Specify course upload details.
  26. *
  27. * @package tool_uploadcourse
  28. * @copyright 2011 Piers Harding
  29. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  30. */
  31. class tool_uploadcourse_step2_form extends tool_uploadcourse_base_form {
  32. /**
  33. * The standard form definiton.
  34. * @return void.
  35. */
  36. public function definition () {
  37. global $CFG;
  38. $mform = $this->_form;
  39. $data = $this->_customdata['data'];
  40. $courseconfig = get_config('moodlecourse');
  41. // Import options.
  42. $this->add_import_options();
  43. // Course options.
  44. $mform->addElement('header', 'courseoptionshdr', get_string('courseprocess', 'tool_uploadcourse'));
  45. $mform->setExpanded('courseoptionshdr', true);
  46. $mform->addElement('text', 'options[shortnametemplate]', get_string('shortnametemplate', 'tool_uploadcourse'),
  47. 'maxlength="100" size="20"');
  48. $mform->setType('options[shortnametemplate]', PARAM_RAW);
  49. $mform->addHelpButton('options[shortnametemplate]', 'shortnametemplate', 'tool_uploadcourse');
  50. $mform->disabledIf('options[shortnametemplate]', 'options[mode]', 'eq', tool_uploadcourse_processor::MODE_CREATE_OR_UPDATE);
  51. $mform->disabledIf('options[shortnametemplate]', 'options[mode]', 'eq', tool_uploadcourse_processor::MODE_UPDATE_ONLY);
  52. // Restore file is not in the array options on purpose, because formslib can't handle it!
  53. $contextid = $this->_customdata['contextid'];
  54. $mform->addElement('hidden', 'contextid', $contextid);
  55. $mform->setType('contextid', PARAM_INT);
  56. $mform->addElement('filepicker', 'restorefile', get_string('templatefile', 'tool_uploadcourse'));
  57. $mform->addHelpButton('restorefile', 'templatefile', 'tool_uploadcourse');
  58. $mform->addElement('text', 'options[templatecourse]', get_string('coursetemplatename', 'tool_uploadcourse'));
  59. $mform->setType('options[templatecourse]', PARAM_TEXT);
  60. $mform->addHelpButton('options[templatecourse]', 'coursetemplatename', 'tool_uploadcourse');
  61. $mform->addElement('selectyesno', 'options[reset]', get_string('reset', 'tool_uploadcourse'));
  62. $mform->setDefault('options[reset]', 0);
  63. $mform->disabledIf('options[reset]', 'options[mode]', 'eq', tool_uploadcourse_processor::MODE_CREATE_NEW);
  64. $mform->disabledIf('options[reset]', 'options[mode]', 'eq', tool_uploadcourse_processor::MODE_CREATE_ALL);
  65. $mform->disabledIf('options[reset]', 'options[allowresets]', 'eq', 0);
  66. $mform->addHelpButton('options[reset]', 'reset', 'tool_uploadcourse');
  67. // Default values.
  68. $mform->addElement('header', 'defaultheader', get_string('defaultvalues', 'tool_uploadcourse'));
  69. $mform->setExpanded('defaultheader', true);
  70. $displaylist = coursecat::make_categories_list('moodle/course:create');
  71. $mform->addElement('select', 'defaults[category]', get_string('coursecategory'), $displaylist);
  72. $mform->addHelpButton('defaults[category]', 'coursecategory');
  73. $choices = array();
  74. $choices['0'] = get_string('hide');
  75. $choices['1'] = get_string('show');
  76. $mform->addElement('select', 'defaults[visible]', get_string('visible'), $choices);
  77. $mform->addHelpButton('defaults[visible]', 'visible');
  78. $mform->setDefault('defaults[visible]', $courseconfig->visible);
  79. $mform->addElement('date_selector', 'defaults[startdate]', get_string('startdate'));
  80. $mform->addHelpButton('defaults[startdate]', 'startdate');
  81. $mform->setDefault('defaults[startdate]', time() + 3600 * 24);
  82. $courseformats = get_sorted_course_formats(true);
  83. $formcourseformats = array();
  84. foreach ($courseformats as $courseformat) {
  85. $formcourseformats[$courseformat] = get_string('pluginname', "format_$courseformat");
  86. }
  87. $mform->addElement('select', 'defaults[format]', get_string('format'), $formcourseformats);
  88. $mform->addHelpButton('defaults[format]', 'format');
  89. $mform->setDefault('defaults[format]', $courseconfig->format);
  90. if (!empty($CFG->allowcoursethemes)) {
  91. $themeobjects = get_list_of_themes();
  92. $themes=array();
  93. $themes[''] = get_string('forceno');
  94. foreach ($themeobjects as $key => $theme) {
  95. if (empty($theme->hidefromselector)) {
  96. $themes[$key] = get_string('pluginname', 'theme_'.$theme->name);
  97. }
  98. }
  99. $mform->addElement('select', 'defaults[theme]', get_string('forcetheme'), $themes);
  100. }
  101. $languages = array();
  102. $languages[''] = get_string('forceno');
  103. $languages += get_string_manager()->get_list_of_translations();
  104. $mform->addElement('select', 'defaults[lang]', get_string('forcelanguage'), $languages);
  105. $mform->setDefault('defaults[lang]', $courseconfig->lang);
  106. $options = range(0, 10);
  107. $mform->addElement('select', 'defaults[newsitems]', get_string('newsitemsnumber'), $options);
  108. $mform->addHelpButton('defaults[newsitems]', 'newsitemsnumber');
  109. $mform->setDefault('defaults[newsitems]', $courseconfig->newsitems);
  110. $mform->addElement('selectyesno', 'defaults[showgrades]', get_string('showgrades'));
  111. $mform->addHelpButton('defaults[showgrades]', 'showgrades');
  112. $mform->setDefault('defaults[showgrades]', $courseconfig->showgrades);
  113. $mform->addElement('selectyesno', 'defaults[showreports]', get_string('showreports'));
  114. $mform->addHelpButton('defaults[showreports]', 'showreports');
  115. $mform->setDefault('defaults[showreports]', $courseconfig->showreports);
  116. if (!empty($CFG->legacyfilesinnewcourses)) {
  117. $mform->addElement('select', 'defaults[legacyfiles]', get_string('courselegacyfiles'), $choices);
  118. $mform->addHelpButton('defaults[legacyfiles]', 'courselegacyfiles');
  119. if (!isset($courseconfig->legacyfiles)) {
  120. $courseconfig->legacyfiles = 0;
  121. }
  122. $mform->setDefault('defaults[legacyfiles]', $courseconfig->legacyfiles);
  123. }
  124. $choices = get_max_upload_sizes($CFG->maxbytes);
  125. $mform->addElement('select', 'defaults[maxbytes]', get_string('maximumupload'), $choices);
  126. $mform->addHelpButton('defaults[maxbytes]', 'maximumupload');
  127. $mform->setDefault('defaults[maxbytes]', $courseconfig->maxbytes);
  128. $choices = array();
  129. $choices[NOGROUPS] = get_string('groupsnone', 'group');
  130. $choices[SEPARATEGROUPS] = get_string('groupsseparate', 'group');
  131. $choices[VISIBLEGROUPS] = get_string('groupsvisible', 'group');
  132. $mform->addElement('select', 'defaults[groupmode]', get_string('groupmode', 'group'), $choices);
  133. $mform->addHelpButton('defaults[groupmode]', 'groupmode', 'group');
  134. $mform->setDefault('defaults[groupmode]', $courseconfig->groupmode);
  135. $mform->addElement('selectyesno', 'defaults[groupmodeforce]', get_string('groupmodeforce', 'group'));
  136. $mform->addHelpButton('defaults[groupmodeforce]', 'groupmodeforce', 'group');
  137. $mform->setDefault('defaults[groupmodeforce]', $courseconfig->groupmodeforce);
  138. // Hidden fields.
  139. $mform->addElement('hidden', 'importid');
  140. $mform->setType('importid', PARAM_INT);
  141. $mform->addElement('hidden', 'previewrows');
  142. $mform->setType('previewrows', PARAM_INT);
  143. $this->add_action_buttons(true, get_string('uploadcourses', 'tool_uploadcourse'));
  144. $this->set_data($data);
  145. }
  146. /**
  147. * Add actopm buttons.
  148. *
  149. * @param bool $cancel whether to show cancel button, default true
  150. * @param string $submitlabel label for submit button, defaults to get_string('savechanges')
  151. * @return void
  152. */
  153. public function add_action_buttons($cancel = true, $submitlabel = null) {
  154. $mform =& $this->_form;
  155. $buttonarray = array();
  156. $buttonarray[] = &$mform->createElement('submit', 'showpreview', get_string('preview', 'tool_uploadcourse'));
  157. $buttonarray[] = &$mform->createElement('submit', 'submitbutton', $submitlabel);
  158. $buttonarray[] = &$mform->createElement('cancel');
  159. $mform->addGroup($buttonarray, 'buttonar', '', array(' '), false);
  160. $mform->closeHeaderBefore('buttonar');
  161. }
  162. }