Вы находитесь в новой версии нашей документации. Сейчас мы активно переносим статьи и некоторый контент может быть не доступен. Вы все еще можете воспользоваться  старой версией  документации.
Темная тема

Точечная кастомизация

Большую часть шаблонов компонентов можно кастомизировать, не вынося всё в отдельный шаблон.

Как понять, какие участки можно кастомизировать?

Поддержка кастомизации обеспечивается методом:

\Nextype\Alpha\Layout\Partial::getInstance()->render()

Содержимое любого файла, вызываемого этим методом, можно кастомизировать. Для этого достаточно создать в той же директории файл с постфиксом _custom после названия.

Пример кастомизации

Для примера рассмотрим кастомизацию детальной страницы товара в каталоге. На странице /catalog/ подключается компонент nextype:alpha.catalog, шаблон которого расположен по адресу SITE_TEMPLATE_PATH . '/components/nextype/alpha.catalog/main'

Сперва будет подключен файл element.php, внутри которого вызывается упомянутый выше метод для подключения файла element.php

Screenshot_5.png

Логика работы метода такова: вызов getInstance() определяет директорию для поиска файла.

Обратите внимание, если метод вызван без аргумента, то такой директорией будет SITE_DIR . '/include/'
иначе:
<Аргумент> . '/include/'

В нашем примере передается текущая папка (__DIR__). Это значит, что в текущей директории шаблона компонента расположена папка include, в которой лежит файл element.php. Для того, чтобы вместо этого файла подключился кастомизированный, рядом нужно создать файл element_custom.php.

Screenshot_9.png

Копирование блоков для модификации

Часть блоков можно скопировать для модификации из публичной части. Для этого включите режим правки и наведите на блок, который нужно изменить. Вы увидите кнопку Копировать блок для модификации.

Screenshot_10.png

После нажатия, в папке с подключаемым блоком создастся custom-файл, дублирующий содержимое текущего блока и вы сразу перейдете к редактированию файла. Завершив редактирование, сохраните файл. Файл автоматически подключится вместо стандартного блока.

Таким образом можно точечно изменять готовое решение, не вынося шаблоны компонентов в отдельные папки.
Наверх