Всё кажется запутанным: куча файлов, папок, .php, .section.php, header, footer… Но на самом деле структура у Битрикса очень логичная и, главное, последовательная. Если один раз понять принцип, то потом всё становится предсказуемо и удобно.

Папки и разделы — основа структуры

Главная идея в том, что каждая папка на сервере — это раздел сайта, а файл index.php внутри этой папки — это страница этого раздела.

  • Например, у вас есть папка /about/.
  • Если в ней лежит файл index.php, то страница откроется по адресу /about/.
  • Если вы создадите в ней подпапку /about/team/, то она станет подразделом — и страница /about/team/index.php откроется по адресу /about/team/.

Таким образом, структура папок и файлов на сервере напрямую совпадает со структурой адресов сайта. Это очень удобно: вы буквально видите, как устроен сайт, просто открыв каталог в файловом менеджере.

index.php — сердце страницы

Файл index.php — это основное «тело» страницы. В нём хранится всё, что видит пользователь: контент, тексты, изображения, компоненты Битрикса (например, список новостей, каталог, форму обратной связи и т. д.).

Каждый index.php начинается с подключения шапки и заканчивается подключением футера:

<?php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
// Здесь контент страницы
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>

Эти две строчки — обязательны почти для каждой страницы.
Они говорят Битриксу: «подключи шаблон сайта, выведи общие элементы (меню, шапку, футер) и подгрузи все мета-теги и ассеты».

Между ними вы можете писать обычный HTML или вставлять компоненты:

<h1>О компании</h1>
<p>Мы занимаемся внедрением и поддержкой Bitrix24...</p>

Так формируется содержимое конкретной страницы.

.section.php — «паспорт» раздела

Теперь немного магии.
В каждой папке рядом с index.php может лежать файл .section.php.
Он нужен не для контента, а для настроек раздела — то есть для того, что касается SEO и внешнего вида, а не текста.

.section.php содержит две переменные:

  • $sSectionName — название раздела (используется в хлебных крошках и <title>);
  • $arDirProperties — массив свойств раздела, таких как description, keywords, robots, og:title, canonical и т.д.

Пример такого файла:

<?php
$sSectionName = "О компании";
$arDirProperties = [
  "description" => "Компания Implecs — внедрение Bitrix24 и 1С",
  "title" => "О компании — Implecs",
  "robots" => "index, follow",
  "og:title" => "О компании Implecs",
  "og:description" => "Сертифицированные специалисты по Bitrix24",
  "canonical" => "https://site.ru/about/"
];
?>

Эти значения Битрикс автоматически подхватывает при выводе страницы.
Например, <title> формируется на основе $sSectionName или свойства title, а <meta name="description"> — из $arDirProperties['description'].

Самое удобное здесь то, что все вложенные страницы наследуют свойства из родительского раздела.
Если в /about/.section.php задан description, то страница /about/team/ получит его автоматически, пока вы не переопределите значение в своём .section.php.

Как формируется страница целиком

Когда пользователь открывает страницу /about/, Битрикс:

  1. Находит папку /about/.
  2. Загружает .section.php, чтобы узнать свойства раздела.
  3. Подключает index.php и выполняет его код.
  4. Через require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php") вставляет общую шапку сайта.
  5. Выводит содержимое страницы (HTML или компонент).
  6. Подключает футер.

Всё это вместе формирует полноценную страницу с заголовком, мета-тегами, стилями и контентом.

Шаблон сайта: шапка, футер и общие файлы

Шаблон сайта в Битриксе — это набор файлов, отвечающих за оформление.
По умолчанию шаблон лежит в папке /local/templates/имя_шаблона/.

Внутри шаблона всегда есть три главных файла:

  • header.php — начало страницы (теги <html>, <head>, шапка сайта);
  • footer.php — конец страницы (футер и закрывающие теги);
  • template_styles.css — основной файл со стилями.

Шапка и футер — это как рамка вокруг контента.
Все страницы используют одни и те же header.php и footer.php, поэтому дизайн и структура сайта остаются едиными.

Пример начала header.php:

<!doctype html>
<html lang="ru">
<head>
  <?php
  use Bitrix\Main\Page\Asset;
  $APPLICATION->ShowHead();
  Asset::getInstance()->addCss(SITE_TEMPLATE_PATH."/styles.css");
  Asset::getInstance()->addJs(SITE_TEMPLATE_PATH."/script.js");
  ?>
  <title><?$APPLICATION->ShowTitle()?></title>
</head>
<body>
  <div id="panel"><?$APPLICATION->ShowPanel();?></div>
  <header>…</header>
  <main>

📢 Подписывайтесь на наш Telegram-канал.

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

👉 https://t.me/codelab_channel

А footer.php обычно просто закрывает main, добавляет футер и закрывает страницу:


  </main>
  <footer>…</footer>
</body>
</html>

Ассеты: где лежат стили, скрипты и картинки

Слово «ассеты» (assets) в Битриксе означает всё, что связано с фронтендом: CSS, JS, изображения, шрифты.

По современной структуре всё своё нужно хранить в папке /local/templates/имя_шаблона/.
Например:

