Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Независимые включаемые области для каждого раздела ИБ

00 голосов
6
Есть информационный блок содержащий несколько разделов.
На странице вывода списка элементов какого-то из разделов этого ИБ необходимо установить включаемую область, содержимое которой, должно быть для каждого раздела ИБ индивидуальным.
/*Чтобы, когда редактор создаст новый раздел, он получил заодно и включаемую область для этого раздела*/

Вопрос: как это сделать?
Точнее, возможно ли это сделать только компонентами/средствами Битрикса, или все-же придется изобретать что-то самой?
спросил 26 Апр, 13 от Awawasa (200 баллов)

6 Ответы

00 голосов
А вы не хотите вместо включаемой области использовать описание раздела? Это сильно проще.
ответил 26 Апр, 13 от Ly (4,580 баллов)
00 голосов
Dmitry Ban: Проще-то проще. Я тоже такой вариант предложила.
Но, как говорится: я птица подневольная. Что скажут, то и пишу.. ))
ответил 27 Апр, 13 от Awawasa (200 баллов)
00 голосов
Цитата
snake_kara пишет:
Но, как говорится: я птица подневольная. Что скажут, то и пишу..

Это еще не повод огород городить. Используйте включаемую область, ради бога. Только в компонент, который в ней будет, ID раздела передавайте. Вот и все.
ответил 23 Июнь, 13 от Pomnep (13,960 баллов)
00 голосов
Если использовать этот метод, то надо успеть отбежать подальше, пока заказчик не протетировал работу.

По уму нужно сделать следующие вещи.

1) Завести шаблон включаемой области.
Для этого нужно создать файл в каталоге /bitrix/templates/.default/page_templates/ по аналогии с существующими. Файл может состоять всего из одной строки (<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>), т.е. быть пустым.
Этот файл также нужно добавить в .content.php в том же каталоге. Параметр name пропишите руками.

Предположим, что ваш шаблон включаемой области будет называться perv_inc.php.

2) Создать каталог для ваших включаемых областей.
Где-нибудь в публичной части. Допустим, /includes

3) Добавить в шаблон компонента код для подключения включаемых областей. Что-то типа:
Код
<?
$includeName = 'section_'.intval($arParams['SECTION_ID']).'.php';
$APPLICATION->IncludeFile(
    $APPLICATION->GetTemplatePath('/includes/'.$includeName),
    array(),
    array('MODE' => 'html', 'TEMPLATE' => 'perv_inc.php')
);
?>
ответил 27 Сен, 13 от Ly (4,580 баллов)
00 голосов
Цитата
Евгений Жуков пишет:
Используйте включаемую область, ради бога. Только в компонент, который в ней будет, ID раздела передавайте.

Во включаемой области текст будет.
Компонента вывода списка элементов вне включаемой области.


Dmitry Ban: Спасибо. Ваше предложение понятно. Я просто думала может саму компоненту включаемой области можно как-то поднастроить. ))

Но в общем: всем спасибо за участие.
Проблема уже решена. ))
ответил 27 Дек, 13 от Awawasa (200 баллов)
00 голосов
Цитата
Dmitry Ban пишет:
Если использовать этот метод, то надо успеть отбежать подальше, пока заказчик не протетировал работу.

По уму нужно сделать следующие вещи.

1) Завести шаблон включаемой области.
Для этого нужно создать файл в каталоге /bitrix/templates/.default/page_templates/ по аналогии с существующими. Файл может состоять всего из одной строки (<?if(!defined("B_PROLOG_INCLUDED";) || B_PROLOG_INCLUDED!==true)die();?>;), т.е. быть пустым.
Этот файл также нужно добавить в .content.php в том же каталоге. Параметр name пропишите руками.

Предположим, что ваш шаблон включаемой области будет называться perv_inc.php.

2) Создать каталог для ваших включаемых областей.
Где-нибудь в публичной части. Допустим, /includes

3) Добавить в шаблон компонента код для подключения включаемых областей. Что-то типа:
Код
 <?
$includeName = 'section_'.intval($arParams['SECTION_ID']).'.php';
$APPLICATION->IncludeFile(
    $APPLICATION->GetTemplatePath('/includes/'.$includeName),
    array(),
    array('MODE' => 'html', 'TEMPLATE' => 'perv_inc.php')
);
?>
 
Спасибо за ваше решение;) единственное вместо $arParams['SECTION_ID'] заменила на $_REQUEST['SECTION_ID']
ответил 13 Апр, 14 от daa (100 баллов)
может что-то изменилось , но не работает :(

Похожие вопросы

0 голосов
4 ответов
0 голосов
2 ответов
спросил 13 Сен, 13 от TRaMVau (140 баллов)
0 голосов
4 ответов
спросил 16 Июнь, 13 от PWNpanda (260 баллов)
0 голосов
1 ответ
спросил 17 Март, 13 от megacool (120 баллов)
0 голосов
1 ответ