Последнее понятие этапа — и единственное, которое придётся обдумать заранее. Шаблон можно переписать за вечер, чанк переименовать за минуту. Дерево страниц перестраивать больно: вместе с ним меняются все адреса сайта.
Страница, документ, ресурс
В админке Evolution то, что посетитель видит как страницу, называется ресурсом (иногда — документом). Три слова про одно и то же: ресурс — это запись в базе данных, у которой есть заголовок, текст, выбранный шаблон и место в дереве.
Дерево видно слева в админке и устроено точно как папки на компьютере: у каждого ресурса есть родитель, а у родителя могут быть дети. Верхний уровень — главная страница, она же корень.
Главная
├── Этапы
│ ├── 1. Зачем этот проект
│ ├── 2. Выбор инструментов
│ │ ├── Что такое CMS
│ │ ├── Шаблоны
│ │ ├── Чанки
│ │ ├── Сниппеты и TV-поля
│ │ └── Структура ресурсов
│ ├── 3. Дизайн шаблонов
│ ├── 4. Установка CMS
│ ├── 5. Натягивание вёрстки
│ └── 6. Хостинг и публикация
├── Мануалы
│ ├── Мегаменю
│ └── ... ещё одиннадцать
├── Теория
│ └── ... пятнадцать страниц
└── Контакты
Страница, которую вы читаете, — пятый ребёнок ресурса «Выбор инструментов», который сам ребёнок «Этапов». Эта вложенность не украшение админки: из неё движок получает три вещи сразу.
Из дерева получается адрес
У каждого ресурса есть псевдоним (alias) — короткое слово латиницей, которым он называется в адресной строке. Полный адрес собирается из псевдонимов всех родителей по цепочке:
Этапы alias: etapy
Выбор инструментов alias: vybor-instrumentov
Структура ресурсов alias: struktura-resursov
Адрес: /etapy/vybor-instrumentov/struktura-resursov/
Такие адреса называют ЧПУ —
человекопонятные УРЛы. Без них Evolution отдавала бы
страницу по номеру: index.php?id=27. Работает
и так, но по адресу невозможно понять, куда он ведёт,
а поисковики ЧПУ любят. Включается это одной настройкой
в админке, на четвёртом этапе дойдём.
Псевдоним лучше не менять потом
Адрес страницы уже мог разойтись по закладкам, мессенджерам и поисковой выдаче. Меняете псевдоним — все старые ссылки ведут в никуда. Если менять всё-таки пришлось, со старого адреса ставят переадресацию на новый. Проще один раз подумать над именем.
Правила для псевдонима те же, что для имени файла: только латиница в нижнем регистре, цифры и дефисы. Русские буквы Evolution переведёт в транслит сама, но лучше писать сразу руками — автоматический перевод иногда даёт неожиданное.
Из дерева получается меню
Помните вызов DocLister с прошлой страницы? Он не знает ни одной ссылки заранее — он читает дерево. Боковое меню слева от этого текста в CMS превратится в одну строку:
[[DocLister? &parents=`[*parent*]` &tpl=`sideItem`]]
[*parent*] — это номер родителя текущей
страницы. То есть: «выведи всех детей моего родителя чанком
sideItem». Добавили в админке шестую страницу этапа — она
появилась в боковом меню всех пяти соседей. Ничего не правя
руками.
Порядок пунктов задаётся полем menuindex: чем
меньше число, тем выше пункт. В дереве страницы можно просто
перетаскивать мышью, а menuindex движок пересчитает
сам.
Из дерева получаются крошки
Путь наверху страницы — «Главная / Этапы / Выбор инструментов / Структура ресурсов» — это тоже дерево, только прочитанное снизу вверх. Сниппет берёт текущий ресурс, поднимается к родителю, к родителю родителя и так до корня.
Значит, крошки не нужно прописывать руками ни на одной странице сайта. Как это устроено изнутри и что за микроразметку к ним добавляют, разбирается в мануале про хлебные крошки.
Поля ресурса, которые управляют деревом
| Поле | Что задаёт | На что влияет |
|---|---|---|
parent |
Родитель — где страница лежит в дереве | Адрес, меню, крошки |
alias |
Псевдоним для адреса | Адрес страницы |
menuindex |
Порядковый номер среди соседей | Порядок пунктов в меню |
menutitle |
Короткое название для меню | Текст пункта, если заголовок длинный |
hidemenu |
Прятать ли страницу из меню | Страница есть, в меню её нет |
published |
Опубликована или черновик | Видит ли страницу посетитель |
isfolder |
Контейнер: у страницы есть дети | Значок папки в дереве |
Контейнер — обычная страница
Evolution ставит значок папки любому ресурсу, у которого
появились дети. Это не особый тип: «Этапы» — полноценная
страница со своим текстом и шаблоном, просто внутри
неё лежат ещё шесть. Разделу можно и не давать
содержимого, но лучше дать: пустая страница по адресу
/etapy/ выглядит как ошибка сайта.
Как дерево выглядит в админке
-
Весь сайт — один раскрытый список
Слева дерево этого сайта. Вложенность видна сразу: этапы внутри раздела, страницы внутри этапа. В скобках у названия — номер ресурса, им страницу зовут в ссылках и вызовах сниппетов.
-
Поля из таблицы — на второй закладке
Закладка «Настройка страницы» в карточке ресурса. Здесь и «Публиковать», и «Контейнер», и «Участвует в URL» — те самые переключатели, которыми страница попадает в дерево, в адрес и в меню.
Как продумать дерево заранее
Выпишите все страницы будущего сайта списком — хоть в блокноте, хоть на бумаге. Потом сгруппируйте и проверьте по трём вопросам:
-
Читается ли адрес вслух?
/etapy/hosting/— понятно./p/2/14/— нет. - Не глубже трёх уровней? Четвёртый уровень означает адрес в пять слов и крошки, которые не помещаются на телефоне.
- Понятно ли, куда класть новую страницу? Если для очередного материала подходят сразу два раздела, деление выбрано неудачно.
У этого сайта дерево описано в спецификации целиком, до единой страницы, ещё до первой строчки кода. Именно поэтому его удалось сначала свёрстать папками на диске — структура папок повторяет будущее дерево ресурсов один в один.
Папки на диске = ресурсы в CMS
Верстая статику, складывайте каждую страницу в свою папку
с файлом index.html: путь
etapy/hosting/index.html открывается
по адресу /etapy/hosting/ — ровно так же,
как будет в CMS. При переезде ни один адрес не изменится,
и ни одна ссылка не сломается.
Что теперь понятно
- Ресурс — это страница: запись в базе с заголовком, текстом, шаблоном и местом в дереве
- Адрес складывается из псевдонимов всех родителей по цепочке
- Меню и хлебные крошки строятся по дереву, руками их не пишут
- Дерево продумывают до первой страницы: менять адреса потом дорого
Этап пройден
Четыре слова, которые пугали в начале, — шаблон, чанк, сниппет, TV-поле — теперь означают понятные вещи, и к ним добавилось пятое: ресурс. Этого словаря хватит до конца проекта. Дальше — дизайн: какие бывают типы страниц и как объяснить нейросети, что вы хотите увидеть.