Simindey
4/29/2017 - 5:16 PM

Подключение CSS и JS файлов

Подключение CSS и JS файлов

Для оформления и реализации front-end логики компонента, в его шаблоне доступны не обязательные файлы
- style.css, который определяет стили, необходимые данному шаблону
- script.js, который определяет и подключает яваскрипты, необходимые данному шаблону.

Не всегда их хватает. Для подключения внешних css/js можно было пойти разными путями

- В шаблоне "подключить жестко"  инлайном, что совсем не спортивно  

<li nk href="/local/styles.css" type="text/css" rel="stylesheet" />

- Захардкодить в компоненте (так как есть ловушка кеширования в шаблоне), что еще менее спортивно

 $APPLICATION->SetAdditionalCss("/local/styles.css");

- Архитектурно правильный способ  (но его уже можно считать устаревшим), для тех кто знаком с устройством компонента,
создать component_epilog.php:

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;
$APPLICATION->SetAdditionalCss("/local/styles.css");


- И теперь простой и самый правильный способ
в template.php:

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

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