Содержание
Выборка элементов, разделов и инфоблоков
Фильтр инфоблоков
CODE
=> следуем заменить на =CODE
, иначе будет использован LIKE
.
Фильтр пользователей по ID не следует писать ID
, следует использовать ID_EQUAL_EXACT
.
CIBlockElement::GetList
$arSort = array("SORT" => "ASC"); $arFilter = array("IBLOCK_ID" => 9, "ID" => $_REQUEST['ID'], "ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "PROPERTY_IS_MAIN_PAGE_VALUE" => "да"); $arSelect = array("ID", "CODE", "NAME", "PREVIEW_PICTURE", "DETAIL_PICTURE", "PREVIEW_TEXT", "DETAIL_TEXT", "PROPERTY_FILE", "ACTIVE_FROM", "ACTIVE_TO"); $arNavStartParams = false; // $arNavStartParams = array('iNumPage' => 1, 'nPageSize' => 10); -- для пагинации $itemsList = CIBlockElement::GetList($arSort, $arFilter, false, $arNavStartParams, $arSelect); if ($itemsList->SelectedRowsCount() > 0) { while ($item = $itemsList->Fetch()) { die(var_dump($item)); } }
Если инфоблок участвует в документообороте, документы добавляются как «неопубликованные», и
CIBlockElement::GetList()
их не выбирает. Для их выборки следует установить в фильтр SHOW_NEW => Y
. CIBlockElement::WF_GetLast()
- последняя копия элемента в документообороте
Узнать точное количество элементов инфоблока 35 (без их версий):
SELECT COUNT(*) FROM `b_iblock_element` WHERE `IBLOCK_ID` = 35 AND `WF_PARENT_ELEMENT_ID` IS NULL;
CIBlockSection::GetList
$arSort = array("SORT" => "ASC"); $arFilter = array("IBLOCK_ID" => 6, "SECTION_ID" => $ar_props["ID"], "DEPTH_LEVEL" => 2); $arSelect = array("ID", "NAME", "UF_CLASS_SFX", "UF_CAP"); $itemsList = CIBlockSection::GetList($arSort, $arFilter, false, $arSelect, false); if ($itemsList->SelectedRowsCount() > 0) { while ($item = $itemsList->Fetch()) { die(var_dump($item)); } }
Пользовательские поля имеют префикс «UF_». Подробнее о них
CIBlock::GetList
Список информационных блоков по фильтру
$arSort = array("SORT" => "ASC"); $arFilter = array("IBLOCK_ID"=>9, "ID"=>$_REQUEST['ID']); $itemsList = CIBlock::GetList($arSort, $arFilter, false); if ($itemsList->SelectedRowsCount() > 0) { while ($item = $itemsList->Fetch()) { die(var_dump($item)); } }
Пагинация
$arResult['ITEMS']->NavStart(10, false); $arResult['NAV_STRING'] = $searchResultCount > 10 ? $arResult['ITEMS']->GetPageNavStringEx($navComponentObject, 'title', 'pager_new', 'Y') : null;