• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/extlinks.php
  • Класс: CWebDavExtLinks
  • Вызов: CWebDavExtLinks::AddExtLink
static function AddExtLink($options)
{
	global $DB;
	$arFields_i = array();
	$clob = array();
	$arFields_i["URL"] = $options["URL"];
	$arFields_i["F_SIZE"] = $options["F_SIZE"];
	$arFields_i["DESCRIPTION"] = $options["DESCRIPTION"];
	$clob["DESCRIPTION"] = $options["DESCRIPTION"];
	$arFields_i["HASH"] = self::GenerateExtLinkHash();
	if(!array_key_exists("USER_ID", $options))
	{
		$arFields_i["USER_ID"] = self::GetUserID();
	}
	else
	{
		$arFields_i["USER_ID"] = intval($options["USER_ID"]);
	}
	if($options["PASSWORD"] <> '')
	{
		$arFields_i["SALT"] = self::GenerateHash();
		$arFields_i["PASSWORD"] = self::GenerateHash($options["PASSWORD"], $arFields_i["SALT"]);
	}
	$arFields_i["CREATION_DATE"] = time();
	$arFields_i["LIFETIME"] = $arFields_i["CREATION_DATE"] + $options["LIFETIME"];
	$arFields_i["BASE_URL"] = $options["BASE_URL"];
	$arFields_i["URL_HASH"] = md5($arFields_i["BASE_URL"] . $arFields_i["URL"]);
	$arFields_i["SINGLE_SESSION"] = (int)!empty($options['SINGLE_SESSION']);
	if(isset($options["FILE_ID"]))
	{
		$arFields_i["FILE_ID"] = intval($options["FILE_ID"]);
	}
	if(isset($options["VERSION_ID"]))
	{
		$arFields_i["VERSION_ID"] = intval($options["VERSION_ID"]);
	}
	if(isset($options["ELEMENT_ID"]))
	{
		$arFields_i["ELEMENT_ID"] = intval($options["ELEMENT_ID"]);
	}
	if(!empty($options['LINK_TYPE']) && isset(self::$linkTypes[$options['LINK_TYPE']]))
	{
		$arFields_i["LINK_TYPE"] = $options['LINK_TYPE'];
	}

	if(array_key_exists("IBLOCK_ID", $options))
	{
		$arFields_i["RESOURCE_TYPE"] = "IBLOCK";
		$arFields_i["IBLOCK_TYPE"] = ($options["IBLOCK_TYPE"] <> '' && $options["IBLOCK_TYPE"] != 0) ? $options["IBLOCK_TYPE"] : "";
		$arFields_i["IBLOCK_ID"] = intval($options["IBLOCK_ID"]);
	}
	else
	{
		$arFields_i["RESOURCE_TYPE"] = "FOLDER";
		$arFields_i["FOLDER"] = $options["FOLDER"];
	}
	if(array_key_exists("ROOT_SECTION_ID", $options))
	{
		$arFields_i["ROOT_SECTION_ID"] = $options["ROOT_SECTION_ID"];
	}

	$arInsert = $DB->PrepareInsert(self::EXT_LINKS_TABLE, $arFields_i);
	$strSql =
		"INSERT INTO " . self::EXT_LINKS_TABLE . " (".$arInsert[0].") ".
		"VALUES(".$arInsert[1].")";
	$id = $DB->QueryBind($strSql, $clob, true);
	return ($id != false ? $arFields_i["HASH"] : false);
}