diskmobile 26.500.0 Заметное

Diskmobile 26.500.0: ссылки на файлы Диска и папки по единой ссылке открываются в приложении

1 мин чтения
Узнавайте о ломающих изменениях Битрикса раньше, чем они доедут до прода: свежие разборы — в канале @bxmax_updates

В diskmobile 26.500.0 мобильное приложение научилось само открывать обычные ссылки на файлы Диска и единые ссылки на папки, а внутри такой папки с файлами можно работать как в своём хранилище. На сервере для этого появились три действия контроллеров. Прошлую версию мы разбирали в diskmobile 26.400.0.

Новое

Ссылка на файл открывается превью

Приложение перехватывает ссылки на карточку файла во всех трёх видах хранилищ: /company/personal/user/<id>/disk/file/…, /workgroups/group/<id>/disk/file/… и общий диск /docs/file/…. В коробке общий диск может лежать по своему пути, например /docs/shared/file/…, этот вариант тоже поддержан. Путь уходит в новое действие diskmobile.Common.resolveFileId. Оно находит хранилище, ищет файл по пути через UrlManager::resolveFileIdFromPath() и возвращает id, имя, тип и право на скачивание, если файл не удалён и пользователь может его читать. В остальных случаях приходит ошибка DISKMOBILE_FILE_PATH_DENIED.

Если ваш модуль шлёт в чат или уведомление ссылку на файл, получите её штатным методом Диска, и с телефона она откроется превью вместо страницы портала:

        <?php

declare(strict_types=1);

use Bitrix\Disk\Driver;
use Bitrix\Disk\File;
use Bitrix\Main\Loader;

Loader::requireModule('disk');

$file = File::loadById($fileId);
if ($file !== null) {
    $urlManager = Driver::getInstance()->getUrlManager();
    // при стандартных путях: /company/personal/user/1/disk/file/Отчёты/Июль.xlsx
    $path = $urlManager->getPathFileDetail($file);
    // для текста сообщения в чате нужна полная ссылка
    $url = $urlManager->getHostUrl() . $path;
}

    

Пример собран по коду ядра, на телефоне мы его не проверяли.

Папка по единой ссылке открывается в приложении

Единые ссылки на папки вида /folder/<код> теперь открываются списком файлов. Содержимое отдаёт Folder::getChildrenByUnifiedLinkAction(), оно перенаправляет запрос в контроллер единых ссылок модуля disk. Поиск в такой папке идёт по всем подпапкам, свежие файлы сверху.

Над содержимым работают те же действия, что и в своём хранилище: переименование, удаление, перемещение, копирование, создание файла и подпапки. Приложение вызывает их через disk.api.UnifiedLinkActions.* с кодом ссылки. Если ссылка закрыта паролем, приложение его спросит, а список обновляется по pull-событиям. Серверную сторону единых ссылок смотрите в разборе disk.

Единые ссылки, обёрнутые в https://bitrix24public.com/…, приложение открывает тоже, но только ссылки текущего портала. Обёртку чужого портала оно оставляет внешней ссылкой, а произвольный путь на публичном хосте в webview не откроет.

Новые действия контроллеров

  • diskmobile.Common.resolveFileId — файл по типу хранилища и пути.
  • diskmobile.Common.getFileById — то же по id файла, приложение его пока не вызывает.
  • diskmobile.Folder.getChildrenByUnifiedLink — содержимое папки по коду единой ссылки.

Все три вызываются только из приложения или AJAX, потому что базовый контроллер модуля требует авторизацию, CSRF-токен и POST и закрыт для REST.

Мелочи и находки

  • Если ссылки на файлы общего диска начинаются не с /docs/file/ и не с /docs/<папка>/file/, превью по ним приложение не откроет. Роут единых ссылок примет имя папки за код ссылки, не узнает в нём формат из 20 латинских букв и цифр и откроет страницу портала.
  • Новое действие объявлено с string $search = null, как и старый getChildrenAction. В PHP 8.4 такой неявный nullable даёт deprecation.

Новая версия вышла — разбор уже в Telegram

В канале @bxmax_updates публикуем каждый свежий разбор: что сломается, что устарело и что появилось в API. Узнаете до того, как обновите прод.

Подписаться

Читайте дальше

diskmobile 26.400.0 Заметное Свежее

Diskmobile 26.400.0: единые ссылки без отклонённых промисов и один маршрут disk:path

Diskmobile 26.400.0 вышел в коробку 17 сентября 2026 года (по официальному каналу «Битрикс24 changelog») и правит только JS-расширения мобильного приложения, PHP-API и БД не тронуты. `unifiedOpener()` из `disk/opener/unified-link/opener` при запрете доступа или ненайденной ссылке больше не отклоняет…

2 мин
socialnetwork 26.200.0 Безопасность Свежее

Socialnetwork 26.200.0: XSS в заявках и списке участников, копирование проекта по праву редактирования и курсор в log.blogpost.get

Socialnetwork 26.200.0 закрывает XSS в списке участников проекта и в заявках в группы, подмену ссылок через название группы и утечку задач в контекст AI. Копировать проект теперь можно только с правом на редактирование. Администраторам, у которых стояли 26.100.0 или 26.150.0, стоит проверить права с…

2 мин
sign 26.800.0 Безопасность Свежее

Sign 26.800.0: закрыли доступ к чужим документам, к приглашению на подпись можно дописать текст

Sign 26.800.0 для коробочного Битрикс24 закрывает несколько дыр в проверке прав: часть AJAX-экшенов модуля не проверяла, есть ли у пользователя доступ к конкретному документу, группе или участнику. Если на портале подписывают документы, с сотрудниками или с клиентами, обновляйтесь. Из нового — текст…

2 мин
search 26.100.0 Ломающее Свежее

Search 26.0.0–26.100.0: новые атрибуты Sphinx, переиндексация из консоли и исправленная проверка прав

Модуль поиска обновился сразу на две версии: 25.200.0 → 26.0.0 → 26.100.0. Без правки sphinx.conf индексация на Sphinx перестанет работать, а у встроенного движка и FULLTEXT MySQL/PostgreSQL, судя по коду, заголовки новых записей больше не попадают в индексируемый текст. В 26.100.0 закрыли пропуск п…

2 мин
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…
Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти