@axper

Как избавиться от закрывающих тэгов в функции вывода структуры разделов определенным способом?

Всем привет! Долго ломаю голову, надеюсь хоть здесь мне смогут помочь..
Моя задача в следующем: На странице каталога нужно вывести разделы и подразделы каталога.
Структура следующая:
- Главный раздел
-- Подраздел
--- Дочерний раздел
--- Дочерний раздел
-- Подраздел
--- Дочерний раздел
Т.е. переходя на страницу "главного" раздела, отображается заголовок этого раздела и подразделы с их дочерними. И так в каждом "главном" разделе.
Написал для этого функцию:
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']);             
        }    
        else if ($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>';
}


Она выводит все на странице в нужной обертке, сохраняя необходимую верстку.
Выглядит это так:
93e136abd0824accb5808401b3206088.jpg
Сама верстка выглядит так:
<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>


В файле list.php вызывается компонент catalog.section.list, в который передается ID текущего раздела в SECTION_ID. В компоненте и вызывается моя функция.
Вызов функции выглядит так:
<div class="content-wrapper">
    <div class="wrapper-catalog">
        <? 
            echo func_sectionList($ar_SectionList);
        ?>
    </div>
</div>


Дело в том, что все работает отлично, если создан 1 "главный" раздел. При создании еще одного или нескольких, верстка отображается нормально только в одном из разделов, в остальных такое чувство как будто функция вызывается помимо компонента. Структура которую создает функция находится снаружи структуры в которой она вызывается. Я так полагаю вызываются лишние закрывающие div. Много вариантов испробовал, ничего не помогает. Не пойму почему в одном "главном" разделе все отображается корректно, в остальных нет...
Выглядит это так:
b46c045b3d0c48e58ff4035e802897de.jpg
  • Вопрос задан
  • 198 просмотров
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Извини приятель, у меня на работе десяток кейсов, в которых надо заниматься отладкой.
Я не вижу ни одной причины забросить работу и начать отлаживать твой код.

Нет, волшебного ответа на твой вопрос, типа "исправь настройку такую-то" в природе не существует.
Это косячит твой код.
Чтобы исправить косячный код, его надо отлаживать.
Поэтому садись и отлаживай.
Упрости задачу максимально, убедись что работает, и потом наращивай постепенно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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