Назад

Создание шаблона сайта для 1С-Битрикс с нуля

Главная
Блог
Создание шаблона сайта для 1С-Битрикс с нуля

Система управления контентом 1С-Битрикс заслуженно считается одной из самых мощных и гибких платформ для создания веб-сайтов любой сложности. Одной из ключевых особенностей этой CMS является продуманная система шаблонов, которая позволяет полностью отделить визуальное представление сайта от его бизнес-логики и содержания. Это означает, что дизайнеры и верстальщики могут работать над внешним видом проекта, не вмешиваясь в работу программистов, отвечающих за функциональность.

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

Основы архитектуры шаблона

Все шаблоны сайтов в Битрикс хранятся в директории /bitrix/templates/ или же в локальной папке /local/templates/ (рекомендуемый подход). Каждый шаблон представляет собой отдельную папку со своим уникальным именем внутри этой директории. Это имя является системным идентификатором вашего шаблона и используется платформой для его однозначного определения.

Минимальный набор файлов для функционирующего шаблона включает:

  • description.php — файл-описатель, содержащий метаданные шаблона (название, описание и другие параметры);

  • header.php — верхняя часть всех страниц сайта (объявление DOCTYPE, секция <head>, открывающий тег <body>, шапка сайта);

  • footer.php — нижняя часть всех страниц (подвал сайта, закрывающие теги </body></html>);

  • styles.css — основной файл каскадных таблиц стилей;

  • template_styles.css — дополнительный файл стилей, подключаемый системой автоматически;

  • page_templates/ — директория для хранения шаблонов отдельных типов страниц (опционально, но крайне полезно для сложных проектов).

Практическое создание шаблона через админ-панель

Давайте создадим наш первый шаблон, который назовем modern_layout.

  1. В административной панели перейдите в раздел: Контент > Сайты > Шаблоны сайтов.

  2. В списке шаблонов нажмите кнопку "Добавить шаблон" в верхней части страницы.

  3. Заполните обязательные поля формы:

    • ID шаблона: modern_layout (это имя станет идентификатором папки шаблона);

    • Название: Современный макет (удобочитаемое название, отображаемое в списке шаблонов);

    • Описание: Адаптивный шаблон для корпоративного сайта с современным дизайном.

  4. В поле "Код шаблона" вставьте следующий базовый каркас:

<?php
// Защита от прямого обращения к файлу
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die();
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?$APPLICATION->ShowTitle()?></title>
    <?$APPLICATION->ShowHead()?>
</head>
<body>
    <?$APPLICATION->ShowPanel(); // Отображение административной панели ?>
    <div id="page-wrapper">
        <!-- Область для уникального содержимого каждой страницы -->
        #WORK_AREA#
    </div>
</body>
</html>

Детальный разбор ключевых элементов кода:

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

  • <?$APPLICATION->ShowTitle()?> — это место, где Битрикс автоматически подставляет заголовок (Title) текущей страницы, заданный в административном разделе.

  • <?$APPLICATION->ShowHead()?> — критически важная функция, которая подключает все необходимые элементы в секцию <head>: мета-теги (keywords, description), скрипты (включая ядро Битрикс) и стили, требуемые для корректной работы компонентов.

  • <?$APPLICATION->ShowPanel();?> — выводит административную панель управления для пользователей с соответствующими правами доступа. Это незаменимый инструмент во время разработки и наполнения сайта контентом.

  • #WORK_AREA# — это специальный маркер-заполнитель. На его месте будет отображаться основное содержимое конкретной страницы (текст, компоненты, динамический контент).

