Документация для разработчиков
Темная тема

GetList

Описание и параметры

CDBResult
CForumMessage::GetList(
	array arOrder = Array("ID"=>"ASC"),
	array arFilter = Array(),
	bool bCount  = false,
	int iNum = 0,
	array arAddParams = Array()
);

Возвращает список сообщений по фильтру arFilter, отсортированый в соответствии с arOrder. Метод статический.

Параметры функции

ПараметрОписаниеC версии
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • AUTHOR_NAME - имя автора сообщения;
  • POST_DATE - дата создания сообщения;
  • FORUM_ID - ID форума;
  • TOPIC_ID - ID темы;
  • APPROVED - опубликовано;
  • ID - ID сообщения;
Направление сортировки может принимать значения:
  • ASC - по возрастанию;
  • DESC - по убыванию;
Необязательный. По умолчанию равен Array("ID"=>"ASC")
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - ID сообщения;
  • AUTHOR_NAME - имя автора сообщения;
  • AUTHOR_ID - ID автора сообщения;
  • FORUM_ID - ID форума;
  • TOPIC_ID - ID темы;
  • APPROVED - опубликовано;
  • PARAM1 - первый параметр элемента;
  • PARAM2 - второй параметр элемента;
  • AUTHOR_NAME - имя автора сообщения;
  • POST_MESSAGE_CHECK - проверка текста сообщения;
  • APPROVED - опубликовано;
  • NEW_TOPIC - новая тема;
  • ATTACH_IMG - присоединенная картинка;
  • EDIT_DATE - дата редактирования сообщения;
  • POST_DATE - дата создания сообщения;
Перед названием фильтруемого поля может быть указан тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно
Необязательное. По умолчанию записи не фильтруются.
bCount Если параметр равен True, то возвращается только количество сообщений, которое соответствует установленному фильтру. Необязательный. По умолчанию равен False.
iNum Ограничение числа возвращаемых записей. Если параметр iNum отличен от нуля, то возвращается не более iNum записей. Поддерживается не для всех баз данных. Если параметр не поддерживается, то его установки игнорируются. Необязательный. По умолчанию равен 0.
arAddParams Массив добавления параметров. 4.0.3

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

Примеры использования

<?
// выберем все опубликованные сообщения темы с кодом $TID в порядке поступления
$db_res = CForumMessage::GetList(array("ID"=>"ASC"), array("TOPIC_ID"=>$TID));
while ($ar_res = $db_res->Fetch())
{
	echo $ar_res["POST_MESSAGE"]."<br>";
}
?>
<?
//вывести сообщения, не из форумов с ID 12 и 45.

'!@FORUM_ID' => array(12, 45),
?>
<?
// Фильтрация по дате сообщения:

$db_res = CForumMessage::GetList(array("ID"=>"ASC"), array(">=POST_DATE" => "23.12.2010", "<=POST_DATE" => "24.12.2010"));
?>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
1
Иван Неслуховский
В примере используется тип фильтра, который не указан для поля $arFilter. Надо описать его

Код
 '!@FORUM_ID' => array(12, 45)
0
Сергей Панчук
Если нам нужно выбрать последнее сообщение (форумов может быть несколько) с детальным текстом в компоненте bitrix:forum.topic.last плюс обрезаем детальный текст:
Код
 <p>
<?foreach($arResult["TOPIC"] as $k)
   {
   //********** GETTING FORUM ID ****//
   }
        $db_res = CForumMessage::GetList(array("ID"=>"DESC"), array("@FORUM_ID" => array($k["FORUM_ID"])),false,1);
      while ($ar_res = $db_res->Fetch())
      {
         echo substr($ar_res["POST_MESSAGE"], 0,strripos(substr($ar_res["POST_MESSAGE"],0,230),' '));
         echo " ...<br>";
      }
   ?>
</p>
1
Александр Маджугин
Чтобы получить сообщения из нескольких форумов (использовать массив id форумом), необходимо применить операцию @:

Код
// Получаем сообщения из форумов 1,2 и 5
$db_res = CForumMessage::GetList(array("ID"=>"DESC"), array("@FORUM_ID"=>array(1,2,5)));
while ($ar_res = $db_res->Fetch()) {
  $arMessages[] = $ar_res;
}
 
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх