• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/general.php
  • Класс: CWebDavBase
  • Вызов: CWebDavBase::base_PROPPATCH
function base_PROPPATCH()
{
	if ($this->_check_lock_status($this->_path))
	{
		global $APPLICATION;
		$options = array(
			'path' => $this->_udecode($this->_path));

		$propinfo = new __CParseProppatch();
		$propinfo->LoadFromPhpInput();
		if (!$propinfo->success)
		{
			$this->ThrowError('400 Error', 'WEBDAV_PROPPATCH_PARSE', '', __FILE__.' '.__LINE__);
			return;
		}
		$options['props'] = $propinfo->props;

		$responsedescr = $this->PROPPATCH($options);

		$this->SetStatus("207 Multi-Status");
		header('Content-Type: text/xml; charset="utf-8"');

		echo "n";
		echo "n";
		echo " n";
		echo "	" . $APPLICATION->ConvertCharset($this->base_url . $options['path'], SITE_CHARSET, 'UTF-8'). "n";

		foreach ($options["props"] as $prop)
		{
			echo "	 n";
			echo "	  <".$prop['name']." xmlns="".$prop['ns'].""/>n";
			echo "	  HTTP/1.1 ".$prop['status']."n";
			echo "	 n";
		}

		if ($responsedescr)
		{
			echo "	".
			$APPLICATION->ConvertCharset(htmlspecialcharsbx($responsedescr), SITE_CHARSET, 'UTF-8').
			"n";
		}

		echo " n";
		echo "n";
	}
	else
	{
		$this->ThrowError("423 Locked", 'WEBDAV_PROPPATCH_LOCKED', '', __FILE__.' '.__LINE__);
	}
}