Создать в блоке функцию определения, идет ли у студента сессия и какая именно

Issue #264 closed
Oleg Sychev repo owner created an issue

Originally reported on Google Code with ID 264

В классе блока - в block_supervised.php - должна быть создана функция, определяющая,
есть ли у текущего пользователя сессии активная (как у студента) и если есть - то вернуть
их данные (прежде всего типы занятий, но можно массив всех данных из таблицы).

public function user_active_sessions($courseid) - или, возможно, без параметров. Можно
также сделать ее статической, чтобы не создавать экземпляр блока без вызова.

Функция должна учитывать и группы, и ip и все. Соответственно правило должно использовать
эту функцию чтобы определить сессии пользователя, соответствующие типы занятий и можно
ли ему делать попытки.

Смысл в том, что не только правило захочет задать такой вопрос. Другие модули (для
начала - poasassignment) тоже заинтересованы в том, чтобы определить - идет ли у студента
урок и какой именно. Было бы нехорошо копировать этот код во все места - поэтому самое
логичное это поместить его в блоке.

Reported by oasychev on 2014-02-27 10:54:35

Comments (4)

  1. Former user Account Deleted
    Сделано. Функция находится в файле supervised/lib.php т.к. если она будет в классе block_supervised,
    то чтобы ее использовать нужно будет помимо block_supervised.php подключать еще и файл
    с классом block_base, иначе выдается ошибка.
    

    Reported by ushakov.andrey.34 on 2014-03-03 00:08:46 - Status changed: Fixed

  2. Oleg Sychev reporter
    Спасибо. Только вы уверены, что в require_once относительный путь будет корректно работать
    независимо от того, откуда подключается сам lib.php? Может лучше абсолютный от $CFG->dirroot
    прописать?
    

    Reported by oasychev on 2014-03-04 18:47:15

  3. Former user Account Deleted
    С относительным вроде работает, lib.php подключается из правила и там же вызывается
    эта функция.
    

    Reported by ushakov.andrey.34 on 2014-03-04 20:13:43

  4. Log in to comment