Добавлена функция отладочной печати. Сделан отладочный вывод необходимых для работы данных.
Добавлена функция добавления в БД нового случайного вопроса, использованного в данном тесте данным пользователем.
Поле категории больше не нужно - у вопроса уникальный идентификатор вне зависимости от нее.
Категория необходима и теперь она также добавляется в БД.
Добавлена функция удаления всех использованных пользователем в тесте вопросов, когда он использует все свои попытки.
Методы для работы со случайными вопросами перенесены в класс qtype_random, где им и положено быть.
Было допущено много ошибок, изменения пришлось откатить чтобы заново переписать код.
Реализована функция добавления нового использованного случайного вопроса в БД или увеличения количества его использований, если он уже добавлен.
Реализована функция удаления упоминания об использованных вопросах данного пользователя в данном тесте после того, как все попытки будут истрачены.
Реализована проверка, использовался ли вопрос ранее и если да, то использовался ли он наименьшее число раз.
Исправлено исключение уже использованных вопросов.
Добавлена функция, которая проверяет, надо ли удалить старые использованные вопросы и, если надо, удаляет.
Исправлена ошибка получения вопросов определенной категории данного теста данного пользователя.
Исправлена ошибка поиска использованных вопросов. И если идентификатор теста не был передан в функцию выборки вопросов, то использованные вопросы не учитываются.
Снова откатил изменения в файлах, чтобы начать все сначала.
Реализован новый способ получения списка использованных вопросов из имеющихся в moodle таблиц, а также подсчет их количества и определение минимального количества использований вопроса.
Реализована проверка того, использовались вопросы ранее, или нет.
Убрана отладочная печать и расставлены комментарии.
Убран лишний перенос строки.
Исправлена ошибка добавления в массив количеств уже исключенных из выборки вопросов - теперь добавляются вопросы текущей категории. Исправлена ошибка в логическом выражении определения, можно ли выбрать вопрос, или он уже был использован.
Убрана отладочная печать.