Главная страница LMS: принципы интерфейса, файлы темы, сохранение, задачи 1.3 и 1.4

Проект: Главная страница LMS (lms.cdto.life)
Задачи Redmine: #67 (1.3), #68 (1.4)
Дата: 2026-02-12


1. Принципы разработки интерфейса (по документации проекта)

  • Инструмент: Cursor IDE (Composer для задач по промпту), при необходимости Theme Tester в Moodle для проверки компонентов. См. moodle-theme-development-tool-selection.md.
  • Темы Moodle 4.5: наследуют от Boost (Bootstrap 5). Стандартные темы в контейнере: boost, moove, adaptable, bootstrap. См. moodle-themes.md.
  • Workflow: задачи в Redmine → реализация в Cursor → проверка (Theme Tester, браузер) → приёмка. Обоснование решений фиксировать в описании или комментариях к задаче.
  • Стиль кода: Moodle coding style. При правках темы — только нужные файлы, без изменения ядра Moodle.
  • Видение главной: структура и блоки заданы в lms-front-page-vision.md. Задачи 1.3 и 1.4 выполняются без участия заказчика: предпочтительно — скриптами CLI из репозитория (настройка Front page и блоков без веб-админки), см. lms-front-page-without-admin-ui.md. Альтернатива — внесение изменений через админку Moodle (раздел 4 этого документа). Правка файлов темы — этап 2 (кастомный дизайн).

2. Список файлов и директорий для редактирования темы

Путь к темам в контейнере Moodle: /var/www/moodle/theme/. Для конкретной темы — /var/www/moodle/theme/<имя_темы>/.

2.1 Стандартная структура темы Moodle 4.x (каталоги и ключевые файлы)

Путь (от корня темы) Назначение
config.php Имя темы, родитель, SCSS, макеты (layouts), регионы блоков.
version.php Версия плагина темы.
settings.php Настройки темы в админке (цвета, шрифты, опции).
lib.php Callback-функции (prescss, после компиляции SCSS и т.д.).
lang/ Строки локализации (например lang/en/theme_<name>.php).
layout/ PHP-файлы макетов страницы (columns1.php, columns2.php, frontpage.php и т.д.).
templates/ Mustache-шаблоны (переопределение из родительской темы: header.mustache, footer.mustache, блоки, форма входа и т.д.).
scss/ SCSS-файлы: pre.scss, post.scss, preset/ (пресеты: default, dark). Переменные и переопределения Bootstrap.
classes/output/ Классы renderer (при необходимости переопределение вывода).
pix/ Изображения темы (логотип, иконки).
amd/src/ JavaScript-модули (при необходимости).
style/ Устаревшие CSS (legacy); в новых темах предпочтительно SCSS.

2.2 Файлы, наиболее часто меняемые при доработке главной и входа

  • config.php — регионы блоков для макета главной (frontpage), при необходимости отдельный layout для front page.
  • layout/frontpage.php или layout/columns*.php — если тема задаёт отдельный макет для главной; иначе используется общий макет с регионами.
  • templates/ — переопределение шапки, футера, блока входа (например core/loginform.mustache или шаблон блока Login).
  • scss/pre.scss, scss/post.scss — цвета, отступы, вид блоков на главной.
  • settings.php — настройки, видимые в «Управление сайтом → Внешний вид → Настройки темы».

2.3 Расположение в контейнере (для копирования/бэкапа)

  • База Moodle: /var/www/moodle (контейнер moodle).
  • Темы: /var/www/moodle/theme/moove, /var/www/moodle/theme/adaptable, /var/www/moodle/theme/boost и т.д.
  • При разработке своей темы (например theme_cdto) — каталог /var/www/moodle/theme/cdto; в репозитории тему можно хранить отдельно и деплоить в этот каталог.

3. Сохранение состояния перед внесением изменений

По правилу проекта (BACKUP-BEFORE-CHANGES.md) перед изменениями в конфигурации и окружении выполнить сохранение состояния.

3.1 Общее сохранение (конфиги, другие контейнеры)

cd /home/cdto/DENKART/scripts
./save-state-before-migration.sh pre-lms-front-page-changes

Создаётся директория config/snapshots/state-pre-lms-front-page-changes-<timestamp>/ с копиями конфигов (iptables, nginx, haproxy), конфигурациями LXD и снимками контейнеров nginx-reverse-proxy, BBB-CONT22-1, docs-denkart. Контейнер moodle в этот скрипт не входит.

3.2 Откат при изменениях внутри Moodle (контейнер moodle)

Контейнер moodle включён в скрипт сохранения (п. 3.1): сохраняются конфиг LXD и конфиг Nginx из контейнера, создаётся LXD-снимок. Снимок moodle может занять больше времени и места — порядок контейнеров в скрипте: сначала лёгкие (proxy, docs), затем BBB и moodle.

Дополнительно при необходимости:

3.3 После сохранения — Git

cd /home/cdto/DENKART
git add -A
git status
git commit -m "Состояние перед изменениями главной LMS. Снимок: state-pre-lms-front-page-changes-<timestamp>"
git push origin develop

4. Внесение изменений через админку Moodle (1.3 и 1.4) — запасной вариант

Если скрипты без админки не используются, изменения можно внести в веб-интерфейсе Moodle (без правки файлов темы). Предпочтительный способ без участия заказчика: lms-front-page-without-admin-ui.md.

4.1 Прямые ссылки (откройте в браузере после входа под администратором)

