• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/short_uri.php
  • Класс: CBXAllShortUri
  • Вызов: CBXAllShortUri::ParseFields
static function ParseFields(&$arFields, $id = 0)
{
	$id = intval($id);
	$updateMode = ($id > 0 ? true : false);
	$addMode = !$updateMode;

	if (is_set($arFields, "URI") || $addMode)
	{
		$arFields["URI"] = trim($arFields["URI"]);
		if ($arFields["URI"] == '')
		{
			self::AddError(GetMessage("MN_SU_NO_URI"));
			return false;
		}

		$arFields["URI_CRC"] = self::Crc32($arFields["URI"]);
	}

	if (is_set($arFields, "SHORT_URI") || $addMode)
	{
		$arFields["SHORT_URI"] = trim($arFields["SHORT_URI"]);
		if ($arFields["SHORT_URI"] == '')
		{
			self::AddError(GetMessage("MN_SU_NO_SHORT_URI"));
			return false;
		}

		$ar = @parse_url($arFields["SHORT_URI"]);
		if (isset($ar["path"]))
			$arFields["SHORT_URI"] = $ar["path"];

		//$arFields["SHORT_URI"] = @parse_url($arFields["SHORT_URI"], PHP_URL_PATH);
		$arFields["SHORT_URI"] = trim($arFields["SHORT_URI"], "/");
		if ($arFields["SHORT_URI"] == '')
		{
			self::AddError(GetMessage("MN_SU_WRONG_SHORT_URI"));
			return false;
		}

		$arFields["SHORT_URI_CRC"] = self::Crc32($arFields["SHORT_URI"]);
	}

	if (is_set($arFields, "STATUS") || $addMode)
	{
		$arFields["STATUS"] = intval($arFields["STATUS"]);
		if ($arFields["STATUS"] <= 0)
		{
			self::AddError(GetMessage("MN_SU_NO_STATUS"));
			return false;
		}
		elseif (!array_key_exists($arFields["STATUS"], self::$httpStatusCodes))
		{
			self::AddError(GetMessage("MN_SU_WRONG_STATUS"));
			return false;
		}
	}

	if (is_set($arFields, "NUMBER_USED") || $addMode)
	{
		$arFields["NUMBER_USED"] = intval($arFields["NUMBER_USED"] ?? 0);
		if ($arFields["NUMBER_USED"] <= 0)
			$arFields["NUMBER_USED"] = 0;
	}

	return true;
}