Skip to content
  1. Компоненты
  2. MigxPageConfigurator
  3. Копирование секций

Копирование секций

Слово «копирование» в компоненте применимо к двум разным задачам:

  • Вывести одну и ту же секцию дважды на странице — с одинаковой вёрсткой, но своим контентом в каждой копии. Делается в разметке атрибутом data-mpc-copy.
  • Наполнить страницу секциями другого ресурса — взять набор секций «типа страницы» и положить его в текущий ресурс. Делается кнопками в гриде mpc_config.

Разберём обе.

Копия секции в разметке (data-mpc-copy)

Секции на странице различаются по машинному имени data-mpc-section. Если вывести две секции с одинаковым data-mpc-section, при сохранении вторая перепишет первую — они схлопнутся в одну (см. Разметка вёрстки). Чтобы вывести одну и ту же секцию дважды и дать каждой свой контент, вторую помечают атрибутом data-mpc-copy и задают ей собственный префикс переводов data-mpc-lexicon.

Вход — оригинал и копия в шаблоне:

html
<!-- оригинал -->
<section data-mpc-section="features" data-mpc-name="Преимущества">
    <h2 data-mpc-field="title">Наши преимущества</h2>
    <p data-mpc-field="text">Работаем с 2010 года</p>
</section>

<!-- копия: та же вёрстка, свой контент и переводы -->
<section data-mpc-section="features" data-mpc-copy data-mpc-lexicon="features_demo" data-mpc-name="Преимущества (тариф Демо)">
    <h2 data-mpc-field="title">Преимущества тарифа Демо</h2>
    <p data-mpc-field="text">Попробуйте бесплатно 14 дней</p>
</section>

Выход после нарезки:

  • файл секции (features.tpl) нарезается один раз — из оригинала; копия переиспользует тот же файл, повторно он не пишется;
  • в гриде mpc_config появляются две секции — «Преимущества» и «Преимущества (тариф Демо)» — у каждой свой контент;
  • переводы тоже раздельные: оригинал пишет их под префиксом features, копия — под features_demo.

Копии обязательно нужен свой data-mpc-lexicon

Именно разный префикс переводов разводит оригинал и копию в две отдельные секции. Если оставить копии тот же префикс, что и у оригинала (по умолчанию он равен имени секции), их данные склеятся, и при сохранении одна перепишет другую. Подробнее про data-mpc-lexicon — в Разметке вёрстки и Лексиконах.

Копии чанков

Тем же атрибутом data-mpc-copy помечают повторно используемые чанки — чтобы их файл не нарезался заново, а только ставилось подключение. Это разобрано в разделе Разметка вёрстки → Сниппеты и чанки.

Копирование секций из типа (кнопки в гриде)

Часто страница одного типа должна начинаться с того же набора секций, что задан в «типе страницы» (ресурсе-доноре). Чтобы не переносить секции вручную, в тулбаре грида mpc_config (TV конфигурации страницы) есть три кнопки:

КнопкаЧто делает
Дополнить секции из типаДобавляет в ресурс те секции типа, которых у него ещё нет. Уже имеющиеся секции и ваши правки в них сохраняются.
Перезаписать секции из типаЗаменяет конфигурацию ресурса конфигурацией типа целиком. Правки секций ресурса при этом теряются.
Очистить секцииУдаляет конфигурацию секций ресурса (делает её пустой).

Каждая кнопка спрашивает подтверждение, а «Перезаписать» и «Очистить» прямо предупреждают, что правки секций ресурса будут потеряны.

После нажатия грид обновляется без перезагрузки страницы: компонент пересобирает конфигурацию и сразу показывает результат. Запечённая конфигурация (parsed) при этом сбрасывается, а перенарезка не нужна — вёрстку вы не меняли, только состав секций ресурса.

При «Дополнить» и «Перезаписать» вместе с секциями копируются и их переводы — лексикон-ключи добавленных секций переносятся из файла типа в файл ресурса.

Откуда берётся «тип» (донор)

Секции копируются из ресурса-типа — это ресурс-донор, дочерний к «Типам страниц» и привязанный к тому же шаблону, что и текущая страница. Если для шаблона такого ресурса-типа нет, компонент сообщит об ошибке.

Это часть общего каскада наследования компонента: «Типы страниц» → тип страницы → ресурс. Кнопки копирования просто переносят секции с уровня типа на уровень конкретной страницы, чтобы дальше править их независимо. Подробнее об уровнях — в разделе Статические секции → Уровни наследования.

Подводные камни

  • Двум секциям с одним data-mpc-section нужен разный data-mpc-lexicon. Иначе при сохранении страницы они склеятся в одну (вторая перепишет первую). Для копии всегда задавайте свой префикс переводов.
  • «Перезаписать» и «Очистить» необратимы. Они удаляют правки секций, сделанные в ресурсе. Если нужно лишь добрать недостающие секции, пользуйтесь «Дополнить».
  • Структурные изменения вёрстки требуют перенарезки. Кнопки копирования и копии data-mpc-copy работают с уже нарезанными секциями. Если вы добавили, удалили или переименовали секции/чанки в шаблоне — выполните нарезку, иначе копия будет ссылаться на несуществующий файл.