- Модуль: 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);
}