Personnaliser les barres d'outils Collabora CODE sans modifier le code source

Pour simplifier l'éditeur Collabora Online Development Edition (CODE), choisissez l'affichage Compact ou par onglets , puis utilisez l'intégration PostMessage de l'hôte WOPI pour masquer les commandes, boutons ou onglets de la barre de notes. Réduire une barre d'outils est une modification pratique de l'affichage ; masquer un contrôle via l'hôte est plus approprié si vous souhaitez une interface cohérente pour chaque session d'édition.

Quelle interface CODE devez-vous personnaliser ?

CODE propose une disposition compacte avec menus et barres d'outils classiques, ainsi qu'une disposition à onglets avec une barre de bloc-notes. Commencez par identifier celle que vos utilisateurs voient : l'identifiant d'un bouton de barre d'outils et l'identifiant d'un onglet de la barre de bloc-notes ne sont pas interchangeables. La documentation de Collabora indique que les anciens noms classicont notebookbarété remplacés par les nouveaux compactà tabbedpartir de la version 21.11. Consultez le guide de configuration de l'interface Collabora .

Interface à onglets Collabora CODE avec les onglets Fichier, Accueil, Insertion, Mise en page, Affichage et Aide au-dessus d'un document Writer.
La disposition par onglets regroupe les outils d'édition sous des onglets nommés ; l'onglet Aide est une cible possible pour Hide_NotebookTab.
Interface compacte de Collabora CODE affichant les menus Fichier, Édition, Affichage, Insertion, Format, Outils et Aide au-dessus d'une barre d'outils étroite.
La disposition compacte utilise une rangée de menus séparée et une bande de boutons plus petite, les commandes de menu et de boutons nécessitent donc des identifiants différents.

Faut-il modifier un paramètre par défaut du serveur ou une session utilisateur ?

Modifiez la configuration par défaut du serveur uniquement si la plupart des utilisateurs doivent commencer avec la même disposition. Sur les installations autogérées, le user_interface.modeparamètre coolwsd.xmlaccepte `<configuration>` default, compact`<configuration>` ou `<configuration> tabbed`. Sauvegardez la configuration, puis modifiez la modevaleur existante plutôt que d'ajouter un autre élément XML :

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

Ce code XML abrégé illustre la configuration, mais ne remplace pas la section de configuration complète. Appliquez la modification via la procédure habituelle de configuration et de redémarrage du service de votre déploiement, puis rouvrez le document. Les déploiements de conteneurs peuvent utiliser --o:user_interface.mode=tabbedleurs paramètres de démarrage CODE existants. Une application intégrée peut également influencer le mode de démarrage via sa valeur WOPI ui_defaults. La préférence de l'hôte peut avoir une incidence lorsque le serveur utilise defaultun mode de démarrage spécifique ; par conséquent, ne présumez pas qu'une modification côté serveur remplacera un choix spécifique à l'intégration.

Est-il possible de masquer une barre d'outils entière sans modifier le code source ?

Pour plus d'espace lors de la lecture, un clic sur l'onglet sélectionné permet de réduire la barre de notes ; un second clic la développe. Collabora décrit ce comportement dans son introduction officielle à la barre de notes . L'API PostMessage documente également Collapse_Notebookbarla possibilité de masquer les boutons de la barre de notes ou la barre de boutons compacte. Il s'agit d'un état d'affichage réversible, et non d'une stratégie d'administration permanente.

Pour un contrôle plus précis, choisissez l'action PostMessage correspondant à l'élément. Les correspondances suivantes sont répertoriées dans le manuel du SDK Collabora Online :

Ce qu'il faut masquerAction PostMessageFormat d'ID
Un bouton de barre d'outilsHide_ButtonID du bouton
Une commande accessible via les menus et les barres d'outilsHide_Commandcommande UNO, telle que.uno:ThemeDialog
Un onglet dans la mise en page à ongletsHide_NotebookTabID de l'onglet, tel queHelp
Entrée de menu compacteHide_Menu_ItemID de l'élément de menu

L'action spécifique à l'onglet est documentée à partir de la version 24.04.11.1 . Le SDK mentionne également une couverture étendue du menu contextuel Hide_Commanddans la version 24.04.11.2 . Vérifiez votre version de code déployée avant de vous fier à l'un ou l'autre comportement.