Что сделать Ссылка
Войти на сайт LMS https://lms.cdto.life
Настройки главной страницы (Front page) https://lms.cdto.life/admin/settings.php?section=frontpage
Главная страница (чтобы включить редактирование блоков) https://lms.cdto.life/

4.2 Задача 1.3 (#67) — пошагово

  1. Откройте https://lms.cdto.life и войдите под учётной записью администратора.
  2. Перейдите по прямой ссылке на настройки главной: https://lms.cdto.life/admin/settings.php?section=frontpage
    (или: в левом меню Управление сайтомСайтНастройкиFront page).
  3. Заполните:
  4. Название сайта — короткое название с учётом SEO (например «LMS cdto.life» или «Обучение — lms.cdto.life»).
  5. Краткое описание сайта — 1–2 предложения о назначении (например «Платформа обучения на базе Moodle 4.5»).
  6. В том же разделе включите или выключите:
  7. «Показывать описание сайта на главной» — по желанию (рекомендуется включить).
  8. «Показывать список курсов на главной» — по видению: включить, если курсы должны быть видны на главной.
  9. Нажмите Сохранить внизу страницы.
  10. (По желанию) Куда перенаправлять пользователя после входа:
    Управление сайтомПользователиПраваПолитики сайта или настройки по умолчанию для домашней страницы пользователя — выберите «Главная страница сайта» или «Панель управления» / «Обзор курсов» и сохраните.

4.3 Задача 1.4 (#68) — пошагово

  1. Откройте главную: https://lms.cdto.life/ (вы должны быть под администратором).
  2. Включите режим редактирования: нажмите Редактировать (вверху справа или в меню; в английском интерфейсе — Turn editing on).
  3. Добавьте блоки:
  4. В левой или правой колонке найдите выпадающее меню «Добавить блок» (или Add a block).
  5. Добавьте по очереди: Вход (Login), Календарь (Calendar), Новости (Latest news), Навигация (Navigation). При необходимости — Курсы (Courses), HTML.
  6. Разместите блоки перетаскиванием (иконка «переместить» у заголовка блока):
  7. Слева: Вход, Календарь.
  8. Справа: Новости, Навигация (и при необходимости HTML с правилами/контактами).
  9. Сохранять отдельно не нужно — раскладка сохраняется автоматически при перетаскивании.
  10. Выключите режим редактирования (кнопка Закончить редактирование / Turn editing off) и проверьте вид страницы как гость (выйдите и откройте https://lms.cdto.life) и как авторизованный пользователь.

4.4 Если меню на русском

  • Управление сайтом = Site administration
  • СайтНастройкиFront page = настройки главной страницы
  • Редактировать / Закончить редактирование = Turn editing on / off
  • Добавить блок = Add a block

Если интерфейс на английском, те же пункты есть в том же порядке в меню слева.


5. Задача 1.3 (#67): настройка Front page в Moodle по видению

Выполняется в админке Moodle (без редактирования файлов темы). Краткая самостоятельная инструкция — раздел 4 выше.

5.1 Шаги (сводка)

Действие Где в Moodle
1 Войти как администратор https://lms.cdto.life
2 Открыть настройки главной страницы Прямая ссылка: admin/settings.php?section=frontpage или Управление сайтомСайтНастройкиFront page
3 Задать название сайта Поле «Название сайта» — с учётом SEO (видение, раздел 5)
4 Задать краткое описание сайта Поле «Краткое описание сайта» — 1–2 предложения о назначении LMS
5 Выбрать, что показывать на главной Включить/выключить «Показывать описание сайта на главной», «Показывать список курсов на главной» — по видению
6 Решение о перенаправлении после входа Управление сайтомПользователиПрава / политики — главная или панель управления. Согласовать с заказчиком (CDTO)
7 При необходимости — политики индексации Разрешить индексацию поисковиками (opentowebcrawlers), если нужно SEO

5.2 Критерий приёмки

На главной отображаются заданные название и краткое описание; список курсов и описание включены/выключены согласно видению; поведение после входа зафиксировано.


6. Задача 1.4 (#68): расстановка блоков на главной по видению

Выполняется в режиме редактирования главной страницы Moodle. Краткая самостоятельная инструкция — раздел 4 выше.

6.1 Шаги (сводка)

Действие Где в Moodle
1 Открыть главную страницу https://lms.cdto.life
2 Включить режим редактирования Кнопка «Редактировать» (или «Turn editing on»)
3 Добавить блоки (если ещё нет) «Добавить блок» → Вход (Login), Календарь, Новости, Навигация; при необходимости Курсы, HTML
4 Разместить блоки по раскладке видения Левая колонка: Вход, Календарь. Правая колонка: Новости, Навигация; при необходимости HTML. Центр задаётся настройками 1.3
5 Сохранить и проверить Выключить режим редактирования; проверить вид для гостя и пользователя; при необходимости мобильный вид

6.2 Критерий приёмки

Раскладка блоков соответствует lms-front-page-vision.md (п. 3.2); блок «Вход» заметен для гостей; календарь, новости, навигация на месте.


7. Связь с Redmine

  • #67: описание задачи и комментарий с обоснованием выбранных настроек Front page (название, описание, список курсов, перенаправление).
  • #68: комментарий с перечнем добавленных блоков и их расположением (лево/право/центр).

После выполнения 1.3 и 1.4 — обновить статусы задач и при необходимости этапа 1 в плане lms-main-page-development-plan.md.