Большую часть шаблонов компонентов можно кастомизировать, не вынося всё в отдельный шаблон.
Как понять, какие участки можно кастомизировать?
Поддержка кастомизации обеспечивается методом:\Nextype\Alpha\Layout\Partial::getInstance()->render()
Содержимое любого файла, вызываемого этим методом, можно кастомизировать. Для этого достаточно создать в той же директории файл с постфиксом _custom после названия.
Пример кастомизации
Для примера рассмотрим кастомизацию детальной страницы товара в каталоге. На странице /catalog/ подключается компонент nextype:alpha.catalog, шаблон которого расположен по адресу SITE_TEMPLATE_PATH . '/components/nextype/alpha.catalog/main'
Сперва будет подключен файл element.php, внутри которого вызывается упомянутый выше метод для подключения файла element.php
Логика работы метода такова: вызов getInstance() определяет директорию для поиска файла.
Обратите внимание, если метод вызван без аргумента, то такой директорией будет SITE_DIR . '/include/'иначе:
<Аргумент> . '/include/'
В нашем примере передается текущая папка (__DIR__). Это значит, что в текущей директории шаблона компонента расположена папка include, в которой лежит файл element.php. Для того, чтобы вместо этого файла подключился кастомизированный, рядом нужно создать файл element_custom.php.
Копирование блоков для модификации
Часть блоков можно скопировать для модификации из публичной части. Для этого включите режим правки и наведите на блок, который нужно изменить. Вы увидите кнопку Копировать блок для модификации.
После нажатия, в папке с подключаемым блоком создастся custom-файл, дублирующий содержимое текущего блока и вы сразу перейдете к редактированию файла. Завершив редактирование, сохраните файл. Файл автоматически подключится вместо стандартного блока.
Таким образом можно точечно изменять готовое решение, не вынося шаблоны компонентов в отдельные папки.
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала.