Ограничение времени викторины - PullRequest
0 голосов
/ 15 мая 2018

Я хочу ограничить время для викторины, позволяя устанавливать время только с 11:00 до 17:00.

Я нашел эту строку: lib / form / datetimeselector.php В функции _createElement, строка 120: я изменяю значение 23 на 11

Теперь параметры времени открытия ограничены 11, но это также влияет на время закрытия.

И это также влияет на всемодуль.

Пожалуйста, укажите мне правильное место, чтобы изменить вариант времени.

Спасибо.

1 Ответ

0 голосов
/ 15 мая 2018

ОК, я нашел решение

Простые шаги

  1. Дублируйте lib/form/datetimeselector.php в 2 новые копии и переименуйте эти 2 копии в datetimeselector_quizopen.php и datetimeselector_quizopen.php
  2. В этих двух файлах измените имя класса и имя функции (унаследованный конструктор) соответственно.
  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 переименуйте имя класса с 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 переименуйте имя класса с 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',
...