Сценарии публикации контента на 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-seoverify-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»:

  1. Положить исходник, например docs/setup/my-instruction.md.
  2. Сконвертировать в HTML (локально или в скрипте).
  3. Скопировать HTML и moodle-publish-portal-policy.php в контейнер.
  4. Вызвать 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. Добавление нового сценария (новая страница/тип контента)

  1. Определить: курс (существующий или создать), название страницы, исходник (путь в репо).
  2. Публикация:
  3. если один курс и одна страница по шаблону BBB — скопировать логику publish-bbb-instruction-to-moodle.sh и поменять SRC_MD, курс, заголовок;
  4. если универсально — использовать moodle-publish-portal-policy.php с нужными --course, --title, --content-file и при необходимости обёртку .sh.
  5. Блок на главной: если нужна ссылка с главной — либо ручное добавление блока в Moodle, либо скрипт по аналогии с moodle-add-frontpage-block-prava-links.php (жёстко или с параметрами).
  6. Проверка: curl по URL страницы/курса или скрипт проверки (при необходимости расширить verify-portal-policies-placement.sh или вынести общие проверки в отдельный скрипт).
  7. Документация: добавить строку в п. 2 и строку в таблицу п. 3 этого документа; при необходимости — отдельный чек-лист (по аналогии с portal-policies-placement-checklist.md).

5. Связанные документы


Сценарий сохранён для воспроизводимости и расширения под новые страницы и курсы.

Технический директор: AI Denkart
Владелец ресурсов: CDTO Dkvark