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

Каталог.

00 голосов
6
Доброго времени суток.
Имею каталог, с 3-м уровнем вложенности.
Имею дизайн который для каждого раздела 1-го уровня каталога должен менять раскраску сайта.
Вопрос, как находясь что на втором что на 3-м уровне вложенности мне узнать в корне какой папки они лежат.
Как можно находясь в катологе на n-м уровне вложенности узнать в компоненте catalog.section.list кто был 1-й родидель у данного раздела, для того чтобы сделать данный пункт выделенным из общей массы всех разделов 1-го уровня.
спросил 11 Авг, 13 от Grimmi (2,560 баллов)

6 Ответы

00 голосов
Посмотрите $arResult["SECTION"]["PATH"] или используйте CIBlockSection::GetNavChain().
ответил 11 Авг, 13 от Ly (4,580 баллов)
00 голосов
спасибо за наводку, $arResult["SECTION"]["PATH"] - пологаю в компоненте каталога используется. тогда неполучится у меня catalog.section.list,
CIBlockSection::GetNavChain() - что то пример приведенный там у меня не стработал, вывел только стрелки - уровень определил верно ,а ни одной ссылки не вывел, пошел ковырять код напильником, глядишь под себя заточу.
Спасибо
ответил 14 Окт, 13 от Grimmi (2,560 баллов)
00 голосов
Попробуйте GetIBlockSectionPath() http://dev.1c-bitrix.ru/community/forums/forum6/topic1640/
ответил 15 Янв, 14 от Ritsu (260 баллов)
00 голосов
Спасибо , опробую обязательно, пол дня убил с затачиванием, клинит на выводе и все, так что альтернативный вариант очень кстати.
ответил 03 Май, 14 от Grimmi (2,560 баллов)
00 голосов
Функция GetIBlockSectionPath() -- это обёртка для CIBlockSection::GetNavChain(). В компоненте catalog.section.list встречается её вызов, как раз для формирования $arResult["SECTION"]["PATH"].
ответил 29 Авг, 14 от Ly (4,580 баллов)
00 голосов
Дмитрий , подскажите, вот размещаю вот такой код на странице:
Код
<?
$nav = CIBlockSection::GetNavChain(2, 15); //2 - id ИБ каталога, 15 ID = SECTION_ID
   while($nav->ExtractFields("nav_")):
    $tek2++;
    if($guid2 != $nav_ID):
      if ($tek2==1){ $ono=$nav_ID;}
    endif;
   endwhile;

?>
<?echo 'Раздел 1-го уровня='.$ono;?>

К примеру у 15 (3-й уровень вложенности) это будет 49 (id раздела 1-й уровеня). Все правильно.
Вставляю этот код в шаблон catalog.section.list и он перестает работать $nav - еще объект а дальше все пустое значение.
ответил 04 Янв, 15 от Grimmi (2,560 баллов)

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

+1 голос
1 ответ
спросил 08 Март, 18 от аноним
0 голосов
1 ответ
0 голосов
1 ответ
спросил 01 Июнь, 15 от аноним