Статические секции
Статическая секция — это контентный блок, одинаковый на многих страницах сайта: сквозной блок с призывом записаться, баннер акции, блок «нам доверяют», карточка с контактами. Её контент хранится не в самой странице, а в одном общем месте — ресурсе «Типы страниц». Поэтому такую секцию правят один раз, и изменения сразу применяются ко всем страницам, где она выведена.
Сравните с обычной секцией: у обычной контент свой на каждой странице, у статической — общий.
Это не про шапку и подвал
Сквозные элементы каркаса — саму шапку, подвал, меню — обычно держат в файле-обёртке (wrapper), а не размечают как секции страницы (см. Разметка вёрстки). Статические секции нужны для повторяющихся контентных блоков внутри страниц, которые на нескольких страницах одинаковы и которые удобно править в одном месте.
Как пометить секцию статической
В разметке шаблона добавьте секции атрибут data-mpc-static (рядом с data-mpc-section):
<section data-mpc-section data-mpc-static data-mpc-name="Блок акции">
<h2 data-mpc-field="promo_title">Скидка 20% до конца месяца</h2>
<p data-mpc-field="promo_text">Оставьте заявку и получите расчёт стоимости</p>
<a href="#form" data-mpc-field="promo_link">Получить скидку</a>
</section>После нарезки эта секция:
- получит в своей конфигурации признак
is_static(галочку «статическая» в гриде MIGX); - будет брать контент из ресурса «Типы страниц», а не из конкретной страницы.
Подсказка
Признак статичности можно поставить и вручную — галочкой is_static в настройках секции (грид MIGX). Но правильнее задавать его в разметке через data-mpc-static: тогда источник истины остаётся в файле-шаблоне, и при повторной нарезке ничего не теряется.
Где хранится и правится контент
Контент всех статических секций лежит в ресурсе «Типы страниц» (он же staticBlocksPage; его id задаётся системной настройкой mpc_static_block_page_id). Откройте этот ресурс в админке, найдите нужную секцию в гриде MIGX и отредактируйте значения — изменения применятся ко всем страницам сразу.
Когда видно изменение
Контент статической секции подставляется в страницу при каждом запросе (а не запекается на нарезке, как у обычной секции). Благодаря этому правка статического блока отражается на всех страницах сразу — после сброса кэша. Как очистить кэш — см. Нарезка → Кэш.
Это и есть главный смысл статических секций: сквозной блок не нужно дублировать и править на каждой странице — есть одно место. Поменяли текст акции в «Типах страниц» — он обновился на всех страницах, где этот блок выведен.
Настройки и стили под конкретную страницу
Хотя контент статической секции общий, её положение и настройки можно переопределить на отдельной странице. Настройки секции (кроме самого контента) — например порядок вывода position и скрытие hide_section — каскадируются: по умолчанию берутся из «Типов страниц», но если задать их у секции на конкретной странице, там применится своё значение.
Например: блок акции на всех страницах одинаковый, но на главной его нужно вывести выше остальных секций, а на странице оплаты — вовсе скрыть. Контент блока остаётся общим (правится в «Типах страниц»), а position на главной и hide_section на странице оплаты задаются у секции прямо на этих страницах — переопределяя общие значения только для них.
Каскад
Действует тот же каскад, что и для остального контента компонента: «Типы страниц» → страница, где значения страницы перекрывают общие. Подробнее об уровнях наследования — ниже, в разделе «Уровни наследования».
Лексиконы статических секций
Если на сайте включены лексиконы (мультиязычность), переводы статических секций хранятся отдельно от переводов обычных страниц — на уровне «Типов страниц». Это логично: текст сквозного блока общий для всех страниц, значит и его перевод должен быть один на весь сайт, а не дублироваться в каждом ресурсе.
При нарезке переводимые тексты статической секции выносятся в отдельный лексикон-файл статических блоков, а в плейсхолдеры добавляется модификатор | lexicon — так же, как для обычных секций. Подробнее о механизме переводов — в разделе Лексиконы и мультиязычность.
Переключение: обычная ↔ статическая
Сделать секцию статической или вернуть её в обычные можно двумя путями:
- через разметку — добавить или убрать
data-mpc-staticв файле-шаблоне и заново нарезать. Это основной способ: источник истины — шаблон. - галочкой
is_staticв гриде секции — быстрее, но без правки шаблона при следующей нарезке поведение задаст разметка.
При переводе секции в статическую её значения переносятся в общий ресурс «Типы страниц», а переводы — в лексикон статических блоков. При обратном переводе в обычную секция снова начинает хранить контент на каждой странице, а её ключи при нарезке записываются в обычный лексикон страницы.
Переводы при этом не теряются
Ранее сохранённые переводы статической секции из файла статических блоков не удаляются автоматически при превращении секции в обычную — в худшем случае там остаются лишние (неиспользуемые) ключи. Сам файл статических блоков загружается на всех страницах, поэтому потери перевода при переключении не происходит. Чтобы данные и переводы разложились по своим местам, после смены способа в разметке выполните нарезку.
Уровни наследования
Статические секции — частный случай общего каскада компонента. Контент в MigxPageConfigurator наследуется по трём уровням, где каждый следующий перекрывает предыдущий:
- Глобальный — ресурс «Типы страниц» (
staticBlocksPage). Здесь лежат статические секции, общие для всего сайта. - Тип страницы — ресурс-донор для шаблона (дочерний к «Типам страниц», с тем же шаблоном). Задаёт значения по умолчанию для всех страниц этого типа.
- Ресурс — конкретная страница. Перекрывает значения типа и глобального уровня.
Так, у страницы с пустой конфигурацией секции и тексты подтянутся с уровня типа, а статические блоки — с глобального уровня. Это касается и контента секций, и лексиконов. Подробнее о наследовании по типам страниц — в разделе Копирование секций.
