Сценарии публикации контента на lms.cdto.life
Портал: https://lms.cdto.life (Moodle 4.5)
Дата: 2026-02-13
Документ сохраняет общий сценарий публикации контента и его варианты для разных типов страниц и курсов. Используется при добавлении новых материалов и для воспроизводимости процесса.
1. Общая схема публикации
[Исходник в репозитории] → Конвертация (MD→HTML при необходимости) → Публикация в Moodle (ресурс «Страница»)
↓ ↓
Подготовка, согласование Курс + раздел (section)
↓ ↓
Сохранение в git Опционально: блок на главной
↓
Проверка (авто + ручная)
Общие предусловия: контейнер Moodle запущен; курс-приёмник создан в Moodle (shortname известен); при публикации из Markdown — на хосте установлен python3-markdown.
2. Сценарии по типам контента
2.1 Инструкция BigBlueButton → Moodle (одна страница в курсе «Академия CDTO»)
| Элемент | Значение |
|---|---|
| Курс | Академия CDTO (shortname: academy, akademiya-cdto) |
| Страница | Одна: «Инструкция по подключению BigBlueButton к Moodle» |
| Исходник | docs/setup/moodle-bigbluebutton-connection-instruction.md |
| Скрипт публикации | ./scripts/publish-bbb-instruction-to-moodle.sh [--dry-run] [--update] [--verify-seo] |
| PHP-модуль | moodle-publish-bbb-instruction.php (жёстко курс Академия CDTO, один заголовок) |
| Блок на главной | Не добавляется |
| Проверка | В конце скрипта — вывод VERIFY_URL; опционально --verify-seo → verify-moodle-page-seo.py |
| Документация | moodle-academy-publication-and-theme.md п. 2.4, DOCUMENTATION-UPDATE-AND-PUBLICATION-ORDER.md п. 4.1 |
Порядок: подготовить/обновить MD → запустить скрипт → открыть VERIFY_URL, сравнить с исходником.
2.2 Политика конфиденциальности и Правила использования (две страницы, курс «Права и обязанности», блок на главной)
| Элемент | Значение |
|---|---|
| Курс | Академия CDTO Права и обязанности (shortname: akademiya-cdto-prava, academy-prava) |
| Страницы | Две: «Политика конфиденциальности портала AI Академия CDTO (lms.cdto.life)», «Правила использования портала AI Академия CDTO (lms.cdto.life)» |
| Исходники | docs/setup/portal-policies/privacy-policy.md, docs/setup/portal-policies/terms-of-use.md |
| Скрипт публикации | ./scripts/publish-portal-policies-to-moodle.sh [--dry-run] [--update] |
| PHP-модуль | moodle-publish-portal-policy.php (--course, --title, --content-file) — универсальный для одной страницы в указанном курсе |
| Создание курса | moodle-create-course-prava.php (если курс ещё не создан) |
| Блок на главной | Да. Скрипт: moodle-add-frontpage-block-prava-links.php (блок «Права и обязанности» со ссылкой на курс) |
| Полный цикл | ./scripts/setup-portal-policies-and-frontpage-block.sh (курс + страницы + блок + проверка) |
| Проверка | ./scripts/verify-portal-policies-placement.sh (главная + курс; опционально с авторизацией) |
| Чек-лист | portal-policies-placement-checklist.md |
| Документация | portal-policies-ai-academy.md, portal-policies/README.md |
Порядок: согласовать шаблоны с юристом → при необходимости создать курс → публикация (или полный цикл одной командой) → автопроверка → ручная проверка по чек-листу.
2.3 Произвольная страница в выбранном курсе (универсальный сценарий)
Подходит для любой одной страницы в любом курсе, если известны shortname курса и путь к HTML/контенту.
| Элемент | Значение |
|---|---|
| Курс | Любой (shortname задаётся при вызове) |
| Страница | Одна, с произвольным названием |
| Исходник | Любой .md или .html; при .md — конвертировать в HTML (например тем же способом, что в publish-portal-policies или publish-bbb-instruction). |
| Публикация | Вручную через PHP в контейнере: |
| Команда | lxc exec moodle -- sudo -u www-data php /tmp/moodle-publish-portal-policy.php --moodle-dir=/var/www/moodle --course=SHORTNAME --title="Название страницы" --content-file=/path/to.html [--update] |
| Блок на главной | При необходимости — вручную в Moodle (Режим редактирования → Добавить блок → HTML) или отдельным скриптом по аналогии с moodle-add-frontpage-block-prava-links.php. |
| Проверка | Открыть URL курса и страницы в браузере; при необходимости добавить вызов в verify-скрипт или аналог. |
Пример для новой инструкции в курсе «Академия CDTO»:
- Положить исходник, например
docs/setup/my-instruction.md. - Сконвертировать в HTML (локально или в скрипте).
- Скопировать HTML и
moodle-publish-portal-policy.phpв контейнер. - Вызвать PHP:
--course=akademiya-cdto --title="Моя инструкция" --content-file=/tmp/my-instruction.html.
Для повторяемого использования оформить обёртку .sh по аналогии с publish-portal-policies-to-moodle.sh (исходник, курс, заголовок — параметры или константы).
3. Сводная таблица скриптов публикации
| Скрипт | Курс (shortname) | Страницы | Блок на главной | Проверка |
|---|---|---|---|---|
publish-bbb-instruction-to-moodle.sh |
academy / akademiya-cdto | 1 (BBB-инструкция) | Нет | VERIFY_URL, опц. verify-seo |
publish-portal-policies-to-moodle.sh |
akademiya-cdto-prava / academy-prava | 2 (политика, правила) | Нет (блок — в setup-portal-policies-and-frontpage-block.sh) | — |
setup-portal-policies-and-frontpage-block.sh |
akademiya-cdto-prava | 2 + создание курса + блок | Да | verify-portal-policies-placement.sh |
moodle-publish-portal-policy.php (напрямую) |
любой (--course=) | 1 (--title, --content-file) | Нет | Вручную |
4. Добавление нового сценария (новая страница/тип контента)
- Определить: курс (существующий или создать), название страницы, исходник (путь в репо).
- Публикация:
- если один курс и одна страница по шаблону BBB — скопировать логику
publish-bbb-instruction-to-moodle.shи поменять SRC_MD, курс, заголовок; - если универсально — использовать
moodle-publish-portal-policy.phpс нужными--course,--title,--content-fileи при необходимости обёртку .sh. - Блок на главной: если нужна ссылка с главной — либо ручное добавление блока в Moodle, либо скрипт по аналогии с
moodle-add-frontpage-block-prava-links.php(жёстко или с параметрами). - Проверка: curl по URL страницы/курса или скрипт проверки (при необходимости расширить
verify-portal-policies-placement.shили вынести общие проверки в отдельный скрипт). - Документация: добавить строку в п. 2 и строку в таблицу п. 3 этого документа; при необходимости — отдельный чек-лист (по аналогии с portal-policies-placement-checklist.md).
5. Связанные документы
- Публикация на портал Академии CDTO (метод, роли, чек-лист)
- Разрешительные и уведомительные документы портала
- Чек-лист: размещение контента (политика и правила) и проверка
- Порядок обновления и публикации документации
- Правило Cursor:
.cursor/rules/lms-publication.mdc— список скриптов публикации
Сценарий сохранён для воспроизводимости и расширения под новые страницы и курсы.
Технический директор: AI Denkart
Владелец ресурсов: CDTO Dkvark