Как организовать разбивку на подтемы внутри модуля? Если в каждом разделе уроков больше 4-5, то лучше разделить на подтренинги. А если всего по 2-3 урока, то это лишь усложнит навигацию: сначала нужно зайти в тренинг, потом в модуль, потом в раздел и только потом в нужный урок.
Для случаев, когда общее количество уроков модуля не больше 20-25 (иначе вместо сложной навигации будет долгое листание), решил использовать заголовки в списке уроков, которые будут «отбивать» блоки уроков модуля по темам или по неделям.

Для этого с помощью нейросети набросал простой и удобный скрипт:
document.addEventListener("DOMContentLoaded", function () {
const headers = [
{ id: "000000000", title: "Раздел 1. Название раздела" },
{ id: "000000000", title: "Раздел 2. Название раздела" },
{ id: "000000000", title: "Раздел 3. Название раздела" },
{ id: "000000000", title: "Раздел 4. Название раздела" },
{ id: "000000000", title: "Раздел 5. Название раздела" },
];
headers.forEach(header => {
const lessonElement = document.querySelector(`li[data-lesson-id="${header.id}"]`);
if (lessonElement) {
const h3 = document.createElement("h3");
h3.textContent = header.title;
h3.classList.add("submodule-heading"); // если нужно стилизовать
lessonElement.parentNode.insertBefore(h3, lessonElement);
}
});
});
Добавляя и удаляя строки с идентификаторами уроков, вы можете добавить столько заголовков, сколько вам нужно. Вместо нулей подставляете идентификатор урока, перед которым должен быть заголовок. И, соответственно, в кавычках пишете нужный текст.
Узнать идентификатор урока можно или в исходном коде страницы через инспектор вашего браузера — вам нужен атрибут data-lesson-id="000000000"
. Или из ссылки страницы урока:
.../pl/teach/control/lesson/view?id=000000000&editMode=0
Сам скрипт вставьте в настройках вида (кнопка Действия — Настроить вид) нужного тренинга или подтренинга с помощью блока JavaScript. В любом месте, но лучше в самом низу.