/local/templates/main/
  ├── styles.css
  ├── script.js
  ├── /assets/
       ├── img/
       ├── fonts/

Подключать эти файлы лучше через менеджер ассетов:

use Bitrix\Main\Page\Asset;
Asset::getInstance()->addCss(SITE_TEMPLATE_PATH."/styles.css");
Asset::getInstance()->addJs(SITE_TEMPLATE_PATH."/script.js");

Битрикс потом сам выведет их в нужном месте внутри <head>, оптимизирует, минифицирует и объединит при необходимости.

Можно подключать стили и старым способом:

$APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH."/styles.css");
$APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH."/script.js");

Но метод с Asset::getInstance() современнее и гибче.

Где хранятся мета-теги и как они выводятся

Битрикс выводит мета-теги через метод $APPLICATION->ShowHead(), который стоит в header.php.
Он собирает всё, что вы задали через SetPageProperty() или через $arDirProperties из .section.php, и вставляет это в <head>.

Обычно шаблон сам содержит такие строки:

<meta name="description" content="<?$APPLICATION->ShowProperty('description')?>">
<meta name="robots" content="<?$APPLICATION->ShowProperty('robots')?>">
<meta property="og:title" content="<?$APPLICATION->ShowProperty('og:title')?>">
<meta property="og:description" content="<?$APPLICATION->ShowProperty('og:description')?>">

А <title> берётся из:

<title><?$APPLICATION->ShowTitle()?></title>

Если в .section.php указаны свойства title и description, Битрикс сам подставит их в эти теги.

Почему это удобно

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

  • Хотите добавить раздел — просто создайте папку с index.php и .section.php.
  • Хотите изменить описание раздела — откройте .section.php и отредактируйте пару строк.
  • Хотите поменять дизайн — правьте шаблон в /local/templates/, и изменения применяются ко всему сайту сразу.

А главное — не нужно лезть в каждый index.php, чтобы исправить мета-тег или ссылку. Всё лежит по своим местам, логично и просто.

Немного о порядке в проекте

  • Всё своё — в /local/, ядро — не трогаем.
  • Мета-теги и названия — в .section.php.
  • Контент и компоненты — в index.php.
  • Стили и скрипты — через Asset::getInstance().
  • Шапка и футер — общие, внутри шаблона.
  • Новая страница = новая папка с index.php и .section.php.

Типовая структура проекта на Битриксе

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

/bitrix/                     — ядро системы: модули, компоненты, классы, админка (менять нельзя)
/local/                      — всё пользовательское (безопасное место для работы разработчика)
  /templates/                — шаблоны сайтов (внешний вид)
    /main/                   — основной шаблон сайта
      header.php             — начало страницы, подключение шапки
      footer.php             — завершение страницы, подключение футера
      template_styles.css    — основной файл со стилями шаблона
      script.js              — общий JavaScript для шаблона
      /assets/               — ассеты: изображения, шрифты, стили
        /img/
        /fonts/
  /components/               — собственные компоненты (не системные)
    /implecs/                — пространство имён (ваша компания или проект)
      /news.list/            — пример собственного компонента
        /templates/
          /.default/
            template.php
            style.css
  /php_interface/            — подключаемые файлы, автозагрузка, init.php
/upload/                     — все загруженные файлы через админку или формы
/about/                      — раздел «О компании»
  index.php                  — страница раздела «О компании»
  .section.php               — мета-свойства раздела
/catalog/                    — раздел «Каталог»
  index.php
  .section.php
/contact/                    — раздел «Контакты»
  index.php
  .section.php
/.htaccess                   — конфигурация для Apache (ЧПУ, кеш, защита)
/index.php                   — главная страница сайта
/.section.php                — общие свойства для корневого раздела
/sitemap.xml                 — карта сайта для поисковиков
/robots.txt                  — инструкции для поисковых систем

Как видно, структура чётко разделена по зонам ответственности. Всё системное и стандартное хранится в папке /bitrix/ — туда лучше не вмешиваться, чтобы не нарушить работу ядра и иметь возможность безопасно обновлять систему.

Все доработки, стили, скрипты и шаблоны должны размещаться в /local/. Эта папка полностью принадлежит разработчику, и именно сюда попадает весь ваш уникальный код. Это обеспечивает чистоту проекта и облегчает обновления.

Контент сайта (страницы и разделы) представлен как набор папок: каждая папка — это отдельный раздел, в котором есть свой index.php (контент страницы) и .section.php (настройки SEO и заголовков). Таким образом, если вы видите папку /catalog/, значит на сайте точно есть страница /catalog/.

В корне сайта находятся служебные файлы: .htaccess и robots.txt управляют поведением веб-сервера и поисковых систем, а index.php — это входная точка сайта, которая обычно подключает шаблон и открывает главную страницу.

Итоговая идея проста: ядро Битрикса — отдельно, ваша логика и дизайн — отдельно, а структура папок полностью совпадает с URL-структурой сайта. Благодаря этому проект остаётся понятным, гибким и легко поддерживаемым даже при большом количестве страниц и компонентов.

Комментарии

0

Без регистрации и смс