Answer the question
In order to leave comments, you need to log in
How to remove a section and everything in it from an infoblock?
Help, you need to remove the section from the infoblock and below everything that is in it, the code is like this
<?
$IBLOCK_ID = 2;
$arFilter = Array(
'IBLOCK_ID' => $IBLOCK_ID,
'GLOBAL_ACTIVE'=>'Y');
$obSection = CIBlockSection::GetTreeList($arFilter);
?>
<? while($arResult = $obSection->GetNext()): ?>
<?
$this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_EDIT"));
$this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CT_BNL_ELEMENT_DELETE_CONFIRM')));
?>
<div class="col-md-3">
<h3 id="<?= $this->GetEditAreaId($arItem['ID']); ?>"><?= $arResult['NAME']; ?>55</h3>
<?
echo '<pre>';
print_r($arResult);
echo '</pre>';
?>
<ul>
<?
$arFilter = array('SECTION_ID' => $arResult['SECTION_ID']);
$arSelect = Array("ID", "NAME", "IBLOCK_ID", "DETAIL_PAGE_URL");
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array('nPageSize' => 50), $arSelect);
?>
<? while($ob = $res->GetNextElement()): ?>
<? $arFields = $ob->GetFields(); ?>
<li><a href="<?= $arFields['DETAIL_PAGE_URL']; ?>"><?= $arFields['NAME']; ?></a></li>
<? endwhile; ?>
</ul>
</div>
<? endwhile; ?>
Answer the question
In order to leave comments, you need to log in
That is, it does not return the SECTION_ID element in the array, as I understood when I looked at the entire array, but it returns [SECTION_PAGE_URL] => /services/list.php?SECTION_ID=4 and from here how can 4 be pulled out?
Что это за код, от куда вы его взяли, на какой странице он размещен, какой должен быть результат? Если это компонент тогда лучше залейте его архивом в Яндекс диск и дайте ссылку. Чем больше вы предоставите информации, тем больше вероятность, что ва помогут
Жесть.
Во первых старайтесь не делать выборки в циклах, потому что нагрузка будет расти дико.
Будет меньше вопросов, если вы все же загляните в документацию.
dev.1c-bitrix.ru/api_help/iblock/classes/ciblockse... - Ваш метод. Он выполняет CIBlockSection::GetList и сортирует результат в виже дерева.
dev.1c-bitrix.ru/api_help/iblock/classes/ciblockse...
Для получения ID раздела, просто возьмите $arResult['ID'] (Это и есть ID категории)
Замените
на
тогда вы сразу получить ассоциативный массив $ob['NAME'] и т.д.
Удалите
Этот код вообще не работает, потому что у Вас нет массива $arItem. Замените $arItem на $arResult
<?
$this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_EDIT"));
$this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CT_BNL_ELEMENT_DELETE_CONFIRM')));
?>
<h3 id="<?= $this->GetEditAreaId($arItem['ID']); ?>">
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question