• Модуль: forum
  • Путь к файлу: ~/bitrix/modules/forum/classes/general/topic.php
  • Класс: CAllForumTopic
  • Вызов: CAllForumTopic::CheckFields
static function CheckFields($ACTION, &$arFields)
{
	// Fatal Errors
	if (is_set($arFields, "TITLE") || $ACTION=="ADD")
	{
		$arFields["TITLE"] = trim($arFields["TITLE"]);
		if ($arFields["TITLE"] == '')
			return false;
	}
	if (is_set($arFields, "TITLE_SEO") || $ACTION=="ADD")
	{
		$arFields["TITLE_SEO"] = trim($arFields["TITLE_SEO"], " -");
		if ($arFields["TITLE_SEO"] == '' && $arFields["TITLE"] <> '')
			$arFields["TITLE_SEO"] = CUtil::translit($arFields["TITLE"], LANGUAGE_ID, array("max_len"=>255, "safe_chars"=>".", "replace_space" => '-'));
		if ($arFields["TITLE_SEO"] == '')
			$arFields["TITLE_SEO"] = false;
	}
	if (is_set($arFields, "USER_START_NAME") || $ACTION=="ADD")
	{
		$arFields["USER_START_NAME"] = trim($arFields["USER_START_NAME"]);
		if ($arFields["USER_START_NAME"] == '')
			return false;
	}

	if (is_set($arFields, "FORUM_ID") || $ACTION=="ADD")
	{
		$arFields["FORUM_ID"] = intval($arFields["FORUM_ID"]);
		if ($arFields["FORUM_ID"] <= 0)
			return false;
	}
	if (is_set($arFields, "LAST_POSTER_NAME") || $ACTION=="ADD")
	{
		$arFields["LAST_POSTER_NAME"] = trim($arFields["LAST_POSTER_NAME"]);
		if ($arFields["LAST_POSTER_NAME"] == '' && $arFields["APPROVED"] !== "N" && $arFields["STATE"] !== "L")
			return false;
	}
	if (is_set($arFields, "ABS_LAST_POSTER_NAME") || $ACTION=="ADD")
	{
		$arFields["ABS_LAST_POSTER_NAME"] = trim($arFields["ABS_LAST_POSTER_NAME"]);
		if ($arFields["ABS_LAST_POSTER_NAME"] == '' && $ACTION == "ADD" && !empty($arFields["LAST_POSTER_NAME"]))
			$arFields["ABS_LAST_POSTER_NAME"] = $arFields["LAST_POSTER_NAME"];
		elseif ($arFields["ABS_LAST_POSTER_NAME"] == '' && $arFields["APPROVED"] !== "N" && $arFields["STATE"] !== "L")
			return false;
	}

	// Check Data
	if (is_set($arFields, "USER_START_ID") || $ACTION=="ADD")
		$arFields["USER_START_ID"] = (intval($arFields["USER_START_ID"]) > 0 ? intval($arFields["USER_START_ID"]) : false);
	if (is_set($arFields, "LAST_POSTER_ID") || $ACTION=="ADD")
		$arFields["LAST_POSTER_ID"] = (intval($arFields["LAST_POSTER_ID"]) > 0 ? intval($arFields["LAST_POSTER_ID"]) : false);
	if (is_set($arFields, "LAST_MESSAGE_ID") || $ACTION=="ADD")
		$arFields["LAST_MESSAGE_ID"] = (intval($arFields["LAST_MESSAGE_ID"]) > 0 ? intval($arFields["LAST_MESSAGE_ID"]) : false);
	if (is_set($arFields, "ICON") || $ACTION=="ADD")
		$arFields["ICON"] = trim($arFields["ICON"]);
	if (is_set($arFields, "STATE") || $ACTION=="ADD")
		$arFields["STATE"] = (in_array($arFields["STATE"], array("Y", "N", "L")) ?  $arFields["STATE"] : "Y");
	if (is_set($arFields, "APPROVED") || $ACTION=="ADD")
		$arFields["APPROVED"] = ($arFields["APPROVED"] == "N" ? "N" : "Y");
	if (is_set($arFields, "SORT") || $ACTION=="ADD")
		$arFields["SORT"] = (intval($arFields["SORT"]) > 0 ? intval($arFields["SORT"]) : 150);
	if (is_set($arFields, "VIEWS") || $ACTION=="ADD")
		$arFields["VIEWS"] = (intval($arFields["VIEWS"]) > 0 ? intval($arFields["VIEWS"]) : 0);
	if (is_set($arFields, "POSTS") || $ACTION=="ADD")
		$arFields["POSTS"] = (intval($arFields["POSTS"]) > 0 ? intval($arFields["POSTS"]) : 0);
	if (is_set($arFields, "TOPIC_ID"))
		$arFields["TOPIC_ID"]=intval($arFields["TOPIC_ID"]);
	if (is_set($arFields, "SOCNET_GROUP_ID") || $ACTION=="ADD")
		$arFields["SOCNET_GROUP_ID"] = (intval($arFields["SOCNET_GROUP_ID"]) > 0 ? intval($arFields["SOCNET_GROUP_ID"]) : false);
	if (is_set($arFields, "OWNER_ID") || $ACTION=="ADD")
		$arFields["OWNER_ID"] = (intval($arFields["OWNER_ID"]) > 0 ? intval($arFields["OWNER_ID"]) : false);
	return True;
}