Personalize as barras de ferramentas do Collabora CODE sem editar o código-fonte.

Para simplificar o editor do Collabora Online Development Edition (CODE), escolha o layout Compacto ou com Abas e, em seguida, use a integração PostMessage do host WOPI para ocultar comandos, botões ou abas da Barra de Blocos de Notas individualmente. Recolher uma barra de ferramentas é uma alteração de visualização conveniente; ocultar um controle por meio do host é mais apropriado quando você deseja uma interface consistente para cada sessão de edição.

Qual interface do CODE você deve personalizar?

O CODE oferece um layout compacto com menus e barras de ferramentas tradicionais, e um layout com abas e uma barra de anotações. Comece identificando qual deles seus usuários visualizam: o ID de um botão da barra de ferramentas e o ID de uma aba da barra de anotações não são intercambiáveis. As diretrizes de suporte da Collabora informam que os nomes antigos classicforam notebookbardescontinuados em favor de compacte tabbeda partir da série 21.11. Consulte as diretrizes de configuração da interface do Collabora .

Interface com abas do Collabora CODE, com as abas Arquivo, Início, Inserir, Layout, Exibir e Ajuda acima de um documento do Writer.
O layout com abas agrupa as ferramentas de edição em abas nomeadas; a aba Ajuda é um possível alvo para Hide_NotebookTab.
Interface compacta do Collabora CODE mostrando os menus Arquivo, Editar, Exibir, Inserir, Formatar, Ferramentas e Ajuda acima de uma barra de ferramentas estreita.
O layout Compacto utiliza uma linha de menu separada e uma faixa de botões menor, portanto, os controles de menu e de botões precisam de identificadores diferentes.

Você deve alterar uma configuração padrão do servidor ou uma sessão de usuário?

Altere o layout padrão do servidor somente quando a maioria dos usuários precisar começar com o mesmo layout. Em instalações autogerenciadas, a user_interface.modeconfiguração coolwsd.xmlaceita `<label>` default, compact`<label>` ou `<label> tabbed`. Faça backup da configuração e, em seguida, altere o valor existente modeem vez de adicionar outro elemento XML:

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

Este XML abreviado demonstra a configuração, não substituindo toda a seção de configuração. Aplique a alteração por meio do processo normal de configuração e reinicialização do serviço da sua implantação e, em seguida, reabra o documento. Implantações de contêiner podem, em vez disso, passar --o:user_interface.mode=tabbedsuas substituições de inicialização CODE existentes. Um aplicativo incorporado também pode influenciar o modo de inicialização por meio de seu ui_defaultsvalor WOPI. A preferência do host pode ser importante quando o servidor usa o defaultparâmetro `--start-mode`, portanto, não presuma que uma edição no servidor substituirá uma escolha específica da integração.

É possível ocultar uma barra de ferramentas inteira sem editar o código-fonte?

Para mais espaço durante a leitura, clicar na aba selecionada recolhe a Barra de Blocos de Notas; clicar novamente a expande. A Collabora descreve esse comportamento na introdução oficial da Barra de Blocos de Notas . A API PostMessage também documenta Collapse_Notebookbaro comportamento de ocultar os botões da Barra de Blocos de Notas ou a barra de botões Compact. Trata-se de um estado de exibição reversível, não uma política permanente do administrador.

Para um controle mais preciso, escolha a ação PostMessage que corresponde ao elemento. Os seguintes mapeamentos estão listados no manual do SDK do Collabora Online :

O que ocultarAção PostMessageFormato de ID
Um botão da barra de ferramentasHide_ButtonID do botão
Um comando que abrange menus e barras de ferramentas.Hide_CommandComando da ONU, como por exemplo.uno:ThemeDialog
Uma aba no layout com abasHide_NotebookTabID da guia, como por exemploHelp
Uma entrada de menu compactaHide_Menu_ItemID do item de menu