После сохранения система автоматически разделит предоставленный код на два файла: header.php (все, что расположено до #WORK_AREA#) и footer.php (все, что после). Файл description.php будет автоматически заполнен на основе введенных вами данных.

<?php
// Файл /bitrix/templates/modern_layout/description.php
$arTemplate = array (
    'NAME' => 'Современный макет',
    'DESCRIPTION' => 'Адаптивный шаблон для корпоративного сайта с современным дизайном',
    'SORT' => 100, // Порядок отображения в списке шаблонов
    'TYPE' => '', // Тип шаблона
);
?>

Оптимальная структура папок шаблона

Грамотно организованная структура директорий — фундамент для удобной поддержки и масштабирования проекта. Рекомендуется создать внутри папки modern_layout следующие директории:

  • css/ — для дополнительных файлов стилей (например, plugins.css, fonts.css);

  • js/ — для JavaScript-файлов (main.js, components.js);

  • images/ — для всех изображений, используемых в шаблоне (иконки, фоновые изображения, логотипы);

  • includes/ — для включаемых областей (редактируемые блоки контента);

  • components/ — для кастомизированных шаблонов стандартных компонентов.

Критически важный момент: Используйте константу SITE_TEMPLATE_PATH. Она всегда содержит актуальный путь к текущему активному шаблону (например, /bitrix/templates/modern_layout). Это избавляет от "хардкода" и делает шаблон независимым от своего системного имени.

Правильный подход:

<script src="<?=SITE_TEMPLATE_PATH?>/js/main.js"></script>
<link rel="stylesheet" href="<?=SITE_TEMPLATE_PATH?>/css/plugins.css">
<img src="<?=SITE_TEMPLATE_PATH?>/images/logo.svg" alt="Логотип компании">

Ошибочный подход (хардкод):

<script src="/bitrix/templates/modern_layout/js/main.js"></script>
<!-- При переименовании шаблона все подобные ссылки перестанут работать! -->

В CSS-файлах следует использовать относительные пути.
Пример в styles.css:

.header {
    background: url('images/header-bg.jpg'); /* Путь относительно файла styles.css */
}
.hero-section {
    background: url('../images/hero-bg.jpg'); /* Если стиль в css/plugins.css */
}

Включаемые области — инструмент гибкого управления контентом

Включаемые области — это мощный механизм, позволяющий добавлять на статические страницы (главная, "О компании", "Контакты") редактируемые через визуальный редактор блоки контента.

Практический пример: Создание редактируемого блока контактной информации в подвале сайта.

  1. Создайте файл включаемой области: / bitrix / templates / modern_layout/ includes / company_contacts.php

  2. Наполните его базовой HTML-разметкой:

<div class="company-contacts">
    <p class="copyright">© <?=date('Y')?> Название Вашей Компании. Все права защищены.</p>
    <p class="address">г. Москва, ул. Примерная, д. 1</p>
    <p class="phone">Телефон: <a href="tel:+74951234567">+7 (495) 123-45-67</a></p>
</div>

  1. В соответствующем месте шаблона (например, в footer.php) подключите эту область с помощью компонента:

<?php
$APPLICATION->IncludeComponent(
    "bitrix:main.include",
    "",
    array(
        "AREA_FILE_SHOW" => "file", // Режим отображения - из файла
        "PATH" => SITE_TEMPLATE_PATH . "/includes/company_contacts.php", // Абсолютный путь к файлу
        "EDIT_TEMPLATE" => "standard.php" // Шаблон для режима редактирования
    )
);?>

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

Принцип работы шаблона на примере типовой страницы

Рассмотрим, как система рендерит обычную страницу, например, /about/company.php.

  1. Код страницы /about/company.php typically имеет следующую структуру:

<?
// Подключаем общий header (из нашего шаблона)
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
?>

    <main class="content">
        <h1 class="page-title"><?$APPLICATION->ShowTitle()?></h1>
        <div class="text-block">
            <p>Это страница "О компании". Ее уникальное содержимое...</p>
            <!-- Здесь могут быть подключены комплексные компоненты -->
        </div>
    </main>

<?
// Подключаем общий footer (из нашего шаблона)
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>

  1. При обращении к странице происходит следующее:

    • Выполняется код из header.php шаблона. Формируется начало HTML-документа.

    • Выполняется код самой страницы /about/company.php. Содержимое этого файла подставляется на место маркера #WORK_AREA# в шаблоне.

    • Выполняется код из footer.php шаблона. Документ завершается.

Таким образом, шаблон задает единую обертку для всех страниц сайта, а каждая отдельная страница отвечает исключительно за свое уникальное содержимое.

Заключение

Создание собственного шаблона в 1С-Битрикс — это не просто техническая процедура, а творческий процесс проектирования архитектуры будущего сайта. Вы закладываете фундамент, на котором будет строиться весь последующий проект. В этом руководстве мы рассмотрели ключевые аспекты: создание каркаса, организацию оптимальной структуры, использование включаемых областей и принципы взаимодействия шаблона с системой.

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

Успехов в освоении безграничных возможностей платформы 1С-Битрикс!

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