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

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-2024, «1С-Битрикс», 2024