限制测验时间设置

Limit Quiz Time Setting

我想限制测验的时间,只允许将时间设置在上午 11 点至下午 5 点之间。

我找到了这一行: lib/form/datetimeselector.php 在函数 _createElement 上,第 120 行:我将值 23 更改为 11

现在开放时间选项限制为11个,但这也影响了关闭时间。

而且它也影响了所有模块。

请指出修改时间选项的正确位置。

谢谢。

好的,我找到了解决方案

步骤简单

  1. lib/form/datetimeselector.php 复制到 2 个新副本并将这 2 个副本重命名为 datetimeselector_quizopen.phpdatetimeselector_quizopen.php
  2. 在这两个文件中,相应地更改 class 名称和函数名称(遗留构造函数)。
  3. 在第 131 行,在两个文件中,相应地更改 for loop 的值。
  4. 注册两个文件 ini lib/formslib.php(第 3227 行)
  5. mod/quiz/mod_form.php 中,将元素名称从 date_time_selector 更改为 date_time_selector_quizopen(第 86 行)和 date_time_selector_quizclose(第 90 行)

详细步骤

  1. 转到文件夹 lib/form 并复制 datetimeselector.php - 2 份
  2. 将第一个副本重命名为datetimeselector_quizopen.php
  3. 将第二个副本重命名为datetimeselector_quizclose.php
  4. datetimeselector_quizopen.php 中,将 class 名称从 MoodleQuickForm_date_time_selector 重命名为 MoodleQuickForm_date_time_selector_quizopen(第 42 行)
  5. 在同一文件中,将函数名称从 public function MoodleQuickForm_date_time_selector 重命名为 public function MoodleQuickForm_date_time_selector_quizopen(第 115 行)
  6. 在同一文件中,将 for ($i = 0; $i <= 23; $i++) { 更改为 for ($i = 11; $i <= 16; $i++) {(第 131 行)
  7. datetimeselector_quizclose.php 中,将 class 名称从 MoodleQuickForm_date_time_selector 重命名为 MoodleQuickForm_date_time_selector_quizclose(第 42 行)
  8. 在同一文件中,将函数名称从 public function MoodleQuickForm_date_time_selector 重命名为 public function MoodleQuickForm_date_time_selector_quizclose(第 115 行)
  9. 在同一文件中,将 for ($i = 0; $i <= 23; $i++) { 更改为 for ($i = 11; $i <= 16; $i++) {(第 131 行)
  10. 转到文件 lib/formslib.php,第 3227 行 - 或搜索 MoodleQuickForm::registerElementType('date_time_selector' - 添加此代码:

    MoodleQuickForm::registerElementType('date_time_selector_quizopen', "$CFG->libdir/form/datetimeselector_quizopen.php", 'MoodleQuickForm_date_time_selector_quizopen'); MoodleQuickForm::registerElementType('date_time_selector_quizclose', "$CFG->libdir/form/datetimeselector_quizclose.php", 'MoodleQuickForm_date_time_selector_quizclose');

  11. 转到mod/quiz/mod_form.php,第86行,从$mform->addElement('date_time_selector', 'timeopen',改为$mform->addElement('date_time_selector_quizopen', 'timeopen',

  12. 在同一文件的第 90 行中,将 $mform->addElement('date_time_selector', 'timeclose', 更改为 $mform->addElement('date_time_selector_quizclose', 'timeclose',