Документация для разработчиков

Класс CBitrixComponentTemplate

Класс CBitrixComponentTemplate является оболочкой шаблона компонента. Для каждого подключаемого шаблона компонента создаётся свой экземпляр класса CBitrixComponentTemplate, который живет от момента инициализации шаблона в коде компонента до конца подключения компонента.

Для получения доступа к методам этого класса внутри компонента (после инициализации шаблона) нужно получить объект шаблона с помощью метода компонента CBitrixComponent::GetTemplate:

$template = & $this->GetTemplate();
$templateFile = $template->GetFile();

С версии 15.5.1 стало возможным использования внешних файлов css без дополнительных манипуляций с кодом. Для этого достаточно в файле template.php нужного компонента прописать:

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

Метод Описание С версии
GetSiteTemplate Метод возвращает шаблон сайта, в котором лежит шаблон компонента.
GetName Метод возвращает имя шаблона компонента.
GetFolder Метод возвращает путь к папке шаблона относительно корня сайта.
GetFile Метод возвращает путь к файлу шаблона относительно корня сайта.
getComponent Метод возвращает ссылку на экземпляр класса CBitrixComponent. 15.5.10
addExternalCss Метод для подключения стороннего css. 15.5.1
addExternalJs Метод для подключения стороннего JS. 15.5.1


Пользовательские комментарии

Пользовательские комментарии не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

Добавлять комментарии могут только зарегистрированные пользователи. Сообщения для просмотра появляются после модерации.
0
Наталья Бессуднова
Сообщение непромодерировано, возможны ошибки и неточности.
Подключение скриптов и стилей в шаблоне компонента не заработало, пока не указала явно $template = & $this->GetTemplate(); перед подключением. В итоге получилось так:
Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$this->setFrameMode(true);
$template = & $this->GetTemplate();
$this->addExternalCss("/apps/FlipClock/flipclock.css");
$this->addExternalJS("/apps/FlipClock/flipclock.js");
?>
1
Алексей Абисфамилинный
Ссылка на объект шаблона &$this->GetTemplate() доступна только после подключения шаблона компонента, то есть после выполнения метода $this->IncludeComponentTemplate(), который обычно вызывается в конце работы компонента; до подключения шаблона метод &$this->GetTemplate() не вернет объект, поэтому использовать $template->GetFile() нельзя.

То есть имеем:

Код
$this->IncludeComponentTemplate();
//любой код здесь
$template = & $this->GetTemplate();
$templateFile = $template->GetFile();
© «Битрикс», 2001-2018, «1С-Битрикс», 2018