Столкнулся с проблемой вывода описания раздела каталога продукции с использование пользовательских полей информационного блока.
Каталог продукции /catalog/ формируется на компоненте news и разделы/подразделы генерируются из файла компонента /bitrix/templates/шаблон/components/bitrix/news/catalog/sect ion.php
Передо мной стоит задача вывести информацию в разделе каталога продукции в следующем порядке:
<p>краткое описание раздела</p> (нужно вывести)
<div>блок с подразделами</div> (выводится через компонент)
<p>краткое описание продукции раздела и подразделов</p> (нужно вывести)
<div>блок с продукцией</div> (выводится через компонент)
<p>полное описание раздела</p> (выводится стандартно)
Так выводится текст на все разделы и подразделы, при условии наличия подразделов
<?if($arSubSections):?>
<p>Описание раздела каталога продукции.</p>
<?endif;?>
Так выводится текст с продукцией из каталога, при условии наличия товаров в данном разделе
<?if($itemsCnt):?>
<p>Описание продукции раздела каталога продукции</p>
<?endif;?>
Мне нужно, чтобы эти два блока генерировались из Битрикс автоматически, и в данное место подставлялись данные пользовательских полей разделов информационного блока.
У меня есть два кода:
1. Генерирует все пользовательские поля UF_LITEABOUT в одним блок и выводит их у всех разделов.
<?
$IBLOCK_ID = 12;
$arFilter = array('IBLOCK_ID' => $IBLOCK_ID, 'ACTIVE' => 'Y');
$arSelect = array('UF_LITEABOUT');
$rsSection = CIBlockSection::GetTreeList($arFilter, $arSelect);
while ($arSection = $rsSection->Fetch()) {
echo $arSection['UF_LITEABOUT'];
}
?>
2. Генерирует пользовательское поле UF_LITEABOUT раздела 1 уровня, и выводит блок с этим полем у всех подразделов.
<?
$rsResult = CIBlockSection::GetList(array("SORT" => "ASC"), array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "ID" =>$arResult["SECTION"]["ID"]), false, $arSelect = array("UF_*"));
if($arSection = $rsResult -> GetNext())
{
$arResult["SECTION_USER_FIELDS"]["UF_LITEABOUT"] = $arSection["UF_LITEABOUT"];
}
if($arResult["SECTION_USER_FIELDS"]["UF_LITEABOUT"]) {
echo htmlspecialchars_decode($arResult["SECTION_USER_FIELDS"]["UF_LITEABOUT"])";
}
?>
Не могу решить проблему и чтобы у каждого раздела на странице подставлялось собственное описание из пользовательского поля.
В другие cms это решается пару кликами, а в битриксе не могу понять.
Каталог продукции /catalog/ формируется на компоненте news и разделы/подразделы генерируются из файла компонента /bitrix/templates/шаблон/components/bitrix/news/catalog/sect
Передо мной стоит задача вывести информацию в разделе каталога продукции в следующем порядке:
<p>краткое описание раздела</p> (нужно вывести)
<div>блок с подразделами</div> (выводится через компонент)
<p>краткое описание продукции раздела и подразделов</p> (нужно вывести)
<div>блок с продукцией</div> (выводится через компонент)
<p>полное описание раздела</p> (выводится стандартно)
Так выводится текст на все разделы и подразделы, при условии наличия подразделов
<?if($arSubSections):?>
<p>Описание раздела каталога продукции.</p>
<?endif;?>
Так выводится текст с продукцией из каталога, при условии наличия товаров в данном разделе
<?if($itemsCnt):?>
<p>Описание продукции раздела каталога продукции</p>
<?endif;?>
Мне нужно, чтобы эти два блока генерировались из Битрикс автоматически, и в данное место подставлялись данные пользовательских полей разделов информационного блока.
У меня есть два кода:
1. Генерирует все пользовательские поля UF_LITEABOUT в одним блок и выводит их у всех разделов.
<?
$IBLOCK_ID = 12;
$arFilter = array('IBLOCK_ID' => $IBLOCK_ID, 'ACTIVE' => 'Y');
$arSelect = array('UF_LITEABOUT');
$rsSection = CIBlockSection::GetTreeList($arFilter, $arSelect);
while ($arSection = $rsSection->Fetch()) {
echo $arSection['UF_LITEABOUT'];
}
?>
2. Генерирует пользовательское поле UF_LITEABOUT раздела 1 уровня, и выводит блок с этим полем у всех подразделов.
<?
$rsResult = CIBlockSection::GetList(array("SORT" => "ASC"), array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "ID" =>$arResult["SECTION"]["ID"]), false, $arSelect = array("UF_*"));
if($arSection = $rsResult -> GetNext())
{
$arResult["SECTION_USER_FIELDS"]["UF_LITEABOUT"] = $arSection["UF_LITEABOUT"];
}
if($arResult["SECTION_USER_FIELDS"]["UF_LITEABOUT"]) {
echo htmlspecialchars_decode($arResult["SECTION_USER_FIELDS"]["UF_LITEABOUT"])";
}
?>
Не могу решить проблему и чтобы у каждого раздела на странице подставлялось собственное описание из пользовательского поля.
В другие cms это решается пару кликами, а в битриксе не могу понять.