public static function GetPublicPath($type, \Bitrix\Disk\File $fileModel) { if (!in_array($type, array(self::PATH_TYPE_DOWNLOAD, self::PATH_TYPE_SHOW, self::PATH_TYPE_PREVIEW))) { return ''; } if ($fileModel->getGlobalContentVersion() <= 1) { return ''; } $isShow = in_array($type, array(self::PATH_TYPE_SHOW, self::PATH_TYPE_PREVIEW)) && \Bitrix\Disk\TypeFile::isImage($fileModel->getName()); $isPreview = $isShow && in_array($type, array(self::PATH_TYPE_PREVIEW)); if ($type == self::PATH_TYPE_PREVIEW && !$isPreview) { return ''; } $url = array('default' => '/bitrix/components/bitrix/im.messenger/' . ($isShow ? 'show.file.php?' : 'download.file.php?')); $url['desktop'] = '/desktop_app/' . ($isShow ? 'show.file.php?' : 'download.file.php?'); if (IsModuleInstalled('mobile')) { $url['mobile'] = '/mobile/ajax.php?mobile_action=im_files&fileType=' . ($isShow ? 'show&' : 'download&'); } foreach ($url as $key => $value) { $url[$key] = $value . 'fileId=' . $fileModel->getId() . ($isPreview ? '&preview=Y' : '') . ($isShow || $key == 'mobile' ? '&fileName=' . urlencode($fileModel->getName()) : ''); } return $url; }