Назад

Битрикс — пример для файла header.php

Главная
Блог
Битрикс — пример для файла header.php

Файл header.php — это основа любого шаблона в 1С-Битрикс. Он отвечает за подключение мета-тегов, стилей, скриптов и других важных элементов, которые должны загружаться в <head> страницы.

В этой статье разберём:

  • Базовую структуру header.php
  • Подключение CSS и JS (старый и новый D7-способ)
  • Поддержку старых браузеров (IE, Edge)
  • SEO-оптимизацию (canonical, Open Graph)
  • Лучшие практики для ускорения загрузки

1. Базовая структура header.php

1.1. Защита от прямого доступа

Первая строка должна проверять, что файл подключён через ядро Битрикса:

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>

1.2. Определение главной страницы

Полезно для разных макетов или стилей:

<?$isMainPage = $APPLICATION->GetCurPage(false) == SITE_DIR;?>

1.3. HTML-каркас с поддержкой IE

<!DOCTYPE html>
<!--[if lt IE 7]>  <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="<?=LANGUAGE_ID?>"> <![endif]-->
<!--[if IE 7]>     <html class="no-js lt-ie9 lt-ie8" lang="<?=LANGUAGE_ID?>"> <![endif]-->
<!--[if IE 8]>     <html class="no-js lt-ie9" lang="<?=LANGUAGE_ID?>"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="<?=LANGUAGE_ID?>"> <!--<![endif]-->

2. Подключение стилей и скриптов

2.1. Стандартный способ (устаревший, но рабочий)

<?$APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH.'/css/style.css');?>
<?$APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH.'/js/script.js');?>

2.2. Современный способ (D7, рекомендуется)

<?
use Bitrix\Main\Page\Asset;
Asset::getInstance()->addCss(SITE_TEMPLATE_PATH.'/css/main.css');
Asset::getInstance()->addJs(SITE_TEMPLATE_PATH.'/js/main.js');
?>

Почему D7 лучше?

  • Автоматическая проверка дублирования
  • Поддержка defer/async
  • Удобное управление зависимостями

3. Мета-теги и SEO

3.1. Обязательные мета-теги

<meta charset="<?=SITE_CHARSET?>">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">

3.2. Favicon (рекомендуемый формат)

<link rel="icon" href="<?=SITE_TEMPLATE_PATH?>/img/favicon/favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon" sizes="180x180" href="<?=SITE_TEMPLATE_PATH?>/img/favicon/apple-touch-icon.png">

3.3. Open Graph для соцсетей

<?$APPLICATION->ShowMeta('og:title')?>
<?$APPLICATION->ShowMeta('og:description')?>
<?$APPLICATION->ShowMeta('og:image')?>

3.4. Canonical URL (против дублей)

<link rel="canonical" href="<?='https://'.$_SERVER['HTTP_HOST'].$APPLICATION->GetCurPage(false)?>">

4. Поддержка старых браузеров

4.1. HTML5 Shiv для IE8 и ниже

<!--[if lt IE 9]>
<script src="<?=SITE_TEMPLATE_PATH?>/js/html5shiv.min.js"></script>
<![endif]-->

4.2. Предупреждение для устаревших браузеров

<!--[if lt IE 9]>
<div class="browser-warning">
    Ваш браузер устарел! Обновите его для корректной работы сайта.
</div>
<![endif]-->

5. Итоговый пример header.php

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?
use Bitrix\Main\Page\Asset;
$isMainPage = $APPLICATION->GetCurPage(false) == SITE_DIR;
?>
<!DOCTYPE html>
<html lang="<?=LANGUAGE_ID?>">
<head>
    <meta charset="<?=SITE_CHARSET?>">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?$APPLICATION->ShowTitle()?></title>
    
    <!-- Favicon -->
    <link rel="icon" href="<?=SITE_TEMPLATE_PATH?>/img/favicon.ico">
    
    <!-- Подключение стилей -->
    <?Asset::getInstance()->addCss(SITE_TEMPLATE_PATH.'/css/main.css');?>
    
    <!-- Подключение скриптов -->
    <?Asset::getInstance()->addJs(SITE_TEMPLATE_PATH.'/js/main.js');?>
    
    <!-- Open Graph -->
    <?$APPLICATION->ShowMeta('og:title')?>
    
    <!-- Canonical URL -->
    <link rel="canonical" href="<?='https://'.$_SERVER['HTTP_HOST'].$APPLICATION->GetCurPage(false)?>">
</head>
<body class="<?=($isMainPage ? 'home' : 'inner')?>">
    <?$APPLICATION->ShowPanel();?>
    <!--[if lt IE 9]>
        <div class="browser-warning">Ваш браузер устарел!</div>
    <![endif]-->

Вывод

Правильный header.php в Битрикс должен:

  • Подключать ресурсы через D7 (Asset)
  • Поддерживать старые браузеры
  • Иметь SEO-разметку (Open Graph, canonical)
  • Определять главную страницу

Используйте пример выше как основу для своего шаблона!

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