Октябрь CMS | поделиться кодом между макетами

введите описание изображения здесь

На моем макете по умолчанию у меня много AJAX handlers, но для моего проекта мне нужно создать статические страницы с одинаковым макетом, но с разными переменными (поля для клиента)...

Итак, насколько я понимаю, мне нужно создать различные макеты, которые расширяют частичные default layout...

Но есть какой-то способ разделить код между макетами, чтобы предотвратить повторение?

Или есть какой-то способ создать разные переменные в макете для разных статических страниц?

Ex. вар. код:

{variable name="tagline" label="Tagline" tab="Header" type="text"}{/variable}
{variable name="banner" label="Banner" tab="Header" type="mediafinder" mode="image"}{/variable}

1 ответ

Решение

Октябрь не поддерживает наследование макетов, поэтому действительно необходимо создать новый (отдельный) файл макета для каждой структуры (который может иметь разные переменные).

Чтобы повторно использовать код, вы можете использовать несколько подходов для достижения этой цели:

  • Используйте партиалы всякий раз, когда у вас есть дублированный код HTML (разметка)
  • Инкапсулируйте ваши обработчики AJAX в компоненты. Они могут быть использованы повторно и могут определять обработчики. Обратите внимание, что вы не можете определять обработчики в партиалах, поэтому не добавляйте компоненты в партиалы, а монтируйте их в своих макетах. Это требует от вас добавления компонентов в любой новый макет, который вы создаете, но я думаю, что вам лучше, чем с подходом дублирования кода.
Другие вопросы по тегам