Здравствуйте.
Вопрос такой. Есть сайт. У него на страницах каталога (каталог с 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 останавливается . Но обрабатывается все одним и тем же компонентом.
Подскажите, кто может, пожалуйста.
