Николаев Виталий
Блог веб-разработчика: Битрикс, PHP, Python, Linux и SEO
Битрикс Битрикс
01.11.2021

Битрикс. Узнать где находиться шаблон компонента

В 1С-Битрикс иногда бывает сложно понять, где именно лежит шаблон компонента.

Особенно это актуально:

  • в больших проектах;
  • при многосайтовости;
  • при использовании Аспро;
  • если шаблон переопределен;
  • при работе со сторонними модулями.

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

Получение пути шаблона компонента

<?

// Название компонента
$componentName = 'sotbit:catalog.section';

// Название шаблона
$componentTemplate = 'catalog';

$component = new CBitrixComponent();

$component->InitComponent(
    $componentName,
    $componentTemplate
);

$component->initComponentTemplate();

// Выводим путь шаблона компонента
echo $component->__template->GetFolder();

?>

В своих проектах я использую серверную инфраструктуру Timeweb Cloud

VPS и облачные решения для стабильной работы сайтов на PHP и 1С-Битрикс — от корпоративных сайтов до интернет-магазинов и высоконагруженных веб-проектов.

Перейти на Timeweb Cloud
Реклама · ERID: CQH36pWzJqVJ4YD9t5y227AkMQdhpG2THarwRmX2g9tS8x

Что делает этот код

Код:

  • инициализирует компонент;
  • подключает шаблон;
  • получает объект шаблона;
  • выводит путь к папке шаблона.

InitComponent()

Метод:

InitComponent()

принимает:

  • название компонента;
  • название шаблона.

Пример компонента

sotbit:catalog.section

Здесь:

  • sotbit — пространство имен;
  • catalog.section — название компонента.

Инициализация шаблона

Метод:

initComponentTemplate()

подключает шаблон компонента.

Получение пути

Метод:

GetFolder()

возвращает:

  • полный путь шаблона компонента.

Пример результата

/local/templates/main/components/sotbit/catalog.section/catalog

Когда это полезно

  • поиск шаблонов компонентов;
  • отладка Битрикс;
  • поиск переопределений;
  • работа с Аспро;
  • многосайтовость;
  • разработка кастомных шаблонов.

Почему шаблон сложно найти

В Битрикс шаблон компонента может лежать:

  • в шаблоне сайта;
  • в local/;
  • в bitrix/templates/;
  • внутри модуля;
  • в default-шаблоне компонента.

Стандартные пути шаблонов

Шаблон сайта

/local/templates/ШАБЛОН/components/

Стандартный шаблон

/bitrix/components/

Шаблон модуля

/bitrix/modules/

Важно про __template

Свойство:

$component->__template

является внутренним объектом шаблона.

Обычно напрямую его используют редко, но для отладки это удобно.

Более современный вариант

В новых проектах можно использовать:

$this->GetFolder()

внутри самого шаблона компонента.

Пример внутри template.php

<?
echo $this->GetFolder();
?>

Итог

Если непонятно, где находится шаблон компонента в 1С-Битрикс, можно программно получить путь через:

$component->__template->GetFolder()

Это особенно удобно при работе с крупными проектами и готовыми решениями.

215 просмотров

Если возникли сложности

Помогу разобраться с настройкой, исправить ошибки и реализовать решение под ваш проект.

Поддержка сайтов на 1С-Битрикс

Поддержка сайтов на 1С-Битрикс: быстрое решение ошибок, консультации, обучение сотрудников и сопровождение сайта. 
Резервирую время под ваш проект для оперативной помощи и стабильной работы сайта.
Подробнее
Где заказы? — дневник предпринимателя

Я веб-разработчик. Много лет создаю сайты, интернет-магазины, внедряю CRM и автоматизирую бизнес-процессы. А теперь параллельно с работой по найму развиваю собственную IT-студию Nikovit.

В Telegram-канале «Где заказы?» рассказываю, как пытаюсь превратить опыт специалиста в устойчивый бизнес: где ищу клиентов, как веду переговоры, сколько зарабатываю, какие решения принимаю и какие ошибки совершаю.

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

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

Комментарии

Где заказы?

Из веб-разработчика — в предприниматели.

Строю собственную IT-студию и рассказываю, как ищу клиентов, работаю с заказчиками, ошибаюсь и развиваю бизнес.

Реальные проекты, деньги и опыт. Без историй про лёгкий успех.

Читать канал