Главная страница 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.
Дополнительно при необходимости:
- Бэкап БД и moodledata (по регламенту проекта): дамп БД Moodle и архив каталога moodledata — см. backup.md, moodle-phase7-postinstall-checklist.md.
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) — пошагово
- Откройте https://lms.cdto.life и войдите под учётной записью администратора.
- Перейдите по прямой ссылке на настройки главной: https://lms.cdto.life/admin/settings.php?section=frontpage
(или: в левом меню Управление сайтом → Сайт → Настройки → Front page). - Заполните:
- Название сайта — короткое название с учётом SEO (например «LMS cdto.life» или «Обучение — lms.cdto.life»).
- Краткое описание сайта — 1–2 предложения о назначении (например «Платформа обучения на базе Moodle 4.5»).
- В том же разделе включите или выключите:
- «Показывать описание сайта на главной» — по желанию (рекомендуется включить).
- «Показывать список курсов на главной» — по видению: включить, если курсы должны быть видны на главной.
- Нажмите Сохранить внизу страницы.
- (По желанию) Куда перенаправлять пользователя после входа:
Управление сайтом → Пользователи → Права → Политики сайта или настройки по умолчанию для домашней страницы пользователя — выберите «Главная страница сайта» или «Панель управления» / «Обзор курсов» и сохраните.
4.3 Задача 1.4 (#68) — пошагово
- Откройте главную: https://lms.cdto.life/ (вы должны быть под администратором).
- Включите режим редактирования: нажмите Редактировать (вверху справа или в меню; в английском интерфейсе — Turn editing on).
- Добавьте блоки:
- В левой или правой колонке найдите выпадающее меню «Добавить блок» (или Add a block).
- Добавьте по очереди: Вход (Login), Календарь (Calendar), Новости (Latest news), Навигация (Navigation). При необходимости — Курсы (Courses), HTML.
- Разместите блоки перетаскиванием (иконка «переместить» у заголовка блока):
- Слева: Вход, Календарь.
- Справа: Новости, Навигация (и при необходимости HTML с правилами/контактами).
- Сохранять отдельно не нужно — раскладка сохраняется автоматически при перетаскивании.
- Выключите режим редактирования (кнопка Закончить редактирование / 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.