• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/file.php
  • Класс: CWebDavFile
  • Вызов: CWebDavFile::_move_to_trash
function _move_to_trash($options, $arParams)
{
	$io = self::GetIo();
	if ($arParams['is_dir'])
	{
		$params = $this->GetFilesAndFolders($arParams["item_id"]);
		if (!empty($params))
		{
			$tmpParams = $this->arParams;
			sort($params, SORT_STRING);
			foreach ($params as $file)
			{
				$localpath = str_replace(array($this->real_path_full, "///", "//"), "/", $file);
				$arUndeleteOptions = array(
					"props" => array(
						array(
							"ns" => "BX:",
							"name" => "UNDELETE",
							"val" => $localpath
						)
					),
					"path" => $localpath
				);
				$this->PROPPATCH($arUndeleteOptions);
			}
			$this->arParams = $tmpParams;
		}
		$destName = $arParams['base_name'] . " " . $this->CorrectName(ConvertTimeStamp(time(), "FULL"));
	}
	else
	{
		$arTo = $this->arParams;
		$arUndeleteOptions = array(
			"path" => $arTo["item_id"],
			"props" => array(
				array(
					"ns" => "BX:",
					"name" => "UNDELETE",
					"val" => $arTo["item_id"]
				)
			)
		);
		$this->PROPPATCH($arUndeleteOptions);
		$destName = mb_substr($arTo['base_name'], 0, -mb_strlen($arTo['file_extention']))." " . $this->CorrectName(ConvertTimeStamp(time(), "FULL")) . $arTo['file_extention'];
	}

	$options['dest_url'] = $io->CombinePath("/", $this->meta_names['TRASH']['name'], $destName);
	$options['rename'] = true;
	$status = $this->MOVE($options);
	if (intval($status) == 201)
	{
		return "204 No Content";
	}
	else
	{
		$GLOBALS["APPLICATION"]->ResetException();
		$GLOBALS["APPLICATION"]->ThrowException(GetMessage("WD_FILE_ERROR16"), "FILE_OR_FOLDER_TRASH_ERROR");
		return $status;
	}
}