A ação específica da aba está documentada a partir da versão 24.04.11.1 . O SDK também indica uma cobertura expandida do menu contextual Hide_Commandna versão 24.04.11.2 . Verifique sua versão do CODE implantada antes de confiar em qualquer um dos comportamentos.

Como enviar os comandos de ocultação a partir do host WOPI?

Essas ações são enviadas pelo aplicativo que incorpora o CODE em um iframe — não digitadas em uma caixa de diálogo de configurações do CODE. Você precisa ter controle dessa integração com o host, uma CheckFileInforesposta WOPI funcional e um PostMessageOriginvalor que corresponda à origem do seu aplicativo web host. Se você usar uma integração pré-configurada do Nextcloud ou ownCloud, ela pode não expor hooks PostMessage personalizados; nesse caso, faça a alteração na própria integração ou use as configurações compatíveis.

1. Aguarde o código terminar de carregar.

Registre um ouvinte de mensagens na página do host. Verifique tanto a janela do remetente quanto a origem. Quando o CODE reportar App_LoadingStatuscom Status: Document_Loaded, envie Host_PostmessageReadyantes das mensagens de personalização. Sem essa verificação, o CODE pode ignorar os comandos do host — uma falha explicada na issue #13224 do Collabora .

2. Ocultar uma tabulação e um comando de formatação

O seguinte código JavaScript do lado do host pressupõe que sua página já tenha um iframe com o ID collabora-frame. Defina editorOrigina origem HTTPS exata que serve seu editor de código, não o servidor de armazenamento WOPI. Registre o ouvinte antes da inicialização do documento em sua aplicação real:

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' });
});
Painel de fontes das ferramentas de desenvolvedor do navegador mostrando um ouvinte de mensagens do lado do host e uma chamada Hide_NotebookTab direcionada para a Ajuda.
O painel de código-fonte do aplicativo host é onde a configuração do postMessage pode ser inspecionada. Use o exemplo de código completo no artigo, não o texto abreviado mostrado neste painel.

Aqui Helpestá o alvo da guia Notebookbar, que .uno:ThemeDialogidentifica um comando UNO do LibreOffice. Os desenvolvedores do Collabora descrevem especificamente este último ID em suas orientações sobre como ocultar elementos UNO . Para ocultar um botão específico da barra de ferramentas Compact, substitua a ação por Hide_Buttone forneça o ID do botão verificado. Não tente adivinhar o ID a partir da legenda visível; verifique o código-fonte do CODE instalado ou as orientações do SDK sobre IDs da barra de ferramentas.

E se a aba ou a barra de ferramentas não desaparecer?

Verifique o console do navegador e a atividade de rede antes de modificar arquivos CODE. As causas mais comuns são a ausência de Host_PostmessageReadyhandshake, uma incompatibilidade de configuração PostMessageOrigin, o envio de mensagens antes do Document_Loadedesperado ou a seleção de um item do menu Compacto enquanto o editor está no modo com abas. Reabrir o arquivo inicia uma nova sessão, portanto, aplique a ocultação de mensagens sempre que necessário.

Também existem defeitos específicos de versão. Por exemplo, o problema nº 15910 do Collabora descreve um Hide_NotebookTaberro de JavaScript no CODE 25.04.9.4, relatado em junho de 2026; o problema está marcado como resolvido, mas isso por si só não estabelece quais versões implantadas contêm a correção. Verifique sua versão exata e as notas de lançamento caso encontre o erro relatado.

Por fim, ocultar não é controle de acesso. Um botão de Imprimir ou Baixar oculto pode deixar APIs equivalentes ou outros caminhos disponíveis. Se o objetivo é proibir essas operações, use a documentação WOPI DisablePrintou DisableExportflags e aplique as permissões de armazenamento adequadamente, em vez de depender de `wp_config.php` Hide_Buttonou ` wp_config.php` Hide_Command.

Como posso verificar se a personalização funcionou?

