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

Add

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

int
CForumMessage::Add(
 array arFields = Array(),
 string strUploadDir = false,
 array arParams = Array()
);

Создает новое сообщение с параметрами, указанными в массиве arFields. Возвращает код созданного сообщения. Метод статический.

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

ПараметрОписаниеC версии
arFields Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где
  • field - название поля;
  • value - значение поля.
Поля перечислены в списке полей сообщения. Обязательные поля должны быть заполнены.

Для первого сообщения в теме форума - обязательно передать параметр "NEW_TOPIC" => "Y".
strUploadDir Каталог для загрузки файлов. Должен быть задан относительно главного каталога для загрузки. Необязательный. По умолчанию равен "forum".
arParams Массив параметров. Необязательный. 7.0.0

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

Возвращает код созданного сообщения. В случае ошибки добавления возвращает False.

Примечания

Перед добавлением сообщения следует проверить возможность добавления методом CForumMessage::CanUserAddMessage.

Для добавления и изменения сообщения и темы рекомендуется пользоваться высокоуровневой функцией ForumAddMessage.

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

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

Пример 1

<?
$arFields = Array(
  "POST_MESSAGE" => $POST_MESSAGE,
  "USE_SMILES" => ($USE_SMILES=="Y") ? "Y" : "N",
  "APPROVED" => $APPROVED,
  "AUTHOR_NAME" => $AUTHOR_NAME,
  "AUTHOR_ID" => $AUTHOR_ID,
  "FORUM_ID" => $FID,
  "TOPIC_ID" => $TID,
  "AUTHOR_IP" => ($AUTHOR_IP!==False) ? $AUTHOR_IP : "",
  "NEW_TOPIC" => "N"
);
$ID = CForumMessage::Add($arFields);
if (IntVal($ID)<=0)
  echo "Error!";
?>

Пример 2

Если необходимо узнать ошибку:

<?
$arFields = Array(
  "POST_MESSAGE" => $POST_MESSAGE,
  "USE_SMILES" => ($USE_SMILES=="Y") ? "Y" : "N",
  "APPROVED" => $APPROVED,
  "AUTHOR_NAME" => $AUTHOR_NAME,
  "AUTHOR_ID" => $AUTHOR_ID,
  "FORUM_ID" => $FID,
  "TOPIC_ID" => $TID,
  "AUTHOR_IP" => ($AUTHOR_IP!==False) ? $AUTHOR_IP : "",
  "NEW_TOPIC" => "N"
);
$ID = CForumMessage::Add($arFields);
if ($ID<=0 && $ex=$APPLICATION->GetException())
   echo $ex->GetString();
?>

Пример 3

IP адрес проходит дополнительную проверку и, если он отличается от реального IP адреса пользователя, то на форуме вместо:

IP: ###.###.###.###

выводится:

IP / реальный: ###.###.###.### /

Для того, чтобы этого избежать, используем дополнительное поле:

"AUTHOR_IP" => $AUTHOR_IP,
"AUTHOR_REAL_IP"=> $AUTHOR_IP,


© «Битрикс», 2001-2020, «1С-Битрикс», 2020
Наверх