Last active
July 13, 2023 13:24
-
-
Save mborodov/0b022e2d360ea2046d6f9b2c3f439bec to your computer and use it in GitHub Desktop.
Bitrix Tips
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Метод получает ссылку на открытие файла в Google Drive | |
* @param $userId - ID пользователя для диска | |
* @param $folderId - ID папки в диске | |
* @param $fileName - Имя файла ддя поиска | |
* @return bool|string - Возвращаем либо ссылку на google drive либо false | |
*/ | |
public static function getFileExtLinkFromUserDisk($userId, $folderId, $fileName) | |
{ | |
if (!\Bitrix\Main\Loader::includeModule('disk')) | |
return false; | |
// Подключим хранилище пользователя | |
$storage = \Bitrix\Disk\Driver::getInstance()->getStorageByUserId($userId); | |
if (!$storage) | |
return false; | |
// Перейдем в нужную папку | |
$folder = \Bitrix\Disk\Folder::loadById($folderId); | |
$securityContext = $storage->getCurrentUserSecurityContext(); | |
$file = false; | |
// Найдем файл в папке по имени | |
foreach ($folder->getChildren($securityContext) as $item) { | |
// Пропускаем папки | |
if ($item instanceof Folder) continue; | |
// Ищем нужный по имени файл | |
if (mb_convert_encoding($fileName, 'UTF-8', 'auto') === mb_convert_encoding($item->getName(), 'UTF-8', 'auto')) { | |
$file = $item; | |
break; | |
} | |
} | |
if (empty($file)) return false; | |
// Сформируем публичную ссылку для просмотра | |
$extLink = $file->addExternalLink(['TYPE' => \Bitrix\Disk\Internals\ExternalLinkTable::TYPE_MANUAL]); | |
return 'https://drive.google.com/viewerng/viewer?url=' . PORTAL_URL. '/docs/pub/' | |
. $extLink->getHash() . '/download/?%26&embedded=true'; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment