Ситуация:
При Редактировании параметров компонента (компонент: bitrix.news),
Настройки списка > Свойства
Добавил THEMES, и снизу у анонсах новостей стало показывать Темы, к которым прикреплена новость:
28.12.2009 Зоголовок Новости 01. Зоголовок Новости 01.
Анонс новости 01. Анонс новости 01. Анонс новости 01. Анонс новости 01. Анонс новости 01. Анонс новости 01. Анонс новости 01. Анонс новости 01. Анонс новости 01. Анонс новости 01. Анонс новости 01....
Темы: ПодПодтема 1.1.2
Темы: ПодПодтема 1.2.2
Темы: ПодПодтема 1.2.3
Т.е. новость м.б. прикреплена более чем к одной теме. И посетителю лучше ориентироваться в контенте, если он сразу это видит.
Но дело в том, что «дерево» тем выглядит так:
Тема 1
Подтема 1.1
ПодПодтема 1.1.1
ПодПодтема 1.1.2
Подтема 1.2
ПодПодтема 1.2.1
ПодПодтема 1.2.2
ПодПодтема 1.2.3
Подтема 1.3
Тема 2
Подтема 2.1
ПодПодтема 2.1.1
ПодПодтема 2.1.2
Подтема 2.2
Тема 3
Т.е. нужно, что бы темы выводились всей цепочкой тем:
Темы: Тема1 > Подтема 1.1 > ПодПодтема 1.1.2
Темы: Тема1 > Подтема 1.2 > ПодПодтема 1.2.2
Темы: Тема1 > Подтема 1.2 > ПодПодтема 1.2.3
Я решил использовать для этого «навигационную цепочку», и изначальный код в файле: \news.list\.default\template.php который отвечает за вывод тем в анонсе новостей:
<?foreach($arItem["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
<small>
<?=$arProperty["NAME"]?>:
<?if(is_array($arProperty["DISPLAY_VALUE"])):?>
<?=implode(" / ", $arProperty["DISPLAY_VALUE"]);?>
<?else:?>
<?=$arProperty["DISPLAY_VALUE"];?>
<?endif?>
</small><br />
<?endforeach;?>
Заменил/исправил на:
<?foreach($arItem["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
<small><br />
<?=$arProperty["NAME"]?>:
<?if(is_array($arProperty["VALUE"])):?>
<?
$arSectionFilter["ID"] = $arProperty["VALUE"];
$rsSection = CIBlockSection::GetList(Array(), $arSectionFilter);
if($arSection = $rsSection->GetNext())
{
$rsPath = GetIBlockSectionPath($arSection["IBLOCK_ID"], $arSection["ID"]);
while($arPath = $rsPath->GetNext())
{
$APPLICATION->AddChainItem($arPath["NAME"], $arPath["SECTION_PAGE_URL"]);
}
}?>
<?else:?>
<?
$arSectionFilter["ID"] = $arProperty["VALUE"];
$rsSection = CIBlockSection::GetList(Array(), $arSectionFilter);
if($arSection = $rsSection->GetNext())
{
$rsPath = GetIBlockSectionPath($arSection["IBLOCK_ID"], $arSection["ID"]);
while($arPath = $rsPath->GetNext())
{
$APPLICATION->AddChainItem($arPath["NAME"], $arPath["SECTION_PAGE_URL"]);
}
}?>
<?endif?>
</small><br />
<?endforeach;?>
Вишневым цветом, то что я исправил/заменил. Код работает, но «отправляет» все в существующую «навигационную цепочку»
Вопрос: Как мне изменить часть кода:
$APPLICATION->AddChainItem
Я его выделил красным, что бы результат не «отправлялся» наверх в существующую навигационную цепочку, а оставался снизу анонса новости?
Заранее спасибо,
И если выскажете свое решение, данной задачи, буду благодарен.
При Редактировании параметров компонента (компонент: bitrix.news),
Настройки списка > Свойства
Добавил THEMES, и снизу у анонсах новостей стало показывать Темы, к которым прикреплена новость:
28.12.2009 Зоголовок Новости 01. Зоголовок Новости 01.
Анонс новости 01. Анонс новости 01. Анонс новости 01. Анонс новости 01. Анонс новости 01. Анонс новости 01. Анонс новости 01. Анонс новости 01. Анонс новости 01. Анонс новости 01. Анонс новости 01....
Темы: ПодПодтема 1.1.2
Темы: ПодПодтема 1.2.2
Темы: ПодПодтема 1.2.3
Т.е. новость м.б. прикреплена более чем к одной теме. И посетителю лучше ориентироваться в контенте, если он сразу это видит.
Но дело в том, что «дерево» тем выглядит так:
Тема 1
Подтема 1.1
ПодПодтема 1.1.1
ПодПодтема 1.1.2
Подтема 1.2
ПодПодтема 1.2.1
ПодПодтема 1.2.2
ПодПодтема 1.2.3
Подтема 1.3
Тема 2
Подтема 2.1
ПодПодтема 2.1.1
ПодПодтема 2.1.2
Подтема 2.2
Тема 3
Т.е. нужно, что бы темы выводились всей цепочкой тем:
Темы: Тема1 > Подтема 1.1 > ПодПодтема 1.1.2
Темы: Тема1 > Подтема 1.2 > ПодПодтема 1.2.2
Темы: Тема1 > Подтема 1.2 > ПодПодтема 1.2.3
Я решил использовать для этого «навигационную цепочку», и изначальный код в файле: \news.list\.default\template.php который отвечает за вывод тем в анонсе новостей:
<?foreach($arItem["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
<small>
<?=$arProperty["NAME"]?>:
<?if(is_array($arProperty["DISPLAY_VALUE"])):?>
<?=implode(" / ", $arProperty["DISPLAY_VALUE"]);?>
<?else:?>
<?=$arProperty["DISPLAY_VALUE"];?>
<?endif?>
</small><br />
<?endforeach;?>
Заменил/исправил на:
<?foreach($arItem["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
<small><br />
<?=$arProperty["NAME"]?>:
<?if(is_array($arProperty["VALUE"])):?>
<?
$arSectionFilter["ID"] = $arProperty["VALUE"];
$rsSection = CIBlockSection::GetList(Array(), $arSectionFilter);
if($arSection = $rsSection->GetNext())
{
$rsPath = GetIBlockSectionPath($arSection["IBLOCK_ID"], $arSection["ID"]);
while($arPath = $rsPath->GetNext())
{
$APPLICATION->AddChainItem($arPath["NAME"], $arPath["SECTION_PAGE_URL"]);
}
}?>
<?else:?>
<?
$arSectionFilter["ID"] = $arProperty["VALUE"];
$rsSection = CIBlockSection::GetList(Array(), $arSectionFilter);
if($arSection = $rsSection->GetNext())
{
$rsPath = GetIBlockSectionPath($arSection["IBLOCK_ID"], $arSection["ID"]);
while($arPath = $rsPath->GetNext())
{
$APPLICATION->AddChainItem($arPath["NAME"], $arPath["SECTION_PAGE_URL"]);
}
}?>
<?endif?>
</small><br />
<?endforeach;?>
Вишневым цветом, то что я исправил/заменил. Код работает, но «отправляет» все в существующую «навигационную цепочку»
Вопрос: Как мне изменить часть кода:
$APPLICATION->AddChainItem
Я его выделил красным, что бы результат не «отправлялся» наверх в существующую навигационную цепочку, а оставался снизу анонса новости?
Заранее спасибо,
И если выскажете свое решение, данной задачи, буду благодарен.