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

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
Наверх