Телеграм: @bazarow_ru Почта: mihail@bazarow.ru

Подключение jquery из ядра битрикс и объединение своих скриптов в один файл

Просмотров: 20890

Если используете большое количество js скриптов на сайте. Например: фансибокс, всяческие галереи и прочее- то таких внешних скриптов может набежать по 10/20 на сайт. Имеет смысл объеденить их в один, для большей скорости загрузки сайта и в принципе для оптимизации. Это, конечно, можно проделать вручную но можно воспользоваться функционалом битрикс.

Данная возможность позволяет автоматически, без заморочек объеденить весь javascript в один файл

Пример на моем сайте

При верстке своего сайта я использовал 5 javascript файлов: фансибокс, табы, карусель контента. В исходной html верстке это выглядело так

<script type="text/javascript" language="javascript" src="<?=SITE_TEMPLATE_PATH?>/js/jTabs.js"></script> 
 <script type="text/javascript" language="javascript" src="<?=SITE_TEMPLATE_PATH?>/js/jquery.flexisel.js"></script> 
 <script type="text/javascript" language="javascript" src="<?=SITE_TEMPLATE_PATH?>/js/jquery.mousewheel-3.0.4.pack.js"></script> 
 <script type="text/javascript" language="javascript" src="<?=SITE_TEMPLATE_PATH?>/js/jquery.fancybox-1.3.4.pack.js"></script> 
 <script type="text/javascript" language="javascript" src="<?=SITE_TEMPLATE_PATH?>/js/sokr.js"></script> 

Для того, что бы при интеграции с битрикс, автоматически, все эти файлы объеденились в один, сжались и вывелись в head шаблона достаточно подключить их вот так

<?
CJSCore::Init(array("jquery")); //подключаем jquery из ядра битрикс $APPLICATION->ShowHeadStrings() ; $APPLICATION->ShowHeadScripts() ; //ПОДКЛЮЧАЕМ ВСЕ НАШИ ФАЙЛЫ поочереди $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH."/js/jTabs.js" ); $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH."/js/jquery.flexisel.js" ); $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH."/js/jquery.mousewheel-3.0.4.pack.js" ); $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH."/js/jquery.fancybox-1.3.4.pack.js" ); $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH."/js/sokr.js"); ?>

Далее в настройках Битрикс: Настройки- Настройки Модулей -Главный модуль : включаем объединение и сжатие JS файлов.

После этого все ваши js файлы объединяться и сожмутся, что значительно ускорит работу сайта, подгрузку js да и поисковые системы будут рады.

PS: Точно так же, можно объединять подключаемые файлы стилей


  <?
  $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH."/colors.css");
  $APPLICATION->SetAdditionalCSS("/bitrix/css/main/bootstrap.css");
  $APPLICATION->SetAdditionalCSS("/bitrix/css/main/font-awesome.css");
  ?> 
Fred 26.07.2015
Почему то все скрипты начинают срабатывать дважды

Код
 <?
 CJSCore::Init(array("jquery" ;) );
 $APPLICATION->ShowHeadStrings();
 $APPLICATION->ShowHeadScripts();
 $APPLICATION->AddHeadScript("/bitrix/templates/.default/js/jquery.maskedinput.min.js" ;) ;
 $APPLICATION->AddHeadScript("/bitrix/templates/.default/js/mobile.js" ;) ;
 $APPLICATION->AddHeadScript("/bitrix/templates/.default/js/jquery.nicescroll.min.js" ;) ;
 ?>
Guest 26.07.2015
Цитата
Fred пишет:
Почему то все скрипты начинают срабатывать дважды
Код
  <?
 CJSCore::Init(array("jquery" ;) );
 $APPLICATION->ShowHeadStrings();
 $APPLICATION->ShowHeadScripts();
 $APPLICATION->AddHeadScript("/bitrix/templates/.default/js/jquery.maskedinput.min.js" ;) ;
 $APPLICATION->AddHeadScript("/bitrix/templates/.default/js/mobile.js" ;) ;
 $APPLICATION->AddHeadScript("/bitrix/templates/.default/js/jquery.nicescroll.min.js" ;) ;
 ?> 
Кажись разобрался) Если в хэдере уже прописано
Код
<? $APPLICATION->ShowHead(); ?>
то писать
Код
 $APPLICATION->ShowHeadStrings();
 $APPLICATION->ShowHeadScripts();

