Ejemplo n.º 1
0
 /**
  * @param array $element
  * @param bool  $showUser
  * @param null  $serviceName
  * @return array
  */
 public static function getOnlineLastSession(array $element, $showUser = false, $serviceName = null)
 {
     //sort by CREATED_TIMESTAMP to get last link
     $filter = array('IBLOCK_ID' => $element['IBLOCK_ID'], 'SECTION_ID' => $element['SECTION_ID'], 'ELEMENT_ID' => $element['ELEMENT_ID']);
     if (!is_null($serviceName)) {
         $filter['SERVICE'] = $serviceName;
     }
     $select = array();
     if ($showUser) {
         $select = array('USER');
     }
     $onlineSession = CWebDavLogOnlineEdit::getList(array('CREATED_TIMESTAMP' => 'DESC'), $filter, $select);
     if ($onlineSession) {
         $onlineSession = $onlineSession->fetch();
     }
     return is_array($onlineSession) ? $onlineSession : array();
 }
Ejemplo n.º 2
0
     case 'skydrive':
     case 'sky-drive':
     case 'onedrive':
         $serviceEditDoc = CWebDavLogOnlineEditBase::SKYDRIVE_SERVICE_NAME;
         break;
     case 'l':
     case 'local':
         $serviceEditDoc = CWebDavLogOnlineEditBase::LOCAL_SERVICE_NAME;
         break;
     default:
         $serviceEditDoc = CWebDavLogOnlineEditBase::GOOGLE_SERVICE_NAME;
         break;
 }
 //check: this document edit by another user (with another service?)
 $wdElement = $ob->GetObject(array('check_permissions' => false), false);
 $lastSession = CWebDavLogOnlineEdit::getOnlineLastSession(array('IBLOCK_ID' => $wdElement['element_array']['IBLOCK_ID'], 'SECTION_ID' => $wdElement['element_array']['IBLOCK_SECTION_ID'], 'ELEMENT_ID' => $wdElement['element_array']['ID']));
 unset($wdElement);
 if ($lastSession && $lastSession['SERVICE'] != CWebDavLogOnlineEditBase::LOCAL_SERVICE_NAME) {
     $serviceEditDoc = $lastSession['SERVICE'];
     unset($lastSession);
 }
 if ($serviceEditDoc == CWebDavLogOnlineEditBase::DEFAULT_SERVICE_NAME) {
     $serviceEditDoc = CWebDavTools::getServiceEditDocForCurrentUser();
 }
 $editComponentParams = array('webdav' => $ob, 'fileId' => (int) $_REQUEST['f'], 'createDoc' => !empty($_REQUEST['createDoc']), 'action' => $_REQUEST['action']);
 if ($serviceEditDoc == CWebDavLogOnlineEditBase::GOOGLE_SERVICE_NAME) {
     $APPLICATION->RestartBuffer();
     $APPLICATION->IncludeComponent('bitrix:webdav.doc.edit.google', '', $editComponentParams);
     include $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/include/epilog_after.php";
     die;
 } elseif ($serviceEditDoc == CWebDavLogOnlineEditBase::SKYDRIVE_SERVICE_NAME) {
Ejemplo n.º 3
0
/**
 * @param $arWDFile
 * @return bool
 */
function WDUFGetOnlineEditService($arWDFile)
{
    return CWebDavLogOnlineEdit::getOnlineService(array('IBLOCK_ID' => $arWDFile['IBLOCK_ID'], 'SECTION_ID' => $arWDFile['IBLOCK_SECTION_ID'], 'ELEMENT_ID' => $arWDFile['ID']));
}
Ejemplo n.º 4
0
 protected function getOnlineUsers()
 {
     $users = CWebDavLogOnlineEdit::getOnlineUsers(array('IBLOCK_ID' => $this->getWebdav()->arParams['element_array']['IBLOCK_ID'], 'SECTION_ID' => $this->getWebdav()->arParams['element_array']['IBLOCK_SECTION_ID'], 'ELEMENT_ID' => $this->getWebdav()->arParams['element_array']['ID']));
     $uniqueList = array();
     foreach ($users as $k => $user) {
         if (empty($user['USER_ID'])) {
             continue;
         }
         if (isset($uniqueList[$user['USER_ID']])) {
             unset($users[$k]);
             continue;
         }
         $uniqueList[$user['USER_ID']] = true;
     }
     unset($user);
     return $users;
 }
Ejemplo n.º 5
0
 protected function getOnlineLastSession()
 {
     if ($this->isExclusiveEdit()) {
         return array();
     }
     $webdav = $this->getWebdav();
     return CWebDavLogOnlineEdit::getOnlineLastSession(array('IBLOCK_ID' => $webdav->arParams['element_array']['IBLOCK_ID'], 'SECTION_ID' => $webdav->arParams['element_array']['IBLOCK_SECTION_ID'], 'ELEMENT_ID' => $webdav->arParams['element_array']['ID']), $this->getServiceName());
 }