Example #1
0
 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;
 }