Abra um novo documento no layout desejado. Confirme se a Helpguia está ausente no modo com guias e se o comando Tema não está mais disponível onde antes era visível. Em seguida, edite e salve um documento de teste para confirmar se a edição normal ainda funciona. Repita a verificação com outro tipo de documento e após recarregar a página, pois o host precisa reaplicar os comandos de ocultação específicos da sessão.

Interface do Collabora CODE com abas: Arquivo, Início, Inserir, Layout e Exibir. A Ajuda foi removida, mas o documento do Writer permanece editável.
Após a aba Ajuda ser ocultada, as outras abas de edição e a tela do documento permanecem disponíveis para uma verificação funcional.

Deixar um comentário

Personalize as barras de ferramentas do Collabora CODE sem editar o código-fonte.

Personalize as barras de ferramentas do Collabora CODE sem editar o código-fonte.

Simplifique o Collabora CODE com o modo Compacto ou com Abas e os controles WOPI PostMessage para ocultar botões, comandos e abas selecionados com segurança.

Execute o Collabora CODE Behind Nginx com terminação TLS.

Execute o Collabora CODE Behind Nginx com terminação TLS.

Configure o Nginx para gerenciar o HTTPS em um contêiner do Collabora CODE, encaminhe corretamente os WebSockets de edição e verifique o endpoint público sem expor a porta 9980.

Manter o texto visível quando o teclado do Collabora Mobile for aberto

Manter o texto visível quando o teclado do Collabora Mobile for aberto

Solucione problemas com o teclado do navegador móvel que cobre o texto no Collabora Online, com soluções alternativas rápidas e verificações separadas para navegadores, WebViews incorporados e páginas de hospedagem.

Impeça impressões e downloads indesejados no ONLYOFFICE.

Impeça impressões e downloads indesejados no ONLYOFFICE.

Defina limites de impressão e download para links do ONLYOFFICE, membros da sala ou sessões da API do Docs e, em seguida, verifique as restrições na conta do destinatário.

Agende backups confiáveis ​​para o espaço de trabalho ONLYOFFICE.

Agende backups confiáveis ​​para o espaço de trabalho ONLYOFFICE.

Defina um destino de backup, agendamento, cobertura de e-mail e limite de retenção no ONLYOFFICE Workspace e, em seguida, verifique se o arquivo está pronto para ser restaurado.

Implante o ONLYOFFICE Docs Enterprise com seu arquivo Compose oficial.

Implante o ONLYOFFICE Docs Enterprise com seu arquivo Compose oficial.

Inicie o ambiente Docker Compose Enterprise, persista a licença e os dados, configure o JWT com segurança e confirme se os editores estão prontos para integração.

Limpe o texto da planilha com uma macro reutilizável do ONLYOFFICE.

Limpe o texto da planilha com uma macro reutilizável do ONLYOFFICE.

Utilize uma macro JavaScript do ONLYOFFICE para remover caracteres não imprimíveis e eliminar espaços extras de um intervalo definido em uma planilha, com um fluxo de trabalho de revisão seguro.

Alterar o local de armazenamento padrão do espaço de trabalho ONLYOFFICE

Alterar o local de armazenamento padrão do espaço de trabalho ONLYOFFICE

Mova os dados do portal do Disco Padrão para um provedor de armazenamento em nuvem compatível ou realoque os dados do Docker com segurança, alterando o mapeamento de volume do host.

Remova completamente o servidor de documentos ONLYOFFICE do Linux.

Remova completamente o servidor de documentos ONLYOFFICE do Linux.

Identifique se o Servidor de Documentos utiliza um pacote Linux ou Docker, remova apenas os componentes necessários e verifique os dados restantes sem excluir acidentalmente os serviços compartilhados.

Elimine o atraso na coedição do ONLYOFFICE encontrando o gargalo.

Elimine o atraso na coedição do ONLYOFFICE encontrando o gargalo.

Identifique a causa da lentidão na edição colaborativa devido à pressão sobre os recursos do Docker, conexões proxy ou carga de documentos e, em seguida, escolha a solução que corresponda às suas medições.