Your IP : 3.148.232.123


Current Path : /var/www/axolotl/data/www/yar.axolotls.ru/bitrix/components/bitrix/webdav.file.edit/
Upload File :
Current File : /var/www/axolotl/data/www/yar.axolotls.ru/bitrix/components/bitrix/webdav.file.edit/component.php

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
if (!CModule::IncludeModule("webdav")):
	ShowError(GetMessage("W_WEBDAV_IS_NOT_INSTALLED"));
	return 0;
endif;

require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/components/bitrix/webdav/functions.php");
/********************************************************************
				Input params
********************************************************************/
/***************** BASE ********************************************/
	if (!is_object($arParams["OBJECT"]))
		$arParams["OBJECT"] = new CWebDavFile($arParams, $arParams['BASE_URL']);
	$ob = $arParams["OBJECT"]; 
	$ob->IsDir(); 
	$arParams["SECTION_ID"] = $ob->arParams["item_id"];
	$arParams["PERMISSION"] = $ob->permission;
	$arParams["ACTION"] = strToUpper(!empty($arParams["ACTION"]) ? $arParams["ACTION"] : $_REQUEST["ACTION"]);
	$arParams["ACTION"] = ($ob->arParams["not_found"] ? "ADD" : $arParams["ACTION"]); 
/***************** URL *********************************************/
	$URL_NAME_DEFAULT = array(
		"sections" => "PAGE_NAME=sections&PATH=#PATH#", 
		"element_edit" => "PAGE_NAME=element_edit&ELEMENT_ID=#ELEMENT_ID#&ACTION=#ACTION#");
	foreach ($URL_NAME_DEFAULT as $URL => $URL_VALUE)
	{
		if (empty($arParams[strToUpper($URL)."_URL"]))
			$arParams[strToUpper($URL)."_URL"] = $APPLICATION->GetCurPage().($URL == "index" ? "" : "?");
		$arParams["~".strToUpper($URL)."_URL"] = $arParams[strToUpper($URL)."_URL"];
		$arParams[strToUpper($URL)."_URL"] = htmlspecialchars($arParams["~".strToUpper($URL)."_URL"]);
	}
/***************** ADDITIONAL **************************************/
	$arParams["FORM_ID"] = "webdav_file_edit"; 
//***************** STANDART ****************************************/
	$arParams["SET_TITLE"] = ($arParams["SET_TITLE"] != "N" ? "Y" : "N"); //Turn on by default
	$arParams["SET_NAV_CHAIN"] = ($arParams["SET_NAV_CHAIN"] == "N" ? "N" : "Y"); //Turn on by default
/********************************************************************
				/Input params
********************************************************************/

if ($ob->permission < "W")
{
	ShowError(GetMessage("WD_ACCESS_DENIED"));
	return false; 
}

if ($ob->arParams["not_found"])
{
	$ob->IsDir(array("element_id" => $_REQUEST["ID"])); 
}

if ($ob->arParams["not_found"])
{
	ShowError(GetMessage("WD_ERROR_ELEMENT_NOT_FOUND"));
	return false; 
}

/********************************************************************
				Actions
********************************************************************/
if (empty($_REQUEST["cancel"]) && check_bitrix_sessid())
{
	$arParams["CONVERT"] = (strPos($arParams["~SECTIONS_URL"], "?") === false ? true : false);
	if (!$arParams["CONVERT"])
		$arParams["CONVERT"] = (strPos($arParams["~SECTIONS_URL"], "?") > strPos($arParams["~SECTIONS_URL"], "#PATH#")); 
	$arNavChain = $ob->GetNavChain(array("path" => $ob->_path), $arParams["CONVERT"]); 
	
	if ($arParams["ACTION"] == "DELETE")
	{
		$ob->DELETE(array("path" => $ob->_path)); 
	}
	else
	{
		$options = array("path" => $ob->arParams["item_id"], "dest_url" => $ob->_get_path($ob->arParams["parent_id"], false).$_REQUEST["NAME"]);  
		$ob->MOVE($options); 
		if (!empty($_FILES["FILE"]) && $_FILES["FILE"]["error"] <= 0)
		{
			$res = array("path" => $options["dest_url"], "fopen" => "N"); 
			if ($ob->PUT($res) === true)
			{
				CopyDirFiles($_FILES["FILE"]["tmp_name"], $res["fspath"], true); 
				$ob->put_commit($res); 
			}
		}
	}
	
	$oError = $APPLICATION->GetException();
	if ($oError):
		ShowError($oError->GetString());
	else: 
		if (!empty($_REQUEST["apply"]))
		{
			$options["dest_url"] = $ob->_uencode($options["dest_url"], array("utf8" => "Y", "convert" => "full"));
			$url = CComponentEngine::MakePathFromTemplate($arParams["~ELEMENT_EDIT_URL"], 
				array("PATH" => $options["dest_url"], "ACTION" => "EDIT"));
		}
		else
		{
			array_pop($arNavChain);
			$url = CComponentEngine::MakePathFromTemplate($arParams["~SECTIONS_URL"], array("PATH" => implode("/", $arNavChain)));
		}
		LocalRedirect($url);
	endif;
}
/********************************************************************
				/ Actions
********************************************************************/

/********************************************************************
				Data
********************************************************************/
$arResult["NAV_CHAIN"] = $ob->GetNavChain(); 

$arElement = $arResult["ELEMENT"] = $ob->arParams["element_array"]; 
$arElement["FILE_SIZE"] = filesize($ob->real_path_full.$arElement["ID"]); 
__parse_file_size($arElement, $arResult["ELEMENT"]); 
$arResult["ELEMENT"]["BASE_NAME"] = str_replace($arResult["ELEMENT"]["EXTENTION"], "", $arResult["ELEMENT"]["NAME"]); 
//	$arResult["ELEMENT"]["DATE_CREATE"] = MakeTimeStamp(); 
$arResult["ELEMENT"]["~TIMESTAMP_X"] = filemtime($ob->real_path_full.$arResult["ELEMENT"]["ID"]); 
$arResult["ELEMENT"]["TIMESTAMP_X"] = ConvertTimeStamp($arResult["ELEMENT"]["~TIMESTAMP_X"], "FULL"); 
$arResult["ELEMENT"]["URL"] = array(
	"THIS" => CComponentEngine::MakePathFromTemplate($arParams["SECTIONS_URL"], array("PATH" => implode("/", $arResult["NAV_CHAIN"]))), 
	"~THIS" => CComponentEngine::MakePathFromTemplate($arParams["~SECTIONS_URL"], array("PATH" => implode("/", $arResult["NAV_CHAIN"])))); 
/********************************************************************
				/ Data
********************************************************************/

$this->IncludeComponentTemplate();

/********************************************************************
				Standart operations
********************************************************************/
if($arParams["SET_TITLE"] == "Y")
{
	$APPLICATION->SetTitle(GetMessage("WD_TITLE"));
}

if ($arParams["SET_NAV_CHAIN"] == "Y")
{
	$arNavChain = array(); 
	foreach ($arResult['NAV_CHAIN'] as $res)
	{
		$arNavChain[] = $res;
		$url = CComponentEngine::MakePathFromTemplate(
			$arParams["~SECTIONS_URL"], array("PATH" => implode("/", $arNavChain)));
		$GLOBALS["APPLICATION"]->AddChainItem(htmlspecialcharsEx($res), $url);
	}
}
/********************************************************************
				/Standart operations
********************************************************************/
?>