Интересные статьи

После решения задачи, хочется рассказать об этом

Натяжка верстки сайта на Битрикс. Интеграция шаблона сайта

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


Интегрируем шаблон сайтана битрикс

Подготавливаем путь для файлов шаблона, где будут лежать все файлы верстки, компонентов, языковые файлы, header.php и footer.php и остальные нужные проекту файлы Путь будет такой /local/templates/main/ Папку с шаблоном назовем "main" Работать будем с папкой local, а bitrix трогать вообще не будем. Разделим верстку страницы в битрикс на три части.

  • Первую положим в header.php
  • Вторую положим в index.php
  • Третью положим в footer.php

Файлы header.php и footer.php будут подключаться на каждой странице сайта, а index.php будет у каждой странице свой.

header.php

В файле /local/templates/main/header.php понадобятся следующие записи

  • if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); Данная строчка указывается в начале файла, для секюртости. Чтобы не могли открыть данный файл на прямую из браузера, без подключения ядра битрикса
  • IncludeTemplateLangFile(__FILE__);Подключаются языковые файлы для шаблона
  • $APPLICATION->ShowTitle();Отображение заголовка страницы из $APPLICATION->SetTitle("title")
  • $APPLICATION->ShowHead();Выводит необходимый функционал в head
  • $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH."/css/index.css");Подключается к шаблону файлы стилей, например для объединения
  • $APPLICATION->ShowPanel();Подключает панель битрикса
  • SITE_TEMPLATE_PATH;Содержит путь до шаблона, без последнего слеша, в частности /local/templates/main
  • $APPLICATION->ShowTitle(false);Отображение заголовка страницы из $APPLICATION->SetPageProperty("title")
  • $APPLICATION->GetCurPage(false) === '/';Необходим, если главная страница отличается от внутренней по верстке

footer.php

В файле /local/templates/main/footer.php понадобятся следующие записи

  • if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();Рассмотрено выше
  • IncludeTemplateLangFile(__FILE__);Рассмотрено выше
  • $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH."/js/index.js");Подключается к шаблону файлы скриптов, например для объединения
  • SITE_TEMPLATE_PATH;Рассмотрено выше
  • $APPLICATION->GetCurPage(false) === '/';Рассмотрено выше

description.php

В файле /local/templates/main/description.php понадобятся следующие записи

  • if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); //Рассмотрено выше
  • IncludeTemplateLangFile(__FILE__); //Рассмотрено выше
  • $arTemplate = Array("NAME"=>GetMessage('T_DEFAULT_DESC_NAME'), "DESCRIPTION"=>GetMessage('T_DEFAULT_DESC_DESC')); //Записываем имя шаблона и описание. T_DEFAULT_DESC_NAME и T_DEFAULT_DESC_DESC их значения лежат в языковых фалах в виде $MESS ['T_DEFAULT_DESC_NAME'] = "Главный шаблон";.

index.php

В файле /index.php понадобятся следующие записи

  • require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); //Подключение шапки
  • require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php"); //Подключение подвала

.section.php

В файле /.section.php понадобятся следующие записи

  • $sSectionName = "Webpack app"; //Имя раздела в админ панели
  • $arDirProperties = array("title" => "Webpack app", "description" => "", "keywords" => "", "robots" => ""); //Свойства раздела,используются как $APPLICATION->SetPageProperty("title")

Другие файлы и папки

В папке шаблона /local/templates/main/ также размещаются другие необходимые для работы файлы и папки

  • components папка с компонентами -> bitrix пространство имен -> menu название компонента -> top имя шаблона -> template.php и др файлы компонента
  • css -> index.css и другие файлы со стилями
  • fonts -> файлы со шрифтами
  • img -> файлы с изображениями
  • include -> файлы подключаемые с помощью компонента $APPLICATION->IncludeComponent("bitrix:main.include", "", Array(), false);
  • js -> index.js и другие файлы со скриптами
  • lang -> en/ru -> description.php и другие файлы соименные файлы, где необходимо используется конструкция вида GetMessage('T_DEFAULT_DESC_NAME')

Подключение необходимых компонентов и другого функционала для окончанительной интеграции верстки на битрикс

На этом проекте были использованы следующие компоненты и функционал

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