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