Внутренняя страница сложнее главной ровно в одном: у неё есть части, зависящие от места в дереве. Крошки, боковое меню, кнопки «Назад» и «Вперёд» — всё это должно считаться само, иначе смысла в CMS нет.

Скелет шаблона

Он короткий. Всё длинное разъехалось по чанкам и сниппетам, и это нормальный вид шаблона в Evolution.

Шаблон внутренней страницы целиком
{{sprite}}
{{header}}

<main class="page__main" id="main">

  <section class="page-header page-header--dark page-header--inner">
    <div class="container">
      [[Breadcrumbs]]
      <h1 class="page-header__title">[*pagetitle*]</h1>
      <p class="page-header__lead">[*introtext*]</p>
    </div>
  </section>

  <section class="section">
    <div class="container">
      <div class="page-layout">
        [[DocLister? &parents=`[*parent*]` &tpl=`sideItem`]]
        <article class="article">[*content*]</article>
      </div>
    </div>
  </section>

</main>

{{footer}}

Обратите внимание на [*parent*] в вызове меню: это номер родительской страницы. Одна и та же строка шаблона на странице этапа 2 выведет список страниц второго этапа, а на странице этапа 4 — четвёртого. Меню считается от места, а не задаётся руками.

Что берётся откуда

Полезно один раз выписать это таблицей и держать перед глазами: половина вопросов при переносе — это вопрос «а вот эта часть откуда должна взяться».

Части внутренней страницы и их источник
Часть Откуда берётся
Заголовок и текст Поля карточки: [*pagetitle*], [*content*]
Пояснение под заголовком Поле «Введение» — [*introtext*]
Хлебные крошки Сниппет: строит путь от корня до текущей страницы
Боковое меню раздела Сниппет от [*parent*]
Назад и вперёд Сниппет соседних ресурсов того же уровня
Оглавление статьи Ваш скрипт: собирает заголовки в браузере, движок не участвует

Оглавление переносить не нужно

Оно собирается в браузере из заголовков статьи, а значит работает одинаково и в статической вёрстке, и в CMS. Просто проверьте, что файл скрипта подключён в чанке шапки — и всё.

Когда полей карточки не хватает

У мануала в шапке три строки условий: что получится, сколько времени, что нужно знать. Стандартных полей для такого нет — зато можно добавить свои. Они называются TV-поля, и создаются они в разделе «Элементы» парой щелчков.

Созданное поле выводится так же, как обычное: [*vremya*]. Разница только в том, что имя придумали вы, — и в том, что поле нужно разрешить тем шаблонам, где оно используется, иначе в карточке страницы его просто не будет видно. Подробнее — в разделе про сниппеты и TV-поля.

Две страницы-исключения

Контакты и страница 404 в общий шаблон не помещаются, но и своих шаблонов почти не требуют.

  • Контакты. Это та же внутренняя страница, только вместо статьи стоит форма. Проще всего оставить общий шаблон, а форму положить в чанк и вставить его в содержимое страницы: движок разворачивает чанки и в тексте ресурса, не только в шаблоне.
  • Ошибка 404. Ей нужен свой шаблон, потому что ни крошек, ни соседей у неё быть не может — неизвестно, откуда пришёл посетитель. Шаблон короткий: шапка, подвал и короткое сообщение со ссылками на разделы. Номер этой страницы указывается в настройках системы, иначе движок про неё не узнает.

Что обычно ломается

  • Страница пустая. Скорее всего, ошибка в имени чанка: движок не находит {{headr}} и выводит пустоту. Имена чанков чувствительны к регистру.
  • Стили не подключились. Путь остался относительным. В чанке он должен начинаться со слэша.
  • Правка не появилась. Очистите кеш — движок отдаёт собранную ранее страницу.
  • Меню выводит лишнее. В дереве есть страницы, которым в меню не место: например, 404. У ресурса для этого есть галочка «скрыть из меню».

Что просить у нейросети

Мой запрос

Evolution CMS 3. Нужны хлебные крошки: путь от главной до текущей страницы, последний пункт — не ссылка, с микроразметкой BreadcrumbList.

Вот моя статическая разметка крошек, классы менять нельзя:

[вставьте разметку]

Предложи, каким сниппетом это сделать в Evolution 3, и дай вызов с параметрами плюс чанки под мою разметку. Если нужного сниппета в поставке нет — скажи прямо и предложи вариант на несколько строк кода.

Что должно получиться

  • Один шаблон обслуживает все внутренние страницы
  • Крошки, боковое меню и переходы к соседям считаются из дерева
  • Новая страница добавляется выбором шаблона, без правки кода
  • Особые строки шапки выведены через свои TV-поля