Comment::add

  1. Bitrix24 API (v. 23.675.0)
  2. forum
  3. Comment
  4. add
  • Модуль: forum
  • Путь к файлу: ~/bitrix/modules/forum/lib/comments/comment.php
  • Класс: Bitrix\Forum\Comments\Comment
  • Вызов: Comment::add
public function add(array $params)
{
	$aux = (isset($params['AUX']) && $params['AUX'] === "Y");
	$auxData = ($params['AUX_DATA'] ?? '');

	$params = array(
		"SOURCE_ID" => $params["SOURCE_ID"] ?? 0,

		"POST_DATE" => array_key_exists("POST_DATE", $params) ? $params["POST_DATE"] : new \Bitrix\Main\Type\DateTime(),
		"POST_MESSAGE" => trim($params["POST_MESSAGE"]),
		"FILES" => $params["FILES"] ?? null,

		"USE_SMILES" => $params["USE_SMILES"],

		"AUTHOR_ID" => $this->getUser()->getId(),
		"AUTHOR_NAME" => trim($params["AUTHOR_NAME"] ?? ''),
		"AUTHOR_EMAIL" => trim($params["AUTHOR_EMAIL"] ?? ''),

		"AUTHOR_IP" => $params["AUTHOR_IP"] ?? "",
		"AUTHOR_REAL_IP" => $params["AUTHOR_REAL_IP"] ?? "",
		"GUEST_ID" => $params["GUEST_ID"] ?? null,

		"AUX" => $params["AUX"] ?? null,
		"AUX_DATA" => $auxData,
		"SERVICE_TYPE" => ($params["SERVICE_TYPE"] ?? null),
		"SERVICE_DATA" => ($params["SERVICE_DATA"] ?? null),

		"UF_TASK_COMMENT_TYPE" => ($params["UF_TASK_COMMENT_TYPE"] ?? null),
		"UF_FORUM_MES_URL_PRV" => ($params["UF_FORUM_MES_URL_PRV"] ?? null),
	);

	if ($this->prepareFields($params, $this->errorCollection))
	{
		/***************** Events OnBeforeCommentAdd ******************/
		$event = new Event("forum", "OnBeforeCommentAdd", [
			$this->getEntity()->getType(),
			$this->getEntity()->getId(),
			$params
		]);
		$event->send($this);
		if($event->getResults())
		{
			foreach($event->getResults() as $eventResult)
			{
				if($eventResult->getType() != EventResult::SUCCESS)
				{
					$run = false;
					break;
				}
			}
		}
		/***************** /Events *****************************************/

		$topic = \Bitrix\Forum\Topic::getById($params["TOPIC_ID"]);
		$result = \Bitrix\Forum\Message::create($topic, $params);

		if ($result->isSuccess())
		{
			$mid = $result->getId();

			if (!$aux)
			{
				$this->updateStatisticModule($mid);
				\CForumMessage::sendMailMessage($mid, array(), false, "NEW_FORUM_MESSAGE");
			}

			$this->setComment($mid);

			if (
				!$aux // create task from livefeed
				|| $auxData <> '' // tasks commentposter, add to livefeed
			)
			{
				$event = new Event("forum", "OnAfterCommentAdd", array(
						$this->getEntity()->getType(),
						$this->getEntity()->getId(),
						array(
							"TOPIC_ID" => $this->topic["ID"],
							"MESSAGE_ID" => $mid,
							"PARAMS" => $params,
							"MESSAGE" => $this->getComment(),
							"AUX_DATA" => $auxData
						))
				);
				$event->send();
			}

			return $this->getComment();
		}
		$this->errorCollection->addFromResult($result);
	}
	return false;
}

Добавить комментарий