Главная
» Как сделать
»
Настройте панели инструментов Collabora CODE без редактирования исходного кода.
Настройте панели инструментов Collabora CODE без редактирования исходного кода.
Чтобы упростить редактор Collabora Online Development Edition (CODE), выберите «Компактный» или «Вкладочный» для общего расположения элементов, а затем используйте интеграцию PostMessage хоста WOPI, чтобы скрыть отдельные команды, кнопки или вкладки панели блокнота. Сворачивание панели инструментов — удобное изменение отображения; скрытие элемента управления через хост более целесообразно, если вам нужен единообразный интерфейс для каждой сессии редактирования.
Какой интерфейс CODE следует настроить?
CODE предлагает компактный макет с традиционными меню и панелями инструментов, а также макет с вкладками и панелью блокнота. Начните с определения того, какой из них видят ваши пользователи: идентификатор кнопки панели инструментов и идентификатор вкладки панели блокнота не взаимозаменяемы. В руководстве по поддержке Collabora указано, что старые названия classicбыли notebookbarустарели в пользу новых compact, tabbedначиная с серии 21.11. См. руководство по настройке интерфейса Collabora .
Вложенная структура группирует инструменты редактирования под именованными вкладками; вкладка «Справка» может быть целью для функции Hide_NotebookTab.В компактном варианте компоновки используется отдельная строка меню и меньшая по размеру полоса кнопок, поэтому элементы управления меню и кнопками должны иметь разные идентификаторы.
Следует ли изменять параметры сервера по умолчанию или пользовательскую сессию?
Изменяйте настройки сервера по умолчанию только в том случае, если большинство пользователей должны изначально использовать один и тот же макет. В самостоятельных установках параметр user_interface.modeпринимает coolwsd.xmlзначения default, compact, или tabbed. Создайте резервную копию конфигурации, а затем измените существующее modeзначение, вместо того чтобы добавлять еще один XML-элемент:
Этот сокращённый XML-код демонстрирует настройку, а не заменяет весь раздел конфигурации. Примените изменения через обычный процесс настройки развертывания и перезапуска службы, а затем снова откройте документ. --o:user_interface.mode=tabbedВ контейнерных развертываниях вместо этого можно передавать существующие переопределения запуска CODE. Встраиваемое приложение также может влиять на режим запуска через своё ui_defaultsзначение WOPI. Предпочтения хоста могут иметь значение, когда сервер использует default, поэтому не следует предполагать, что редактирование сервера переопределит выбор, специфичный для интеграции.
Можно ли скрыть всю панель инструментов, не редактируя исходный код?
Для увеличения свободного места при чтении, щелчок по выбранной вкладке может свернуть панель блокнота; повторный щелчок развернет ее. Collabora описывает это поведение в своем официальном описании панели блокнота . API PostMessage также документирует функцию Collapse_Notebookbar, которая скрывает кнопки панели блокнота или полосу кнопок «Свернуть». Это обратимое состояние отображения, а не постоянная политика администратора.
Для более точного управления выберите действие PostMessage, соответствующее элементу. Следующие сопоставления перечислены в руководстве по Collabora Online SDK :
Что скрыть
Действие PostMessage
Формат идентификатора
Одна кнопка на панели инструментов
Hide_Button
Идентификатор кнопки
Команда, выполняемая в меню и на панелях инструментов.
Hide_Command
команда UNO, например.uno:ThemeDialog
Одна вкладка в макете с вкладками
Hide_NotebookTab
Идентификатор вкладки, напримерHelp
Компактный пункт меню
Hide_Menu_Item
Идентификатор пункта меню
Действие, специфичное для вкладок, описано начиная с версии 24.04.11.1 . В SDK также отмечается расширенное покрытие контекстного меню Hide_Commandв версии 24.04.11.2 . Перед использованием любого из этих действий проверьте развернутую сборку CODE.
Как отправлять команды скрытия с хоста WOPI?
Эти действия отправляются приложением, встраивающим CODE в iframe, а не вводятся в диалоговое окно настроек CODE. Вам необходим контроль над этой интеграцией, работающий CheckFileInfoответ WOPI и PostMessageOriginзначение, соответствующее источнику вашего веб-приложения. Если вы используете готовую интеграцию Nextcloud или ownCloud, она может не предоставлять произвольные пользовательские обработчики PostMessage; в этом случае внесите изменения в саму интеграцию или используйте поддерживаемые ею настройки.
1. Дождитесь завершения загрузки кода.
Зарегистрируйте обработчик сообщений на странице хоста. Проверьте как окно отправителя, так и источник. Когда CODE отправляет сообщение App_LoadingStatusс параметром Status: Document_Loaded, отправьте его Host_PostmessageReadyперед сообщениями о настройке. Без этого подтверждения CODE может игнорировать команды хоста — ошибка, описанная в проблеме Collabora #13224 .
2. Скрыть вкладку и команду форматирования.
Приведенный ниже JavaScript-код на стороне хоста предполагает, что на вашей странице уже есть iframe с ID collabora-frame. Укажите editorOriginточный HTTPS-источник, обслуживающий ваш редактор кода, а не сервер хранения WOPI. Зарегистрируйте обработчик событий до инициализации документа в вашем реальном приложении:
В панели исходного кода основного приложения можно изучить схему подключения postMessage. Используйте полный пример кода из статьи, а не сокращенный текст, показанный в этой панели.
Здесь Helpуказан целевой объект вкладки Notebookbar, а .uno:ThemeDialogобозначает команду LibreOffice UNO. Разработчики Collabora специально описывают последний идентификатор в своих рекомендациях по скрытию элементов UNO . Чтобы скрыть определенную кнопку на панели инструментов Compact, замените действие на Hide_Buttonи укажите проверенный идентификатор кнопки. Не пытайтесь угадать идентификатор по видимой надписи; проверьте исходный код установленного вами CODE или руководство по идентификаторам панелей инструментов в SDK.
Что делать, если вкладка или панель инструментов не исчезнут?
Перед изменением файлов CODE проверьте консоль браузера и сетевую активность. Наиболее распространенные причины: отсутствие Host_PostmessageReadyподтверждения соединения, несоответствие параметров PostMessageOrigin, отправка сообщений до Document_Loadedили выбор пункта меню Compact, когда редактор находится в режиме вкладок. Повторное открытие файла запускает новую сессию, поэтому применяйте скрытие сообщений каждый раз.
Также существуют дефекты, специфичные для отдельных версий. Например, в проблеме Collabora #15910 описывается Hide_NotebookTabошибка JavaScript в CODE 25.04.9.4, о которой сообщалось в июне 2026 года; проблема помечена как закрытая, но это само по себе не позволяет определить, какие развернутые сборки содержат исправление. Проверьте свою точную версию и ее примечания к выпуску, если вы видите описанную ошибку.
Наконец, скрытие не является контролем доступа. Скрытая кнопка «Печать» или «Загрузка» может оставлять доступными эквивалентные API или другие пути. Если цель состоит в том, чтобы запретить эти операции, используйте документированный WOPI DisablePrintили DisableExportфлаги и устанавливайте соответствующие разрешения на хранение данных, а не полагайтесь на Hide_Buttonили Hide_Command.
Как можно убедиться, что настройка сработала?
Откройте новый документ в нужном формате. Убедитесь, что Helpвкладка отсутствует в режиме вкладок и что команда «Тема» больше не отображается там, где она была видна ранее. Затем отредактируйте и сохраните тестовый документ, чтобы убедиться, что обычный режим редактирования по-прежнему работает. Повторите проверку с другим типом документа и после перезагрузки страницы, поскольку хост должен повторно применить команды скрытия, специфичные для сессии.
После скрытия вкладки «Справка» остальные вкладки редактирования и рабочая область документа остаются доступными для проверки работоспособности.