Назначение курсов студентам (через БД)

Назначение курсов студентам (через БД)

от Anatoliy M -
Количество ответов: 5

Пишу одну программу, работает напрямую с БД moodle (ветка 1.9).

Столкнулся с проблемой (неполным пониманием) назначения курсов студентам.
Понял что в этом учавствует следующие таблицы: mdl_user, mdl_role, mdl_role_assignments, mdl_context, mdl_course.
Из всего несовсем понимаю формарование записей в mdl_context
id - используем для связи в role_assignments
contextlevel - так как права назначаются студенту на курс пишем "50"
instanceid - id курсов
А вот поля "path" и "depth" непойму. Что это, на что влияет/ссылается, как формируется/расшифровывается?

В ответ на Anatoliy M

Re: Назначение курсов студентам (через БД)

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle

8-/

1) Прочтите документацию.

2) Прочтите о стандартных способах подписки.

3) воспользуйтесь API

В ответ на Виталий Лавров

Re: Назначение курсов студентам (через БД)

от Anatoliy M -

Работаю напрямую с бд , пишу не модуль для moodle, а отдельное независимое приложение на Java/Delphi, которое будет манипулировать данными из нескольких баз данных. Как мне может помочь в этом случаи API?

В ответ на Anatoliy M

Re: Назначение курсов студентам (через БД)

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle

Тогда остаются п.1 и п.2

п.3 - исходники апи - это не самая лучшая, но все же документация.

Чем не устраивает подписка через внешнюю БД ?

В ответ на Anatoliy M

Re: Назначение курсов студентам (через БД)

от Vadim Tabunshchik -
Изображение пользователя Developers

А вот поля "path" и "depth" непойму. Что это, на что влияет/ссылается, как формируется/расшифровывается?

Попробую объяснить улыбаюсь

Пример. Есть запись в таблице mdl_context (специально взял contextlevel=50 - уровень курса):

id contextlevel instanceid path depth
10 50 11 /1/11050/11/43/10 5

path=/1/11050/11/43/10 - показывает "путь" к курсу (вложенность курса в категории/подкатегории), где числа - это id из этой же таблицы mdl_context. Т. е., если мы найдем в этой же таблице запись с id=11050 (приведены только значения: 11050 - 40 - 76 - /1/11050 - 2), то она укажет на категорию (mdl_context.instanceid=76=mdl_course_categories.id). В неё вложены ещё 2 подкатегории с mdl_context.id=11 и 43, в последней и находится данный курс.

ЗЫ: Заметьте, что во второй записи contextlevel=40 - это уровень категории курсов.

Последнее число в path всегда будет равно mdl_context.id

depth - числовое выражение path. В path 5 чисел, поэтому depth=5. Проверка контрольной суммы улыбаюсь

А instanceid, в зависимости от contextlevel, укажет по какому id искать курс, категорию, пользователя, блок, модуль в соответствующих таблицах (mdl_course, mdl_course_categories…)

Вот так всё сложно и запутанно улыбаюсь