• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/editdoccomponentbase.php
  • Класс: CWebDavEditDocComponentBase
  • Вызов: CWebDavEditDocComponentBase::publicFile
protected function publicFile()
{
	$onlineEditor = $this->getOnlineLastSession();
	if($onlineEditor)
	{
		//create session on the basis of last session
		$this->addOnlineSessionByCurrentUser($onlineEditor);
		$idDoc = CUtil::JSEscape($onlineEditor['SERVICE_FILE_ID']);
		$linkDoc = CUtil::JSEscape($onlineEditor['SERVICE_FILE_LINK']);
	}
	else
	{
		if(mb_substr($this->getWebdav()->arParams['file_array']['SRC'], 0, 1) == "/")
		{
			//from us server
		}
		else
		{
			//from cloud
		}

		$response = $this
			->getDocHandler()
			->publicFile(
				$this->getFileData(),
				$this->getAccessToken()
			);
		if(!$response)
		{
			return array(
				'error' => GetMessage('WD_DOC_EDIT_UNKNOWN_ERROR'),
			);
		}
		//if somebody public to google similar document
		$onlineEditor = $this->getOnlineLastSession();
		if(!$onlineEditor)
		{
			//current user is publisher of this document
			$onlineEditor['SERVICE_FILE_ID'] = $response['id'];
			$onlineEditor['SERVICE_FILE_LINK'] = $response['link'];
			$onlineEditor['OWNER_ID'] = $this->getUser()->getID();
		}
		$this->addOnlineSessionByCurrentUser($onlineEditor);

		$idDoc = CUtil::JSEscape($onlineEditor['SERVICE_FILE_ID']);
		$linkDoc = CUtil::JSEscape($onlineEditor['SERVICE_FILE_LINK']);
	}
	$uriToDoc = $this->generateUriToDoc();

	return array(
		'iframeSrc' => $linkDoc,
		'uriToDoc' => $uriToDoc,
		'idDoc' => $idDoc,
	);
}