не надо.
Oleg 11.12.2015
Добрый день,Михаил
Нужна Ваша помощь по Битриксу.
Попросили на сайте mediasmart.pro подправить боковое меню наподобие розетки. Дали доступ на тестовый сайт electrolopata.ru. Вчера утром поставил в шаблон файлы от Font-Awesome, сделал как положено - шрифты загрузил в fonts и в css закинул файл font-awesome.css с подключением этих шрифтов. Подключил файл font-awesome.css в хедере стандартным подключением
<? $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH . "/css/font-awesome.css" ;) ; ?>
и тут началось. Слетели все стили сайта. Поотключал в главном модуле объединение стилей и js, отключил кеширование и все равно не могу использовать стилевой файл main.css в шаблоне. Все мои изменения битрикс не видит. Не могу понять. Такое ощущение, что битрикс main.css где-то закешированный лежит...
Не пойму, где его перезаписать.... Если я включаю снова в главном модуле объединение файлов, то сайт не видит стили вообще.
Буду очень признателен, если подскажете, куда глянуть или какой документ почитать.
Михаил Базаров 11.12.2015
Цитата
Oleg пишет:
Добрый день,Михаил
Нужна Ваша помощь по Битриксу.
Попросили на сайте mediasmart.pro подправить боковое меню наподобие розетки. Дали доступ на тестовый сайт electrolopata.ru. Вчера утром поставил в шаблон файлы от Font-Awesome, сделал как положено - шрифты загрузил в fonts и в css закинул файл font-awesome.css с подключением этих шрифтов. Подключил файл font-awesome.css в хедере стандартным подключением
<? $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH . "/css/font-awesome.css" ; ?>
и тут началось. Слетели все стили сайта. Поотключал в главном модуле объединение стилей и js, отключил кеширование и все равно не могу использовать стилевой файл main.css в шаблоне. Все мои изменения битрикс не видит. Не могу понять. Такое ощущение, что битрикс main.css где-то закешированный лежит...
Не пойму, где его перезаписать.... Если я включаю снова в главном модуле объединение файлов, то сайт не видит стили вообще.
Буду очень признателен, если подскажете, куда глянуть или какой документ почитать.
А если отключаете свой

Код
<? $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH . "/css/font-awesome.css" ; ?>
 
Что происходит? Ну и кеш по мимо отключения еще скиньте полностью
Михаил Базаров 11.12.2015
Цитата
Михаил Базаров пишет:
Цитата
Oleg пишет:
Добрый день,Михаил
Нужна Ваша помощь по Битриксу.
Попросили на сайте mediasmart.pro подправить боковое меню наподобие розетки. Дали доступ на тестовый сайт electrolopata.ru. Вчера утром поставил в шаблон файлы от Font-Awesome, сделал как положено - шрифты загрузил в fonts и в css закинул файл font-awesome.css с подключением этих шрифтов. Подключил файл font-awesome.css в хедере стандартным подключением
<? $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH . "/css/font-awesome.css" ; ?>
и тут началось. Слетели все стили сайта. Поотключал в главном модуле объединение стилей и js, отключил кеширование и все равно не могу использовать стилевой файл main.css в шаблоне. Все мои изменения битрикс не видит. Не могу понять. Такое ощущение, что битрикс main.css где-то закешированный лежит...
Не пойму, где его перезаписать.... Если я включаю снова в главном модуле объединение файлов, то сайт не видит стили вообще.
Буду очень признателен, если подскажете, куда глянуть или какой документ почитать.
А если отключаете свой
Код
 <? $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH . "/css/font-awesome.css" ; ?>
  
Что происходит? Ну и кеш по мимо отключения еще скиньте полностью
Не сразу заметил, у вас там ";" лишняя вроде бы, если смайлик не врет ;)
Александр Николаев 30.05.2016
Здравствуйте, Михаил!
У меня вопрос ни могу понять в чем дело, но битрикс не хочет подключать первый подключенный не стандартный шрифт у меня их 6 и причём если меняю местами первый на второй, а второй на первый происходит тоже самое тот что был вторым и стал первым перестаёт работать я уже голову сломал не могу понять.

Css  файлы объединил в один  через
$APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH."/css/bootstrap.css"  ;)  ;

JS файлы так же $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH."/js/bootstrap.min.js"  ;)  ;

На сайте также используются и и коночные шрифты font-awesome.css они работаю нормально всё остальные также работают но только если не первыми в очереди.

Не знаю уже что и думать может есть какое то ограничение на количество шрифтов.
Да и ещё пробовал и подключать обычным способом <?=SITE_TEMPLATE_PATH?>/ не помогло тоже кешь сбрасывал и отключал ничего не помогает.

