• Модуль: forum
  • Путь к файлу: ~/bitrix/modules/forum/lib/update/livefeedconvertservicemessage.php
  • Класс: BitrixForumUpdateLivefeedConvertServiceMessage
  • Вызов: LivefeedConvertServiceMessage::execute
public function execute(array &$result)
{
	if (!(
		Loader::includeModule("forum")
		&& Loader::includeModule("socialnetwork")
	))
	{
		return self::finishExecution();
	}

	if (!array_key_exists("handlers", $result) || !is_array($result["handlers"]))
	{
		$result["handlers"] = array_merge(self::getSocialnetworkHandlersPostText(), ["innerForum"]);
		$result["steps"] = count($result["handlers"]);
		$result["count"] = 0;
	}

	if ($postMessage = reset($result["handlers"]))
	{
		$status = self::FINISH_EXECUTION;
		MainConfigOption::set("forum", "LivefeedConvertServiceMessageStepper", "inProgress");
		if ($postMessage === "innerForum")
		{
			$status = $this->replaceServiceField($result["lastId"]);
		}
		else if ($handler = (new SocialnetworkCommentAuxHandlerManager())->getHandlerByPostText($postMessage))
		{
			$status = $this->convert($handler, $result["lastId"]);
		}
		if ($status === self::FINISH_EXECUTION)
		{
			array_shift($result["handlers"]);
			unset($result["lastId"]);
		}
		else
		{
			$result["lastId"] = $status;
		}
		$result["count"] = $result["steps"] - count($result["handlers"]);
	}

	return count($result["handlers"]) > 0 ? self::CONTINUE_EXECUTION : self::finishExecution();
}