CMS: модификация готового компонента (enable_dev_components)

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

1. Что бы всё заработало необходимо в настройках конфигурации сайта (/config/site.php) включить опцию enable_dev_components.

// config/site.php

->begin_site
	->enable_dev_components(true)
->end

2. Далее, создать папку /dev/ (/NameProject/app/dev/) и скопировать файлы компонента, сохраняя вложенность папок. Например, для Нодус-Каталога - /dev/app/components/NodusCatalog/.

3. Не забыть сбросить кэш после переопределения.

Можно воспользоваться enable_dev_components в том случае, когда нет возможности переопределения отдельных методов или классов в папке /app/.

Предположим, что установлен компонент Nodus, и необходимо убрать набор фильтров в администраторе записей (/admin/nodus/items/). По каким-то причинам нет возможности произвести переопределения в /app/. Тогда можно поступить следующим образом:

1. Находим модуль, который подвергнется изменениям - app/components/Nodus/lib/Admin/Items.php.

2. Создаем каталог dev и копируем нужный нам файл модуля в эту папку, сохраняя вложенность - dev/components/Nodus/lib/Admin/Items.php. После чего можно вносить любые правки в модуль, лежащий в dev.

При подгрузке модуля будет сначала просмотрен каталог dev, если в нем модуль найден, то он подключится, иначе загрузка будет произведена из каталога /app/.

Т.е. можно вносить любые правки в каталоге dev и обновлять компонент Nodus. После обновления компонента будет использоваться измененная версия модуля Component.Nodus.Admin.Items.

Метки: CMS
24.09.2015
Все статьи