Как в Bitrix получить путь к шаблону сайта

В Bitrix — каждый шаблон сайта играет роль фундамента для интерфейса. Но как узнать, где лежит этот самый шаблон? Путь к директории шаблона — ключ к кастомизации, подключению стилей, скриптов и работе с компонентами. В этой статье разберем, как грамотно получить этот путь, чтобы не ломать голову при переносе сайта или обновлении системы. Погнали.

Зачем знать путь к шаблону?

Шаблоны в Bitrix — это основа визуальной части сайта. Они хранят HTML, CSS, JS и логику отображения страниц. Зная путь к директории шаблона, вы можете динамически подключать ресурсы, адаптировать компоненты или работать с несколькими сайтами в одном проекте. Без этого — либо хардкод, либо вечный поиск нужной папки в дебрях /bitrix/. А это, поверьте, не то, чем хочется заниматься в пятницу вечером.

Где находятся шаблоны сайтов

Bitrix исторически поддерживает два каталога для шаблонов:

  • /bitrix/templates/ — системный, обновляется вместе с ядром
  • /local/templates/ — пользовательский, рекомендуется для всех кастомных шаблонов

Система автоматически выберет шаблон, указанный в настройках сайта (Настройки → Настройки продукта → Сайты → Список сайтов). В большинстве проектов шаблон лежит в local, и это хорошо: обновления ядра его не затронут.

Способы получить путь к шаблону

Константа SITE_TEMPLATE_PATH

Это, пожалуй, самый простой способ. Константа SITE_TEMPLATE_PATH возвращает полный путь к текущему шаблону сайта, например, /bitrix/templates/my_template.

echo SITE_TEMPLATE_PATH;
// /local/templates/.default

Можно безопасно использовать внутри header.php, footer.php, шаблонов компонентов и других участков, где уже определён шаблон.

$APPLICATION->GetTemplatePath()

Метод главного объекта $APPLICATION. Возвращает web-путь к папке шаблона, можно указывать относительный путь внутри шаблона.

global $APPLICATION;
echo $APPLICATION->GetTemplatePath("");
// /local/templates/.default

Если передать путь:

echo $APPLICATION->GetTemplatePath("css/style.css");
// /local/templates/.default/css/style.css

Переменная $templateFolder

Если вы работаете внутри шаблона компонента (например, template.php), используйте $templateFolder. Она возвращает путь к папке шаблона относительно корня сайта. Пример:

<img src="<?=$templateFolder?>/images/logo.png" alt="Логотип">

Абсолютный путь

Если нужен абсолютный путь на сервере, а не url, то можно использовать $_SERVER["DOCUMENT_ROOT"]:

$fullPath = $_SERVER["DOCUMENT_ROOT"] . SITE_TEMPLATE_PATH;

Подходит для работы с файловыми операциями: file_exists, fopen, include.

Ограничения

В init.php или при вызове скрипта напрямую (например, через ajax.php) шаблон может быть ещё не определён. Попытка использовать SITE_TEMPLATE_PATH там может привести к ошибке или пустому значению. Поэтому лучше перенести использование SITE_TEMPLATE_PATH в файлы самого шаблона сайта (header.php, footer.php и т.д.) или в шаблоны компонентов.

Примеры использования

Допустим, вы хотите подключить кастомный шрифт в header.php. Вот как это сделать:

global $APPLICATION;
$APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH . '/fonts/custom-font.css');

вот пример для подключения JS-скрипта:

\Bitrix\Main\Page\Asset::getInstance()->addJs(SITE_TEMPLATE_PATH . "/js/main.js");

Вывод

Получение пути к директории шаблона в Bitrix — это не ракетостроение, но требует понимания системы. В большинстве случаев будет достаточно SITE_TEMPLATE_PATH. Для шаблонов компонентов стоит использовать $templateFolder. Храните шаблоны в /local/, избегайте жестко заданых путей до шаблона в коде и учитывайте кэширование. Тогда ваш код будет не только рабочим, но и готовым к масштабированию.

Рубрики: PHP Bitrix

Если есть вопросы, что-то в статье не понятно или нашли ошибку, напишите об этом в комментариях, все комментарии читаются и по возможности материал будет доработан.
Читайте также
Полезные библиотеки для web разработки

Полезные библиотеки для web разработки

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

Bitrix запись своих настроек в settings.php

Bitrix запись своих настроек в settings.php

Статья о том как разместить свои настройки не создавая велосипеды и костыли, а используя возможности системы.

Крестовые походы

Крестовые походы

Погрузитесь в историю Крестовых походов: мрачная Европа, загадочный Восток и события, которые изменили мир.

Использование chatGpt: генерация шаблона письма

Использование chatGpt: генерация шаблона письма

В этой статье мы рассмотрим, как с помощью нейросетей можно создавать HTML-письма, что значительно ускоряет процесс разработки.

Автоматизация без программиста: как использовать ИИ в бизнесе

Автоматизация без программиста: как использовать ИИ в бизнесе

Как искусственный интеллект трансформирует бизнес в России? Рассмотрим примеры использования ИИ в различных сферах.

COption в Bitrix: как не утонуть в настройках

COption в Bitrix: как не утонуть в настройках

Как эффективно управлять настройками в Bitrix с помощью COption — всё, что нужно знать разработчику.

Комментарии

Комментариев пока нет
Данный сайт использует файлы cookies. Продолжая просмотр сайта, вы соглашаетесь с использованием файлов cookies.
ОК