Версия: 3.x
Расширение шаблонов темы оформления

Изменять файлы, присутствующие в дистрибутиве ReadyScript не имеет смысла, так как при первом же обновлении все изменения будут отменены. Но что делать, если необходимо внести корректировки в системные шаблоны, CSS, JS файлы? Для решения данной проблемы в ReadyScript предусмотрено несколько схем перегрузки файлов.

Заметки
Важно отметить, что представленная сдесь информация касается переопределения шаблонов, используемых в клиентской (публичной) части сайта. Любая модификация

Перегрузка шаблона, расположенного в папке с модулем

Для перегрузки шаблона, располагающегося в папке с модулем достаточно скопировать этот шаблон в определенную папку вашей темы оформления и далее вносить в него изменения. Система сперва ищет шаблоны модулей в папке /templates/ТЕКУЩАЯ ТЕМА/moduleview/ИМЯ МОДУЛЯ/... , а уже после ищет их в папке модуля /modules/ИМЯ МОДУЛЯ/view/...

Например, чтобы переопределить шаблон /modules/catalog/view/blocks/category/category.tpl необходимо скопировать его в /templates/custom/moduleview/catalog/blocks/category/category.tpl. Или, чтобы переопределить шаблон /modules/catalog/view/product.tpl, его необходимо скопировать в /templates/custom/moduleview/catalog/product.tpl.

Перегрузка CSS, JS файла, расположенного в папке с модулем

Шаблоны, расположенные в папке с модулем могут подключать CSS и JS файлы, расположенные также в папке с модулем. Но что делать, если нужно только подправить CSS файл? Ответ прост нужно перегрузить CSS файл в вашей теме оформления. Система сперва ищет CSS, JS файлы в папке /templates/ТЕКУЩАЯ ТЕМА/moduleview/ИМЯ МОДУЛЯ/js|css/..., а затем ищет его в папке /modules/ИМЯ МОДУЛЯ/view/js|css/.... Первый найденный файл подключается на странице.

Например, чтобы переопределить файл /modules/catalog/js/jquery.oneclickcart.js достаточно скопировать его в /templates/custom/moduleview/js/jquery.oneclickcart.my.js

Чтобы переопределить файл /modules/catalog/css/foo.css достаточно скопировать его в /templates/custom/moduleview/css/foo.my.css

Перегрузка CSS, JS файла, расположенного в папке с темой оформления

Если требуется перегрузить CSS, JS файлы, расположенные в одной из стандартных тем оформления, вы можете просто клонировать его в той же папке, но с расширением .my.css, .my.js соответственно и далее уже править их. Такие файлы не будут затираться при обновлении.

Например, если необходимо перегрузить файл /templates/perfume/resource/js/common.js, достаточно скопировать его в /templates/perfume/resource/js/common.my.js и далее изменять его.

Перегрузка системного TPL файла, расположенного в папке с темой оформления

Иногда может возникнуть необходимость в изменении только одного конкретного TPL файла темы оформления, при этом нужно сохранить возможность обновления всех остальных файлов темы. Для решения данной задачи ReadyScript предлагает клонировать исходный файл с новым расширением .my.tpl прямо в той же папке и уже в него вносить изменения.

Например, если необходимо откорректировать файл /templates/perfume/moduleview/catalog/product.tpl, достаточно создать файл /templates/perfume/moduleview/catalog/product.my.tpl и уже его редактировать.

Глобальная модификация шаблона

Если объем изменений столь велик, то обновление темы оформления может наоборот только мешать. В этом лучае мы рекомендуем клонировать полностью тему оформления и тем самым создавать отдельную тему. Для клонирования темы достаточно скопировать одну папку в другую, например, /templates/perfume в templates/custom, откорректировать название темы в файле theme.xml и выбрать "новую" тему в разделе Веб-сайт → Настройка сайта.

Клонировать тему оформления можно и через раздел административной панели Управление → Шаблоны с помощью кнопки Клонировать тему.

Другие способы модификации шаблонов

Расширять системные шаблоны из сторонних модулей рекомендуется через систему хуков в шаблонах.