70  /  331

Управление включаемыми областями

Просмотров: 9394 (Статистика ведётся с 06.02.2017)

Содержимое включаемых областей хранится в отдельных PHP или HTML файлах. Области для страниц или разделов сохраняются с некоторым суффиксом. Например, в поставляемых файлах продукта в качестве обозначения включаемой области для страницы используется суффикс _inc (например, index_inc.php), а включаемая область для раздела сайта сохраняется в файле с именем sect и добавлением к нему суффикса (например, sect_inc.php).

Важно! Файл с включаемой областью должен быть сохранен в той же директории, что и страница, для которой он был создан. Включаемая область для раздела - в папке этого раздела.

Подключение областей в шаблоне дизайна сайта выполняется с помощью компонента Вставка включаемой области либо с помощью функции IncludeFile().

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

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

Примечание: Тип включаемой области определяется опцией Показывать включаемую область.

Если компонент расположить в шаблоне дизайна сайта, то информация из файла будет выводиться на всем сайте. Установка параметра доступна только пользователю с правами edit_php.

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


Размещение включаемой области

Для размещения включаемой области выполните следующее:

  • Откройте для редактирования шаблон сайта или страницу в визуальном редакторе.
  • Добавьте компонент Вставка включаемой области (bitrix:main.include) в шаблон сайта (или в тело страницы) и настройте его параметры.

Использование включаемых областей при интеграции в дизайн имеет ограничение. Оно связано с размером, отведенным под ячейку, в которой размещен компонент. Если вводимый текст, картинка, либо что-то еще по своим размерам больше, чем отведенное компоненту место, то дизайн «поедет», то есть исказится.

Использование включаемых областей позволяет управлять не только текстом. Можно поместить в эту область картинку вместо текста (или компонент Случайное фото) и получить индивидуальный вид каждого раздела. При этом индивидуальность будет «динамическая», изменяемая.


Создание и редактирование включаемой области

Создание включаемых областей может быть выполнено:

  • из административного раздела в Менеджере файлов (Контент > Структура сайта > Файлы и папки), создав файл с соответствующим именем;
  • из публичного раздела сайта в режиме правки. В тех местах, где предполагается вывод включаемых областей, будут показаны иконки для быстрого перехода к созданию этих областей.

    Примечание: Файл включаемой области будет создан и назван в соответствии указанным в настройках компонента суффиксом - для опции для раздела, или именем файла - для опции из файла.

    После выбора команды Добавить область будет запущен визуальный редактор для создания содержимого включаемой области. При выборе команды Добавить область как PHP станет возможным добавление области в режиме РНР кода

Аналогично перейти к редактированию включаемых областей можно:

  • непосредственно из публичного раздела сайта в режиме правки;

  • либо из административного раздела, открыв для редактирования соответствующий файл в Менеджере файлов.

Внимание! Если в качестве включаемой области будет использоваться вариант из файла, то необходимо проверить, что файл подключен из системы, а не вызван напрямую. Делается это с помощью следующей строки:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>.

Пример содержимого включаемого файла:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
  <div class="bx-main-title">World Book</div>
  <span class="bx-main-subtitle">Все книги мира</span>


Шаблоны включаемых областей

Включаемые области создаются на основе шаблонов, хранящихся в папках с именем /page_templates/:

  • /bitrix/templates/.default/page_templates/ - если данный шаблон включаемой области используется для всех шаблонов дизайна сайта;
  • /bitrix/templates/<идентификатор шаблона>/page_templates/ - если для шаблона сайта используются отдельные шаблоны включаемых областей.

Чтобы в визуальном редакторе можно было выбирать шаблон, на основе которого создается редактируемая область, список шаблонов для редактируемых областей должен быть добавлен в файл .content.php.

Файл .content.php хранится в папке /page_templates/ в каталоге соответствующего шаблона сайта.

Пример содержимого файла:

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

IncludeTemplateLangFile(__FILE__);

$TEMPLATE["standard.php"] = Array("name"=>GetMessage("standart"), "sort"=>1);
$TEMPLATE["page_inc.php"] = Array("name"=>GetMessage("page_inc"), "sort"=>2);
$TEMPLATE["sect_inc.php"] = Array("name"=>GetMessage("sect_inc"), "sort"=>3);
?>

Следует обратить внимание на то, что имя шаблона может быть передано параметром при подключении редактируемой области в шаблоне сайта ("TEMPLATE"=>"page_inc.php" в примере ниже).


Если подключение редактируемых областей выполняется с помощью PHP функции IncludeFile(), помещаемой в соответствующие места шаблона дизайна, то код может иметь такой вид:

<?
$APPLICATION->IncludeFile(substr($APPLICATION->GetCurPage(),
0, strlen($APPLICATION->GetCurPage())-4)."_inc.php", Array(),
Array("MODE"=>"html", "NAME"=>GetMessage("PAGE_INC"), "TEMPLATE"=>"page_inc.php"));
?>
<?
$APPLICATION->
IncludeFile($APPLICATION->GetCurDir()."sect_inc.php", Array(), Array("MODE"=>"html",
"NAME"=>GetMessage("SECT_INC"), "TEMPLATE"=>"sect_inc.php"));
?>

Примечание: Если переменная не будет указана, то система возьмёт шаблон по умолчанию, которым является шаблон для страницы.


Удаление включаемых областей из демонстрационного шаблона

В коде шаблона необходимо закомментировать или удалить строку, отвечающую за подключение включаемой области. Обычно, это файлы, заканчивающиеся на _inc.php.

Строка имеет примерно следующий вид:

<?
$APPLICATION->IncludeFile(
substr($APPLICATION->GetCurPage(), 0, strlen($APPLICATION->GetCurPage())-4)."_inc.php",
Array(),
Array("MODE"=>"html", "NAME"=>GetMessage("PAGE_INC"), "TEMPLATE"=>"page_inc.php"));
?>


27
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии