Bitrix D7: Подключение стилей и скриптов

August 15, 2016

Давным-давно в далекой-далекой версии Битрикса разработчики вставляли стили и скрипты шаблона в документ банальными тегами < script > и < link >. Потом в фаворе оказались названные выше отложенные функции. Сейчас устарели и они. Нынче на дворе 2016 год и подключать надо следующим образом:


// Old school
$APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH . "/js/fix.js");
$APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH . "/styles/fix.css");
$APPLICATION->AddHeadString("< link href='http://fonts.googleapis.com/css?family=PT+Sans:400&subset=cyrillic' rel='stylesheet' type='text/css' >");

// D7
use Bitrix\Main\Page\Asset;
Asset::getInstance()->addJs(SITE_TEMPLATE_PATH . "/js/fix.js");
Asset::getInstance()->addCss(SITE_TEMPLATE_PATH . "/styles/fix.css");
Asset::getInstance()->addString("< link href='http://fonts.googleapis.com/css?family=PT+Sans:400&subset=cyrillic' rel='stylesheet' type='text/css' >"); 

Эти методы динамические, а класс реализует паттерн “одиночка” (Singletone) и обратиться к объекту можно через Bitrix\Main\Page\Asset::getInstance() .

По слухам, этот класс может быть в скором времени переписан, так что необходимо держать руку на пульсе.

Простой и самый правильный способ подключения внешних библиотек в template.php:


$this->addExternalCss("/local/styles.css");
$this->addExternalJS("/local/liba.js");

В комплекте идёт поддержка кеширования не только текущего шаблона, но и родительского. Не зависимо от кеша, файлы всегда будут с шаблоном! Ура!

Новая страничка в курсе разработчика. Поделитесь с коллегами :)

Комментарии

comments powered by Disqus