Настройте панели инструментов Collabora CODE без редактирования исходного кода.

Чтобы упростить редактор Collabora Online Development Edition (CODE), выберите «Компактный» или «Вкладочный» для общего расположения элементов, а затем используйте интеграцию PostMessage хоста WOPI, чтобы скрыть отдельные команды, кнопки или вкладки панели блокнота. Сворачивание панели инструментов — удобное изменение отображения; скрытие элемента управления через хост более целесообразно, если вам нужен единообразный интерфейс для каждой сессии редактирования.

Какой интерфейс CODE следует настроить?

CODE предлагает компактный макет с традиционными меню и панелями инструментов, а также макет с вкладками и панелью блокнота. Начните с определения того, какой из них видят ваши пользователи: идентификатор кнопки панели инструментов и идентификатор вкладки панели блокнота не взаимозаменяемы. В руководстве по поддержке Collabora указано, что старые названия classicбыли notebookbarустарели в пользу новых compact, tabbedначиная с серии 21.11. См. руководство по настройке интерфейса Collabora .

Интерфейс Collabora CODE с вкладками: «Файл», «Главная», «Вставка», «Макет», «Вид» и «Справка» расположены над документом Writer.
Вложенная структура группирует инструменты редактирования под именованными вкладками; вкладка «Справка» может быть целью для функции Hide_NotebookTab.
Компактный интерфейс Collabora CODE отображает меню «Файл», «Правка», «Вид», «Вставка», «Формат», «Инструменты» и «Справка» над узкой панелью инструментов.
В компактном варианте компоновки используется отдельная строка меню и меньшая по размеру полоса кнопок, поэтому элементы управления меню и кнопками должны иметь разные идентификаторы.

Следует ли изменять параметры сервера по умолчанию или пользовательскую сессию?

Изменяйте настройки сервера по умолчанию только в том случае, если большинство пользователей должны изначально использовать один и тот же макет. В самостоятельных установках параметр user_interface.modeпринимает coolwsd.xmlзначения default, compact, или tabbed. Создайте резервную копию конфигурации, а затем измените существующее modeзначение, вместо того чтобы добавлять еще один XML-элемент:

<user_interface>
  <mode>tabbed</mode>
</user_interface>

Этот сокращённый 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. Зарегистрируйте обработчик событий до инициализации документа в вашем реальном приложении:

const frame = document.getElementById('collabora-frame');
const editorOrigin = 'https://office.example.com';

function sendToCode(MessageId, Values = {}) {
  frame.contentWindow.postMessage(JSON.stringify({
    MessageId, SendTime: Date.now(), Values
  }), editorOrigin);
}

window.addEventListener('message', (event) => {
  if (event.source !== frame.contentWindow ||
      event.origin !== editorOrigin) return;
  let message;
  try {
    message = typeof event.data === 'string'
      ? JSON.parse(event.data) : event.data;
  } catch { return; }
  if (message?.MessageId !== 'App_LoadingStatus' ||
      message?.Values?.Status !== 'Document_Loaded') return;

  sendToCode('Host_PostmessageReady');
  sendToCode('Hide_NotebookTab', { id: 'Help' });
  sendToCode('Hide_Command', { id: '.uno:ThemeDialog' });
});
В панели «Источники» инструментов разработчика браузера отображается обработчик сообщений на стороне хоста и вызов функции Hide_NotebookTab, нацеленный на функцию «Справка».
В панели исходного кода основного приложения можно изучить схему подключения 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вкладка отсутствует в режиме вкладок и что команда «Тема» больше не отображается там, где она была видна ранее. Затем отредактируйте и сохраните тестовый документ, чтобы убедиться, что обычный режим редактирования по-прежнему работает. Повторите проверку с другим типом документа и после перезагрузки страницы, поскольку хост должен повторно применить команды скрытия, специфичные для сессии.

Интерфейс Collabora CODE с вкладками «Файл», «Главная», «Вставка», «Макет» и «Вид», без справки, но с возможностью редактирования документа Writer.
После скрытия вкладки «Справка» остальные вкладки редактирования и рабочая область документа остаются доступными для проверки работоспособности.

Оставить комментарий

Настройте панели инструментов Collabora CODE без редактирования исходного кода.

Настройте панели инструментов Collabora CODE без редактирования исходного кода.

Упростите работу с Collabora CODE, используя компактный или вложенный режим, а также элементы управления WOPI PostMessage, чтобы безопасно скрывать выбранные кнопки, команды и вкладки.

Запустите Collabora CODE Behind Nginx с завершением TLS-соединения.

Запустите Collabora CODE Behind Nginx с завершением TLS-соединения.

Настройте Nginx на обработку HTTPS для контейнера Collabora CODE, корректное перенаправление WebSockets и проверку общедоступной конечной точки без открытия порта 9980.

Текст должен оставаться видимым при открытии мобильной клавиатуры Collabora.

Текст должен оставаться видимым при открытии мобильной клавиатуры Collabora.

Устранение неполадок с клавиатурой мобильного браузера, скрывающей текст в Collabora Online, с помощью быстрых обходных путей и отдельных проверок для браузеров, встроенных WebView и страниц-хостов.

Остановите ненужную печать и загрузку в ONLYOFFICE.

Остановите ненужную печать и загрузку в ONLYOFFICE.

Установите ограничения на печать и загрузку для ссылок ONLYOFFICE, участников переговорных комнат или сеансов Docs API, а затем проверьте эти ограничения в учетной записи получателя.

Настройте надежное резервное копирование для рабочего пространства ONLYOFFICE.

Настройте надежное резервное копирование для рабочего пространства ONLYOFFICE.

В ONLYOFFICE Workspace укажите место назначения резервного копирования, расписание, охват почты и лимит хранения, а затем убедитесь, что архив готов к восстановлению.

Разверните ONLYOFFICE Docs Enterprise с помощью официального файла конфигурации (Compose File).

Разверните ONLYOFFICE Docs Enterprise с помощью официального файла конфигурации (Compose File).

Запустите стек Enterprise Docker Compose, сохраните его лицензию и данные, безопасно настройте JWT и убедитесь, что редакторы готовы к интеграции.

Чистый текст электронной таблицы с многоразовым макросом ONLYOFFICE

Чистый текст электронной таблицы с многоразовым макросом ONLYOFFICE

Используйте макрос ONLYOFFICE на JavaScript для удаления непечатаемых символов и лишних пробелов в заданном диапазоне электронной таблицы, обеспечивая безопасный процесс проверки.

Измените место хранения по умолчанию в рабочей области ONLYOFFICE.

Измените место хранения по умолчанию в рабочей области ONLYOFFICE.

Переместите данные портала с диска по умолчанию на поддерживаемый облачный провайдер хранения данных или безопасно переместите данные Docker, изменив сопоставление томов хоста.

Полностью удалите ONLYOFFICE Document Server из Linux.

Полностью удалите ONLYOFFICE Document Server из Linux.

Определите, использует ли Document Server пакет Linux или Docker, удалите только его компоненты и проверьте оставшиеся данные, не удаляя по ошибке общие службы.

Прекратите тормозить процесс совместного редактирования в ONLYOFFICE, выявив узкое место.

Прекратите тормозить процесс совместного редактирования в ONLYOFFICE, выявив узкое место.

Причину замедления совместного редактирования можно определить как нехватку ресурсов Docker, проблемы с прокси-соединениями или загрузку документов, после чего выберите решение, соответствующее вашим измерениям.