[COLOR=#333333]Всем привет! Долго ломаю голову, надеюсь хоть здесь мне смогут помочь..[/COLOR]
[COLOR=#333333]Моя задача в следующем: На странице каталога нужно вывести разделы и подразделы каталога.[/COLOR]
[COLOR=#333333]Структура следующая:[/COLOR]
[COLOR=#333333]- Главный раздел[/COLOR]
[COLOR=#333333]-- Подраздел[/COLOR]
[COLOR=#333333]--- Дочерний раздел[/COLOR]
[COLOR=#333333]--- Дочерний раздел[/COLOR]
[COLOR=#333333]-- Подраздел[/COLOR]
[COLOR=#333333]--- Дочерний раздел[/COLOR]
[COLOR=#333333]Т.е. переходя на страницу "главного" раздела, отображается заголовок этого раздела и подразделы с их дочерними. И так в каждом "главном" разделе.[/COLOR]
[COLOR=#333333]Написал для этого функцию:
[/COLOR][CODE]function func_sectionList($ar_Items)
{
$req = $_REQUEST["SECTION_ID"];
foreach ($ar_Items as $ar_Value)
{
$arItemR = CFile::GetFileArray($ar_Value['PICTURE']);
$count = CIBlockElement::GetList(
array(),
array(
'IBLOCK_ID'=>$ar_Value['IBLOCK_ID'],
'SECTION_ID'=>$ar_Value['SECTION_ID']
),
array()
);
$id = $ar_Value['IBLOCK_SECTION_ID'].'/';
$by_id = $ar_Value['IBLOCK_SECTION_ID'];
$rsSections = CIBlockSection::GetByID($by_id);
$arSection = $rsSections->Fetch();
$id_main = $arSection['IBLOCK_SECTION_ID'].'/';
if( count($ar_Value['SUB_SECTION']) > 0 )
{
if ($ar_Value['DEPTH_LEVEL'] == 2 && $id == $req){
echo'<div class="column-catalog-wrapper">';
echo'<div class="title-column-catalog"> ';
echo'<h2><a href="'.$ar_Value['SECTION_PAGE_URL'].'">'.$ar_Value['NAME'].'</a></h2>';
echo'</div>';
echo'<div class="column-catalog">'; ?>
<div class="thumb-column-catalog">
<img src="<?=$arItemR["SRC"];?>" alt="">
<span class="count-column"><? echo$count; ?></span>
</div>
<? echo'<div class="spisok-column-cat"><ul>';
}
echo func_sectionList($ar_Value['SUB_SECTION']);
}
elseif ($ar_Value['DEPTH_LEVEL'] == 3 && $id_main == $req )
{
echo'<li><a href="'.$ar_Value['SECTION_PAGE_URL'].'">'.$ar_Value['NAME'].'</a></li>';
}
}
echo'</ul></div></div></div>';
}
[/CODE][COLOR=#333333]Она выводит все на странице в нужной обертке, сохраняя необходимую верстку.
Выглядит это так:
[/COLOR][URL=http://itmages.ru/image/view/2440573/3182c698]http://itmages.ru/image/view/2440573/3182c698[/URL]
[COLOR=#333333]Сама верстка выглядит так:
[/COLOR][CODE]<div class="content-wrapper">
<div class="wrapper-catalog">
<div class="search-main">
<input type="text" class="input-main-search">
<input type="submit" value="искать" class="submit-main-search">
</div>
<div class="column-catalog-wrapper">
<div class="title-column-catalog">
<a href="">Обнаружение - измерение</a>
<div class="desc-cat"></div>
</div>
<div class="column-catalog">
<div class="thumb-column-catalog">
<img src="./images/1.jpg" alt="">
<span class="count-column">3 640</span>
</div>
<div class="spisok-column-cat">
<ul>
<li><a href="">Поток, измерения давления и уровня</a></li>
<li><a href="">Температура и влажность</a></li>
<li><a href="">Измерение установки</a></li>
<li><a href="">Измерение силы</a></li>
<li><a href="">Оптические и акустические измерения</a></li>
<li><a href="">Электрические измерение</a></li>
<li><a href="">Аналитическое оборудование</a></li>
<li><a href="">Метрологии и оборудование для испытаний</a></li>
<li><a href="">Проверка и мониторинг</a></li>
<li><a href="">Лабораторное оборудование</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
[/CODE]В файле list.php вызывается компонент catalog.section.list, в который передается ID текущего раздела в SECTION_ID. В компоненте и вызывается моя функция.Вызов функции выглядит так:
[CODE]<div class="content-wrapper">
<div class="wrapper-catalog">
<?
echo func_sectionList($ar_SectionList);
?>
</div>
</div>
[/CODE]
Дело в том, что все работает отлично, если создан 1 "главный" раздел. При создании еще одного или нескольких, верстка отображается нормально только в одном из разделов, в остальных такое чувство как будто функция вызывается помимо компонента. Структура которую создает функция находится снаружи структуры в которой она вызывается. Я так полагаю вызываются лишние закрывающие div. Много вариантов испробовал, ничего не помогает. Не пойму почему в одном "главном" разделе все отображается корректно, в остальных нет...
Выглядит это так:
[URL=http://itmages.ru/image/view/2440581/0e59dde6]http://itmages.ru/image/view/2440581/0e59dde6[/URL]