CIBlockResult
CIBlockElement::GetList(
array arOrder = Array("SORT"=>"ASC"),
array arFilter = Array(),
mixed arGroupBy = false,
mixed arNavStartParams = false,
array arSelectFields = Array()
);
Возвращает список элементов по фильтру arFilter.
Примечание: внутренние ограничения Oracle и MSSQL не позволяют
использовать DISTINCT при фильтрации по полям типа blob, поскольку фильтрация по
нескольким значениям множественного свойства может дать дублирование.
Параметры функции
| Параметр |
Описание |
| arOrder |
Массив вида Array(by1=>order1[,
by2=>order2 [, ..]]), где by - поле для сортировки,
может принимать значения:
- id - ID элемента;
- sort - индекс сортировки;
- timestamp_x - дата изменения;
- name - название;
- active_from - начало периода действия элемента;
- active_to - окончание периода действия элемента;
- status - код статуса элемента в документообороте;
- code - мнемонический код элемента;
- iblock_id - числовой код информационного блока;
- modified_by - код последнего изменившего пользователя;
- active - признак активности элемента;
- show_counter - количество показов элемента (учитывается функцией CIBlockElement::CounterInc);
- show_counter_start - время первого показа элемента (учитывается
функцией CIBlockElement::CounterInc);
- shows - усредненное количество показов (количество показов /
продолжительность показа);
- rand - случайный порядок;
- property_<PROPERTY_CODE> - по значению свойства с числовым или
мнемоническим кодом PROPERTY_CODE (например, PROPERTY_123 или
PROPERTY_NEWS_SOURCE);
- catalog_<CATALOG_FIELD>_<PRICE_TYPE> - по полю
CATALOG_FIELD (может быть PRICE - цена или CURRENCY - валюта) из цены с типом
PRICE_TYPE (например, catalog_PRICE_1 или CATALOG_CURRENCY_3);
- order - порядок сортировки, может принимать значения:
- asc - по возрастанию;
- desc - по убыванию;
Необязательный. По умолчанию равен
Array("sort"=>"asc") |
| arFilter |
Массив вида array("фильтруемое поле"=>"значения фильтра" [, ...]).
"фильтруемое поле" может принимать значения:
- ID - по числовому коду;
- ACTIVE - фильтр по активности (Y|N); передача пустого значения
("ACTIVE"=>"") выводит все элементы без учета их состояния;
- NAME - по названию (можно искать по шаблону [%_]);
- CODE - по мнемоническому идентификатору (можно искать по шаблону
[%_]);
- EXTERNAL_ID - по внешнему коду (можно искать по шаблону [%_]);
- PREVIEW_TEXT - по анонсу (можно искать по шаблону [%_]);
- PREVIEW_TEXT_TYPE - по типу анонса (html|text);
- PREVIEW_PICTURE - коду картинки для анонса;
- DETAIL_TEXT - по детальному описанию (можно искать по шаблону [%_]);
- DETAIL_TEXT_TYPE - по типу детальному описания (html|text);
- DETAIL_PICTURE - по коду детальной картинки;
- CHECK_PERMISSIONS - если установлен в "Y", то в выборке будет
осуществляться проверка прав доступа к информационным блокам. По умолчанию права
доступа не проверяются.
- MIN_PERMISSION - минимальный уровень доступа, будет обработан только
если CHECK_PERMISSIONS установлен в "Y". По умолчанию "R". Список прав
доступа см. в CIBlock::SetPermission().
- SEARCHABLE_CONTENT - по содержимому для поиска. Включает в себя
название, описание для анонса и детальное описание (можно искать по шаблону
[%_]);
- SORT - по сортировке;
- TIMESTAMP_X - по времени изменения (можно искать по шаблону [%_]);
- MODIFIED_USER_ID - по коду пользователя, изменившего элемент;
- DATE_CREATE - по времени создания;
- CREATED_BY - по коду пользователя, добавившего элемент;
- DATE_ACTIVE_FROM - по дате начала активности;
- DATE_ACTIVE_TO - по дате окончания активности;
- ACTIVE_DATE - непустое значение задействует фильтр по датам
активности (DATE_ACTIVE_FROM и DATE_ACTIVE_TO). Если значение не
установлено (""), фильтрация по датам активности не производится;
- IBLOCK_ID - по коду информационного блока;
- IBLOCK_CODE - по мнемоническому коду информационного блока (можно
искать по шаблону [%_]);
- IBLOCK_SITE_ID - по сайту;
- IBLOCK_TYPE - по типу информационного блока (можно искать по шаблону
[%_]);
- IBLOCK_ACTIVE - по активности информационного блока(Y|N);
- SECTION_ID - по родительской группе;
- INCLUDE_SUBSECTIONS - если задан фильтр по родительским группам
SECTION_ID, то будут также выбраны элементы находящиеся в подгруппах этих
групп;
- SHOW_COUNTER - по количеству показов;
- SHOW_COUNTER_START - по времени первого показа;
- WF_COMMENTS - по комментарию документооборота (можно искать по
шаблону [%_]);
- WF_STATUS_ID - по коду статуса документооборота;
- SHOW_HISTORY - если установлен в значение "Y", то вместе с элементами
будут выводится и их архив (история), по умолчанию выводятся только
опубликованные элементы;
- SHOW_NEW - если SHOW_HISTORY не установлен или не равен Y и
SHOW_NEW=Y, то будут показываться ещё неопубликованные элементы вместе с
опубликованными;
- WF_PARENT_ELEMENT_ID - по коду элемента-родителя в документообороте
для выборки истории изменений;
- WF_NEW - флаг что элемент ещё ни разу не был опубликован (Y|N);
- WF_LOCK_STATUS - статус заблокированности элемента в документооборте
(red|green|yellow);
- PROPERTY_<код свойства> - фильтр по значениям свойств (можно
искать по шаблону [%_]);
- PROPERTY_<код свойства>_VALUE - фильтр по значениям списка для
свойств типа "список" (можно искать по шаблону [%_]), поиск будет осуществляться
по строковому значению списка, а не по идентификатору;
- CATALOG_<CATALOG_FIELD>_<PRICE_TYPE> - по полю
CATALOG_FIELD из цены типа PRICE_TYPE (ID типа цены), где
CATALOG_FIELD может быть: PRICE - цена, CURRENCY - валюта.
Перед названием фильтруемого поля можно указать тип проверки фильтра:
- "!" - не равно
- "<" - меньше
- "<=" - меньше либо равно
- ">" - больше
- ">=" - больше либо равно
Значения фильтра - одиночное
значение или массив значений.
Необязательное. По умолчанию записи не
фильтруются. |
| arGroupBy |
Массив полей для группировки элемента. Если поля указаны, то выборка по ним
группируется, а в результат добавляется поле CNT - количество сгруппированных
элементов. Если указать в качестве arGroupBy пустой массив, то функция вернет
количество элементов CNT по фильтру. Группировать можно по полям элемента, а
также по значениям его свойств. Для этого в качестве одного из полей группировки
необходимо указать PROPERTY_<PROPERTY_CODE>, где PROPERTY_CODE -
мнемонический код. Необязательное. По умолчанию false - записи не
группируются. |
| arNavStartParams |
Параметры для постраничной навигации и ограничения количества выводимых
элементов. массив вида "Название параметра"=>"Значение", где название
параметра "nTopCount" - ограничить количество сверху "bShowAll" -
разрешить вывести все элементы при постраничной навигации "iNumPage" - номер
страницы при постраничной навигации "nPageSize" - количество элементов на
странице при постраничной навигации
Необязательное. По умолчанию false -
не ограничивать выводимые элементы. |
| arSelectFields |
Массив возвращаемых полей элемента. Список полей элемента, а также можно
сразу выводить значения его свойств. Обязательно должно быть использовано поле
IBLOCK_ID, иначе не будет работать корректно. Кроме того, также в качестве
одного из полей необходимо указать PROPERTY_<PROPERTY_CODE>, где
PROPERTY_CODE - ID или мнемонический код. В результате будет выведены значения
свойств элемента в виде полей PROPERTY_<PROPERTY_CODE>_VALUE -
значение; PROPERTY_<PROPERTY_CODE>_ID - код значения у элемента;
PROPERTY_<PROPERTY_CODE>_ENUM_ID - код значения (для свойств типа
список) При установленном модуле торгового каталога можно выводить и цены
элемента. Для этого в качестве одного из полей необходимо указать
CATALOG_GROUP_<PROPERTY_CODE>, где PROPERTY_CODE - ID типа
цены.
По умолчанию выводить все поля.
Примечание: если в
массиве используются свойство, являющееся множественным, то для элементов, где
используются несколько значений этого свойства, будет возвращено несколько
записей вместо одной. Для решения этой проблемы инфоблоки нужно перевести в
"инфоблоки+", в этом случае для свойства будет отдаваться массив значений. Либо
можно не указывать свойства в параметрах выборки, а получать их значения на
каждом шаге перебора выборки с помощью _CIBElement::GetProperties().
|
|