Здравствуйте.
Вопрос такой. Есть сайт. У него на страницах каталога (каталог с 1с) есть компонент, который отображает подразделы.
Везде он работает, но на 4 уровне каталога он выводит не подраздел, а только текщие разделы своего уровня, а нужно что бы выводился именно подраздел.
Как это сделать в случае, если это меню я, в общем то разобралась, но это не компонент меню, а какой то другой компонент.
В компоненте есть код
Шаблон компонента
В нем, как я понимаю, менять нечего.
result_modifier
тут я тоже не опознала данных, которые помогут подправить это дело
Что еще где поменять я не нашла.
Кто знает, как можно вывод этот подправить. по факту, он на всех уровнях до 4 выводит подразделы, а на 4 останавливается . Но обрабатывается все одним и тем же компонентом.
Подскажите, кто может, пожалуйста.
Вопрос такой. Есть сайт. У него на страницах каталога (каталог с 1с) есть компонент, который отображает подразделы.
Везде он работает, но на 4 уровне каталога он выводит не подраздел, а только текщие разделы своего уровня, а нужно что бы выводился именно подраздел.
Как это сделать в случае, если это меню я, в общем то разобралась, но это не компонент меню, а какой то другой компонент.
В компоненте есть код
Шаблон компонента
Код |
---|
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); function showmenu($data, $first) { if ($first) $root_sid = $data['C']; else $root_sid = $data['CP']; $i=0; foreach($data['H'][$root_sid] as $sid): $arSection = $data['SECTIONS'][$sid]; $i++; ?><span <?if($sid==$data['C']):?>class="current"<?endif?>><a href="<?=$arSection["SECTION_PAGE_URL"]?>"><?=$arSection["NAME"]?></a></span><? endforeach; if (!$i && $first) showmenu($data, false); }?> <div class="category clear"><?showmenu($arResult['DATA'], true)?></div> |
result_modifier
тут я тоже не опознала данных, которые помогут подправить это дело
Код |
---|
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); $sections = $arParams['SECTION_ID_FILTER']; if (!count($sections)) { $code = $arParams['SECTION_CODE2']; $id = intval($arParams['SECTION_ID2']); $data = array( 'H' => array(), 'C' => 0, 'CP' => 0, 'SECTIONS' => array() ); foreach ($arResult["SECTIONS"] as &$sect) { $sid = intval($sect['ID']); $data['SECTIONS'][$sid] = $sect; $data['H'][intval($sect['IBLOCK_SECTION_ID'])][] = $sid; $data['H_N'][intval($sect['IBLOCK_SECTION_ID'])][] = $sid . '_' . $sect['NAME']; if ( ($id && $sid == $id) || ($code && $sect['CODE']==$code) ) { $data['C'] = $sid; $data['CP'] = intval($sect['IBLOCK_SECTION_ID']); } } unset($sect); } else { $data = array( 'H' => array(), 'C' => 0, 'CP' => 0, 'SECTIONS' => array() ); foreach ($arResult["SECTIONS"] as &$sect) { $sid = intval($sect['ID']); if (!isset($sections[$sid])) continue; $data['SECTIONS'][$sid] = $sect; $data['H'][0][] = $sid; $data['H_N'][0][] = $sid . '_' . $sect['NAME']; } } $arResult['DATA'] = $data; |
Кто знает, как можно вывод этот подправить. по факту, он на всех уровнях до 4 выводит подразделы, а на 4 останавливается . Но обрабатывается все одним и тем же компонентом.
Подскажите, кто может, пожалуйста.