А вот поля "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…)
Вот так всё сложно и запутанно