限制测验时间设置
Limit Quiz Time Setting
我想限制测验的时间,只允许将时间设置在上午 11 点至下午 5 点之间。
我找到了这一行:
lib/form/datetimeselector.php
在函数 _createElement 上,第 120 行:我将值 23 更改为 11
现在开放时间选项限制为11个,但这也影响了关闭时间。
而且它也影响了所有模块。
请指出修改时间选项的正确位置。
谢谢。
好的,我找到了解决方案
步骤简单
- 将
lib/form/datetimeselector.php
复制到 2 个新副本并将这 2 个副本重命名为 datetimeselector_quizopen.php
和 datetimeselector_quizopen.php
- 在这两个文件中,相应地更改 class 名称和函数名称(遗留构造函数)。
- 在第 131 行,在两个文件中,相应地更改
for loop
的值。
- 注册两个文件 ini
lib/formslib.php
(第 3227 行)
- 在
mod/quiz/mod_form.php
中,将元素名称从 date_time_selector
更改为 date_time_selector_quizopen
(第 86 行)和 date_time_selector_quizclose
(第 90 行)
详细步骤
- 转到文件夹
lib/form
并复制 datetimeselector.php
- 2 份
- 将第一个副本重命名为
datetimeselector_quizopen.php
- 将第二个副本重命名为
datetimeselector_quizclose.php
- 在
datetimeselector_quizopen.php
中,将 class 名称从 MoodleQuickForm_date_time_selector
重命名为 MoodleQuickForm_date_time_selector_quizopen
(第 42 行)
- 在同一文件中,将函数名称从
public function MoodleQuickForm_date_time_selector
重命名为 public function MoodleQuickForm_date_time_selector_quizopen
(第 115 行)
- 在同一文件中,将
for ($i = 0; $i <= 23; $i++) {
更改为 for ($i = 11; $i <= 16; $i++) {
(第 131 行)
- 在
datetimeselector_quizclose.php
中,将 class 名称从 MoodleQuickForm_date_time_selector
重命名为 MoodleQuickForm_date_time_selector_quizclose
(第 42 行)
- 在同一文件中,将函数名称从
public function MoodleQuickForm_date_time_selector
重命名为 public function MoodleQuickForm_date_time_selector_quizclose
(第 115 行)
- 在同一文件中,将
for ($i = 0; $i <= 23; $i++) {
更改为 for ($i = 11; $i <= 16; $i++) {
(第 131 行)
转到文件 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');
转到mod/quiz/mod_form.php
,第86行,从$mform->addElement('date_time_selector', 'timeopen',
改为$mform->addElement('date_time_selector_quizopen', 'timeopen',
- 在同一文件的第 90 行中,将
$mform->addElement('date_time_selector', 'timeclose',
更改为 $mform->addElement('date_time_selector_quizclose', 'timeclose',
我想限制测验的时间,只允许将时间设置在上午 11 点至下午 5 点之间。
我找到了这一行: lib/form/datetimeselector.php 在函数 _createElement 上,第 120 行:我将值 23 更改为 11
现在开放时间选项限制为11个,但这也影响了关闭时间。
而且它也影响了所有模块。
请指出修改时间选项的正确位置。
谢谢。
好的,我找到了解决方案
步骤简单
- 将
lib/form/datetimeselector.php
复制到 2 个新副本并将这 2 个副本重命名为datetimeselector_quizopen.php
和datetimeselector_quizopen.php
- 在这两个文件中,相应地更改 class 名称和函数名称(遗留构造函数)。
- 在第 131 行,在两个文件中,相应地更改
for loop
的值。 - 注册两个文件 ini
lib/formslib.php
(第 3227 行) - 在
mod/quiz/mod_form.php
中,将元素名称从date_time_selector
更改为date_time_selector_quizopen
(第 86 行)和date_time_selector_quizclose
(第 90 行)
详细步骤
- 转到文件夹
lib/form
并复制datetimeselector.php
- 2 份 - 将第一个副本重命名为
datetimeselector_quizopen.php
- 将第二个副本重命名为
datetimeselector_quizclose.php
- 在
datetimeselector_quizopen.php
中,将 class 名称从MoodleQuickForm_date_time_selector
重命名为MoodleQuickForm_date_time_selector_quizopen
(第 42 行) - 在同一文件中,将函数名称从
public function MoodleQuickForm_date_time_selector
重命名为 publicfunction MoodleQuickForm_date_time_selector_quizopen
(第 115 行) - 在同一文件中,将
for ($i = 0; $i <= 23; $i++) {
更改为for ($i = 11; $i <= 16; $i++) {
(第 131 行) - 在
datetimeselector_quizclose.php
中,将 class 名称从MoodleQuickForm_date_time_selector
重命名为MoodleQuickForm_date_time_selector_quizclose
(第 42 行) - 在同一文件中,将函数名称从
public function MoodleQuickForm_date_time_selector
重命名为 publicfunction MoodleQuickForm_date_time_selector_quizclose
(第 115 行) - 在同一文件中,将
for ($i = 0; $i <= 23; $i++) {
更改为for ($i = 11; $i <= 16; $i++) {
(第 131 行) 转到文件 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');
转到
mod/quiz/mod_form.php
,第86行,从$mform->addElement('date_time_selector', 'timeopen',
改为$mform->addElement('date_time_selector_quizopen', 'timeopen',
- 在同一文件的第 90 行中,将
$mform->addElement('date_time_selector', 'timeclose',
更改为$mform->addElement('date_time_selector_quizclose', 'timeclose',