Описание и параметры
CDBResult
CBlogPost::GetList(
array arOrder = Array("ID"=>"DESC"),
array arFilter = Array(),
bool arGroupBy = false,
bool arNavStartParams = false,
array arSelectFields = Array()
);
Возвращает список сообщений по фильтру arFilter, отсортированный в порядке arOrder. Метод нестатический.
Примечание: фильтрация по ID категорий делается так: CATEGORY_ID_F. В результате ID категорий будут выведены через запятую.
Параметры метода
Параметр | Описание |
arOrder |
Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...])
Поле для сортировки может принимать значения:
- ID - идентификатор сообщения;
- TITLE - заголовок сообщения;
- BLOG_ID - идентификатор блога;
- AUTHOR_ID - идентификатор автора сообщения;
- DETAIL_TEXT - текст сообщения;
- DATE_CREATE - дата создания сообщения;
- DATE_PUBLISH - дата публикации сообщения;
- KEYWORDS - ключевые слова сообщения;
- PUBLISH_STATUS - статус публикации сообщения;
- ATRIBUTE - атрибуты сообщения;
- ENABLE_TRACKBACK - разрешены ли trackback'и к сообщению;
- ENABLE_COMMENTS - разрешены ли комментарии к сообщению;
- NUM_COMMENTS - количество комментариев;
- NUM_TRACKBACKS - количество trackback'ов;
- AUTHOR_LOGIN - логин автора сообщения;
- AUTHOR_NAME - имя автора сообщения;
- AUTHOR_LAST_NAME - фамилия автора сообщения;
- AUTHOR_EMAIL - Email автора сообщения;
- VIEWS — сортировка по количеству просмотров.
Необязательный. По умолчанию фильтруется по убыванию идентификатора сообщения.
|
arFilter |
Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]).
Фильтруемое поле может принимать значения:
- ID - идентификатор сообщения;
- TITLE - заголовок сообщения;
- BLOG_ID - идентификатор блога;
- BLOG_ACTIVE -
признак активности блога
Стандартный GetList выбирает записи и из неактивных блогов. Чтобы выборка не включала в себя неактивные блоги нужно указать:
$arFilter = Array ( "BLOG_ACTIVE" => "Y" );
;
- AUTHOR_ID - идентификатор автора сообщения;
- DETAIL_TEXT - текст сообщения;
- DATE_CREATE - дата создания сообщения;
- DATE_PUBLISH - дата публикации сообщения;
- DATE_PUBLISH_DAY - день публикации сообщения;
- DATE_PUBLISH_MONTH - месяц публикации сообщения;
- DATE_PUBLISH_YEAR - год публикации сообщения;
- KEYWORDS - ключевые слова сообщения;
- PUBLISH_STATUS - статус публикации сообщения;
- CATEGORY_ID_F - идентификатор категории сообщения;
- ATRIBUTE - атрибуты сообщения;
- ENABLE_TRACKBACK - разрешены ли trackback'и к сообщению;
- ENABLE_COMMENTS - разрешены ли комментарии к сообщению;
- NUM_COMMENTS - количество комментариев;
- NUM_TRACKBACKS - количество trackback'ов;
- AUTHOR_LOGIN - логин автора сообщения;
- AUTHOR_NAME - имя автора сообщения;
- AUTHOR_LAST_NAME - фамилия автора сообщения;
- AUTHOR_EMAIL - Email автора сообщения;
- VIEWS — сортировка по количеству просмотров.
Перед названием фильтруемого поля может указать тип фильтрации:
- "!" - не равно
- "<" - меньше
- "<=" - меньше либо равно
- ">" - больше
- ">=" - больше либо равно
"значения фильтра" - одиночное значение или массив.
Необязательный. По умолчанию записи не фильтруются.
|
arGroupBy |
Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1",
"группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле. В качестве группирующей функции могут стоять:
-
COUNT - подсчет количества;
- AVG - вычисление среднего значения;
- MIN - вычисление минимального значения;
-
MAX - вычисление максимального значения;
- SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.
Необязательный. По умолчанию - false - означает, что результат группироваться не будет.
|
arNavStartParams |
Массив параметров выборки. Может содержать следующие ключи:
- "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа
- любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Необязательный. По умолчанию - false - означает, что параметров выборки нет.
|
arSelectFields |
Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.
Необязательный. По умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса. |
Примечание: в компонент blog.blog невозможно передать фильтрацию по опубликованности. Для этого необходимо скопировать стандартный компонент в своё пространство имён и вручную дописать проверку на опубликованность.
Возвращаемое значение
Возвращается объект
CDBResult.
Примеры использования
<?
// выберем все опубликованные сообщения всех блогов за апрель 2007 года
// у которых больше двух комментариев
$SORT = Array("DATE_PUBLISH" => "DESC", "NAME" => "ASC");
$arFilter = Array(
"PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH,
"DATE_PUBLISH_MONTH" => '04',
"DATE_PUBLISH_YEAR" => '2007',
">NUM_COMMENTS" => 2
);
$dbPosts = CBlogPost::GetList(
$SORT,
$arFilter
);
while ($arPost = $dbPosts->Fetch())
{
print_r($arPost);
}
?>
// выборка всех сообщений блога с заголовком, включающим слово "фильм"
$arFilter = Array ( "~TITLE" => "%фильм%" );
0
Александр Андрианов
27.03.2014 14:32:44
|
Для успешной фильтрации сообщений (добавленных через апи CBlogPost::Add($arFields)) по полю CATEGORY_ID_F, необходимо добавить категорию CBlogPostCategory::Add(Array("BLOG_ID" => 1, "POST_ID" => $newID, "CATEGORY_ID"=>2));Код |
---|
$arFields = array(
"TITLE" => $arResult['arInfoAlb']['response'][0]['title'],
"DETAIL_TEXT" => $cont,
"DETAIL_TEXT_TYPE" => "text",
"BLOG_ID" => 1,
"AUTHOR_ID" => $USER->GetID(),
"=DATE_CREATE" => $DB->GetNowFunction(),
"DATE_PUBLISH" => $arResult['albCreat'],
"PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH,
"ENABLE_TRACKBACK" => 'N',
"ENABLE_COMMENTS" => 'N',
"CATEGORY_ID" => 2,
"PATH" => '/blog/journal/#post_id#/',
"ATRIBUTE" => $ATRIBUTE,
);
$newID = CBlogPost::Add($arFields);
CBlogPostCategory::Add(Array("BLOG_ID" => 1, "POST_ID" => $newID, "CATEGORY_ID"=>2));
|
|
|
0
Пётр Громов
27.03.2012 15:35:19
|
Также, если добавить в вызов стандартного компонента bitrix:blog.blog дополнительные входные параметры, то можно отсортировать значения по нужному нам признаку. Вот, например, сортировка по условию "сначала все, отмеченные галочкой "выводить в топ", затем по дате публикации" Код |
---|
<?$APPLICATION->IncludeComponent("bitrix:blog.blog", "office_detail_blog_short_view", array(
"YEAR" => $year,
"MONTH" => $month,
"DAY" => $day,
X
/* Вламываем сортировку */
"SORT_BY1" => "UF_BLOG_POST_ON_TOP",
"SORT_ORDER1" => "desc",
"SORT_BY2" => "DATE_PUBLISH",
"SORT_ORDER2" => "desc",
),
false
);?> |
Примечание: как и говорилось раньше, параметр UF_BLOG_POST_ON_TOP добавляем из вкладки "Пользовательские поля". Тип "Да/нет", объект BLOG_POST, название UF_BLOG_POST_ON_TOP.
|
|
0
Александр Пятницин
15.02.2012 14:43:51
|
Посту блога можно задать пользовательское свойство вручную, указав в качестве объекта "BLOG_POST". Так же по этому полю будет доступно фильтрация. Код |
---|
CModule::IncludeModule("blog");
//Сортировка
$SORT = Array("DATE_PUBLISH" => "DESC", "NAME" => "ASC");
//Выбираемые из базы поля, "UF_ONMAIN" - пользовательское свойство типа "Да/нет"
$SELECT = array("ID", "TITLE", "PUBLISH_STATUS", "AUTHOR_ID", "UF_ONMAIN");
//Фильтруем по нашему свойству, ищем записи, где оно установлено как "Да"
$arFilter = Array("UF_ONMAIN" => True);
$dbPosts = CBlogPost::GetList(
$SORT,
$arFilter,
false,
false,
$SELECT
);
while ($arPost = $dbPosts->Fetch())
{
var_dump($arPost);
echo '<br/><br/>';
}
|
Так можно реализовать, к примеру, свойство "показывать на главной", и выводить записи пользователей, которые одобрил модератор. Свойство можно менять стандартным способом через CBlogPost::Update(): Код |
---|
$arFields = array(
"UF_ONMAIN" => "Y"
);
CBlogPost::Update($PostId, $arFields);
|
|
|
1
Денис Клоков
11.01.2012 14:41:07
|
Кол-во просмотров поста храниться в "VIEWS", пример: Код |
---|
$dbPosts = CBlogPost::GetList(
$sort,
$arFilter,
false,
false,
array("ID", "TITLE", "AUTHOR_ID", "DATE_CREATE", "PUBLISH_STATUS", "BLOG_ID", "VIEWS";)
); |
|
|
2
Mikhail Kryachek
21.12.2011 14:25:07
|
Если необходима фильтрация по like, то необходимо формировать фильтра вида: Код |
---|
$arFilter = Array ( "~TITLE" => "%фильм%" ); |
Результатом будет выборка всех сообщений блога с заголовком включаеющим слово "фильм", например "новый фильм", "хороший фильм идет по 1 каналу"
|
|
© «Битрикс», 2001-2023, «1С-Битрикс», 2023
Наверх
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.