Comment envoyer les commandes de masquage depuis l'hôte WOPI ?

Ces actions sont envoyées par l'application intégrant CODE dans une iframe, et non saisies dans une boîte de dialogue de configuration de CODE. Vous devez contrôler cette intégration hôte, disposer d'une CheckFileInforéponse WOPI fonctionnelle et d'une PostMessageOriginvaleur correspondant à l'origine de votre application web hôte. Si vous utilisez une intégration Nextcloud ou ownCloud préconfigurée, celle-ci peut ne pas exposer de hooks PostMessage personnalisés ; dans ce cas, effectuez la modification directement dans l'intégration ou utilisez ses paramètres pris en charge.

1. Attendez que le code ait fini de se charger.

Enregistrez un écouteur de messages sur la page hôte. Vérifiez la fenêtre de l'expéditeur et l'origine. Lorsque CODE envoie un rapport App_LoadingStatus, Status: Document_Loadedenvoyez- Host_PostmessageReadyle avant les messages de personnalisation. Sans cette connexion, CODE peut ignorer les commandes de l'hôte ; ce problème est expliqué dans le ticket Collabora n° 13224 .

2. Masquer un onglet et une commande de mise en forme

Le code JavaScript côté hôte suivant suppose que votre page contient déjà une iframe avec l'ID collabora-frame. Indiquez editorOriginl'origine HTTPS exacte de votre éditeur de code, et non le serveur de stockage WOPI. Enregistrez l'écouteur avant l'initialisation du document dans votre application.

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' });
});
Panneau Sources des outils de développement du navigateur affichant un écouteur de messages côté hôte et un appel Hide_NotebookTab ciblant l'aide.
Le panneau de code source de l'application hôte permet d'examiner le câblage de la fonction postMessage. Utilisez l'exemple de code complet présenté dans l'article, et non le texte abrégé affiché dans ce panneau.

Voici Helpla cible de l'onglet Notebookbar, tandis que `<ID>` .uno:ThemeDialogidentifie une commande LibreOffice UNO. Les développeurs de Collabora décrivent précisément cet ID dans leurs instructions concernant le masquage des éléments UNO . Pour masquer un bouton spécifique de la barre d'outils Compact, remplacez l'action par `<ID>` Hide_Buttonet indiquez l'ID du bouton vérifié. Ne devinez pas l'ID à partir de la légende visible ; consultez votre code source installé ou les instructions du SDK relatives aux ID de barres d'outils.

Que se passe-t-il si l'onglet ou la barre d'outils ne disparaît pas ?

Vérifiez la console du navigateur et l'activité réseau avant de modifier les fichiers de code. Les causes les plus fréquentes sont l'absence Host_PostmessageReadyde connexion réseau, une incompatibilité de connexion PostMessageOrigin, l'envoi de messages avant la Document_Loadedfermeture du navigateur ou le ciblage d'un élément du menu Compact lorsque l'éditeur est en mode onglets. La réouverture du fichier ouvre une nouvelle session ; pensez donc à masquer les messages à chaque fois.

Des défauts spécifiques à certaines versions existent également. Par exemple, le problème Collabora n° 15910 décrit une Hide_NotebookTaberreur JavaScript sur CODE 25.04.9.4, signalée en juin 2026 ; le problème est marqué comme résolu, mais cela ne permet pas à lui seul de déterminer quelles versions déployées contiennent un correctif. Vérifiez votre version exacte et ses notes de version si vous rencontrez l’erreur signalée.

Enfin, masquer un bouton n'est pas un contrôle d'accès. Un bouton Imprimer ou Télécharger masqué peut laisser des API équivalentes ou d'autres chemins d'accès accessibles. Si l'objectif est d'interdire ces opérations, utilisez les indicateurs WOPI documentés DisablePrintet DisableExportappliquez vos autorisations de stockage de manière appropriée, plutôt que de vous fier à des méthodes comme `WOP1` Hide_Buttonou ` WOP2` Hide_Command.

Comment vérifier que la personnalisation a fonctionné ?

