Если вы пишите свой модуль, называться папки, в которых они будут лежать будут называться примерно так
mycompany.module1
mycompany.module2
Компоненты, которые они содержат, при установке обычно размещаются в папке
/bitrix/components/mycompany/
(или /local/components/mycompany/)
Т.е. пространство компонентов у двух разных модулей одного разработчика будет совпадать.
При удалении модуля он должен найти и удалить только свои компоненты.
Мне не удалось найти примеров в готовых модулях Битрикса - они только копируют компоненты, но их не удаляют.
Поэтому я сделал так:
По-хорошему нужно ещё проверять, не удалили ли мы все наши модули и все их компоненты и в этом случае удалять пустую папку пространства имён наших компонентов
mycompany.module1
mycompany.module2
Компоненты, которые они содержат, при установке обычно размещаются в папке
/bitrix/components/mycompany/
(или /local/components/mycompany/)
Т.е. пространство компонентов у двух разных модулей одного разработчика будет совпадать.
При удалении модуля он должен найти и удалить только свои компоненты.
Мне не удалось найти примеров в готовых модулях Битрикса - они только копируют компоненты, но их не удаляют.
Поэтому я сделал так:
//Класс установки модуля class mycompany_component1 extends CModule{ //Пространство имён компонентов public $MODULE_COMPONENTS_NAMESPACE = "mycompany"; //Компоненты модуля public $arModuleComponents = ["component1"]; ... function UnInstallFiles() { ... //Удаление компонентов модуля из /local foreach ($this->arModuleComponents as $componentName) { if (strlen($componentName) > 0) { $resDel=DeleteDirFilesEx("/local/components/" . $this->MODULE_COMPONENTS_NAMESPACE . '/' . $componentName . '/'); } } //TODO: удалять папку с компонентами, если она оказывается пустая return true; } } |
Я просто все думал можно ли в текущий шаблон сайта сразу залить ... но наверное это не правильно ...
В других местах Битрикс их не найдёт.
Но есть другой вопрос: где должны лежать шаблоны компонентов?
Если я делаю сайт и модули к нему без публикации, часть шаблонов компонентов будет в папке /local/templates, а другая часть, будет в папке /local/components/имя компонента/templates/.default
С моей точки зрения это неудобно, действительно возникает желание их сразу отправлять в текущий шаблон.
ведь никто не запрещает иметь составные названия компонентов, пример из стандартного:
"bitrix:iblock.element.add.form"