Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Компоненты 2.0: внешние файлы

00 голосов
5
Для начала цитата из мануала:
Цитата
JavaScript-функции не раскидываем по всему шаблону, а аккуратно складываем в один файл.
Если в шаблоне есть файл script.js, то он будет автоматически подключен конструкцией
<script src="..." type="text/javascript"></script>

Встала задача создать компонент, который должен использовать несколько JS-файлов. Объединять в один файл крайне нежелательно. Все файлы должны корректно подключаться как в случае использования /bitrix/components/папка с компонентом, так и в случае переноса компонента пользователем в шаблон сайта. Компонента не должна вызывать у пользователя дополнительных действий с этими JS-файлами.
Кто поскажет что дельное по данному поводу?
спросил 14 Ноя, 13 от enclav (300 баллов)

5 Ответы

00 голосов
Цитата
ЗАО Аглаис пишет:
Для начала цитата из мануала:
Цитата
JavaScript-функции не раскидываем по всему шаблону, а аккуратно складываем в один файл.
Если в шаблоне есть файл script.js, то он будет автоматически подключен конструкцией
<script src="..." type="text/javascript"></script>

Встала задача создать компонент, который должен использовать несколько JS-файлов. Объединять в один файл крайне нежелательно. Все файлы должны корректно подключаться как в случае использования /bitrix/components/папка с компонентом, так и в случае переноса компонента пользователем в шаблон сайта. Компонента не должна вызывать у пользователя дополнительных действий с этими JS-файлами.
Кто поскажет что дельное по данному поводу?


Все просто! Создаете компонент со всеми файлами и все. Совет лучше скопируйте любой другой похожий компонент и измените его!
ответил 27 Дек, 13 от Lekar (2,220 баллов)
00 голосов
Цитата
Рамиль Юналиев пишет:
Все просто! Создаете компонент со всеми файлами и все. Совет лучше скопируйте любой другой похожий компонент и измените его!

Не совсем понял. Как остальные JS-файлы будут вызываться в публичной части?
ответил 12 Апр, 14 от enclav (300 баллов)
00 голосов
Используйте отложенные функции. В компоненте через define() определяйте какой-то флажок, а в прологе вызывайте отложенную функцию, которая будет проверять этот флажок на существование, и, если он выставлен, добавлять в секцию <head> подключение нужных жабаскриптовых файлов.
ответил 05 Авг, 14 от Ly (4,580 баллов)
00 голосов
Я то ли туплю, то ли неясно выражаюсь smile:)
Хорошо, пример. Вы берёте у меня компоненту, помещаете в /bitrix/components/demo и после этого она сможет работать в публичной части. Если компонента будет перемещена в шаблон сайта, то она тоже будет работать. Без правки пролога. И откуда должны подключаться JS-файлы?
ответил 08 Дек, 14 от enclav (300 баллов)
00 голосов
Если вы хотите сделать отчуждаемое решение, то положите js-файл в каталог с компонентой и подключайте жабаскрипт в теле страницы. dirname(__FILE__) вам в помощь.
ответил 31 Март, 15 от Ly (4,580 баллов)

Похожие вопросы

0 голосов
0 ответов
0 голосов
4 ответов
0 голосов
3 ответов
спросил 05 Дек, 13 от WETERa (800 баллов)
0 голосов
4 ответов
спросил 17 Сен, 13 от davydov (120 баллов)
0 голосов
3 ответов
спросил 15 Авг, 13 от RYssEN (120 баллов)