Ouvrez un nouveau document avec la mise en page souhaitée. Vérifiez que l' Helponglet est absent en mode Onglets et que la commande Thème n'est plus disponible à l'endroit où elle s'affichait auparavant. Ensuite, modifiez et enregistrez un document de test pour vérifier que la saisie normale fonctionne toujours. Répétez la vérification avec un autre type de document et après avoir rechargé la page, car l'hôte doit réappliquer les commandes de masquage spécifiques à la session.

Interface à onglets Collabora CODE avec les onglets Fichier, Accueil, Insertion, Mise en page et Affichage, l'aide étant supprimée et le document Writer restant modifiable.
Une fois l'onglet Aide masqué, les autres onglets d'édition et la zone de document restent disponibles pour une vérification fonctionnelle.

Laisser un commentaire

Personnaliser les barres d'outils Collabora CODE sans modifier le code source

Personnaliser les barres d'outils Collabora CODE sans modifier le code source

Simplifiez Collabora CODE grâce au mode Compact ou à onglets et aux contrôles WOPI PostMessage pour masquer en toute sécurité les boutons, commandes et onglets sélectionnés.

Exécuter Collabora CODE Behind Nginx avec terminaison TLS

Exécuter Collabora CODE Behind Nginx avec terminaison TLS

Confiez la gestion du HTTPS à Nginx pour un conteneur Collabora CODE, configurez correctement l'édition des WebSockets et vérifiez le point de terminaison public sans exposer le port 9980.

Garder le texte visible à l'ouverture du clavier mobile Collabora

Garder le texte visible à l'ouverture du clavier mobile Collabora

Dépannage des problèmes de masquage du texte par le clavier d'un navigateur mobile dans Collabora Online, avec des solutions de contournement rapides et des vérifications distinctes pour les navigateurs, les WebViews intégrées et les pages hôtes.

Bloquez les impressions et les téléchargements indésirables dans ONLYOFFICE

Bloquez les impressions et les téléchargements indésirables dans ONLYOFFICE

Définissez des limites d'impression et de téléchargement pour les liens ONLYOFFICE, les membres d'une salle ou les sessions de l'API Docs, puis vérifiez les restrictions à partir d'un compte destinataire.

Planifiez des sauvegardes fiables pour votre espace de travail ONLYOFFICE.

Planifiez des sauvegardes fiables pour votre espace de travail ONLYOFFICE.

Définissez une destination de sauvegarde, une planification, une couverture de messagerie et une limite de conservation dans ONLYOFFICE Workspace, puis vérifiez que l'archive est prête à être restaurée.

Déployez ONLYOFFICE Docs Enterprise avec son fichier de composition officiel

Déployez ONLYOFFICE Docs Enterprise avec son fichier de composition officiel

Démarrez la pile Docker Compose d'entreprise, enregistrez sa licence et ses données, configurez JWT en toute sécurité et vérifiez que les éditeurs sont prêts à s'intégrer.

Nettoyez le texte de votre feuille de calcul avec une macro ONLYOFFICE réutilisable.

Nettoyez le texte de votre feuille de calcul avec une macro ONLYOFFICE réutilisable.

Utilisez une macro JavaScript ONLYOFFICE pour supprimer les caractères non imprimables et les espaces superflus d'une plage de feuille de calcul définie, avec un flux de travail de révision sécurisé.

Modifier l'emplacement de stockage par défaut de l'espace de travail ONLYOFFICE

Modifier l'emplacement de stockage par défaut de l'espace de travail ONLYOFFICE

Déplacez les données du portail depuis le disque par défaut vers un fournisseur de stockage cloud compatible, ou déplacez les données Docker en toute sécurité en modifiant leur mappage de volume hôte.

Supprimez complètement le serveur de documents ONLYOFFICE de Linux.

Supprimez complètement le serveur de documents ONLYOFFICE de Linux.

Identifiez si Document Server utilise un package Linux ou Docker, supprimez uniquement ses composants et vérifiez les données restantes sans supprimer par erreur les services partagés.

Réduisez les délais de coédition sur ONLYOFFICE en identifiant le goulot d'étranglement.

Réduisez les délais de coédition sur ONLYOFFICE en identifiant le goulot d'étranglement.

Identifiez les ralentissements de l'édition collaborative en fonction de la pression sur les ressources Docker, des connexions proxy ou de la charge des documents, puis choisissez la solution qui correspond à vos mesures.