Надеюсь на вашу помощь и хочу сразу сказать если даже не сможете помочь всё равно спасибо за все ваши труды и информацию что вы предоставляете.

Скриншоты к описанию.
http://prntscr.com/bae501
http://prntscr.com/bae5oe  Должен быть таким
http://prntscr.com/bae6cb  А получается таким
Александр Николаев 30.05.2016
Михаил, вообщем я нашёл для себя единственное и по моему правильное решение  это подключать эти шрифты отдельным файлом и объединить в один  через SetAdditionalCSS это так работает и думаю что правильно но почему не работает  когда эти шрифты находятся в template_styles.css непонятно причем я заметил если перед первым шрифтом поставить какой нибудь класс то тоже работает но подумал что это будет не правильно.

Всё большое спасибо ещё раз и жду ваших комментариев.
A A 18.01.2017
Пробный вопрос про fancybox

Записная книжка разработчика

Примерно с 2013-го года пишу заметки по разработке сайтов на Битрикс.
Вы можете задавать уточняющие вопросы в комментариях- отвечаю или дополняю заметки по возможности.

Увеличение диска на готовой виртуальной машине Битрикс Просмотров: 9812 Как всем известно, на официальном сайте 1С-битрикс можно скачать готовую виртуальную машин... Если пользователь авторизован то... API Битрикс Просмотров: 23716 Достаточно часто, при создании сайта на битрикс нужно вывести в шаблон или компонент, неку... Отключить поиск по описаниям товаров в Битрикс Просмотров: 11843 Иногда, нужно отключить поиск по описаниям анонсов и детальному описанию товаров, при разр... Ajax форма обратной связи, реализация в битрикс Просмотров: 8680 Иногда, на сайте требуется создать форму обратной связи, которая будет писать все данные в... Дополнительные параметры в меню Битрикс Просмотров: 20769 Иногда нужно присвоить какой-то функционал к конкретному пункту меню в битрикс. Например о... Сниппеты типографики bootstrap, для Битрикс Просмотров: 8269 Если вы подключили bootstrap к своему сайту, или сверстали весь шаблон, подключив bootstra... Следующая/предыдущая новость/статья при просмотре подробной в Битрикс Просмотров: 18286 Дизайн создается только для наглядного и удобного предоставления содержимого сайта, пользо... Многосайтовость битрикс на разных доменах и поддоменах Просмотров: 63135 Часто спрашивают "как настроить многосайтовость Битрикс на разных доменах", решил записать... Дополнительные картинки в новостях Битрикс, почти фотогалерея. Просмотров: 49498 Частенько стоит задача, по мимо стандартных "Картинка для анонса" и "Деталь... Добавление своих полей в почтовые шаблоны Битрикс Просмотров: 45781 Иногда нужно внести свои поля в почтовые шаблоны битрикс. Например: добавить имя и номе... Как подобрать редакцию Битрикс под задачи Просмотров: 7019 Последнее время, все чаще, при общении с заказчиками, сталкиваюсь с вопросом "— К... Спойлер в списке новостей Битрикс Просмотров: 12178 Иногда нужно сделать спойлеры в копонентах Битрикс, в основном конечно, имеет смысл при оч... Картинка торгового предложения вместо иконки цвета, в выборе SKU Просмотров: 709 Задача: вместо не информативных иконок цветов нужно вывести детальную картинку торгового п... Массово: применить наценку ко всем товарам каталога с пересчетом от б... Просмотров: 6372 Рассмотрим как, в магазине работающем на 1С-битрикс, массово применить наценку на все това... Вывести информацию, только на первом уровне раздела каталога, в 1С-Би... Просмотров: 5560 Задача: на сайте, в каталоге, выводится два фильтра - боковой и верхний. Оба компонента по... Фиксированная корзина с обновлением, без перезагрузки страницы. Просмотров: 18455 Иногда нужно сделать так, чтобы корзина в интернет магазине, созданном на Битрикс, была по... Создание мобильного приложения на cordova, для любого сайта. Просмотров: 15874 Если стоит задача разработки мобильного приложения для сайта, можете воспользоваться данно... Вывести дату окончания скидки в карточке товара Просмотров: 4521 Если нужно вывести информацию о скидке в карточке товара, можно воспользоваться методом Вывести дополнительное пользовательское поле, использование полей в ф... Просмотров: 16767 Если вам нужно вывести дополнительное пользовательское поле типа "Привязка к разделам инфо... Умный фильтр во всплывающей панели на мобильных. Просмотров: 2358 Шаблон умного фильтра в Битриксе достаточно сложный, с точки зрения верстки и не очень кра...