Accueil
» Comment faire
»
Personnaliser les barres d'outils Collabora CODE sans modifier le code source
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 .
La disposition par onglets regroupe les outils d'édition sous des onglets nommés ; l'onglet Aide est une cible possible pour Hide_NotebookTab.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 :
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 masquer
Action PostMessage
Format d'ID
Un bouton de barre d'outils
Hide_Button
ID du bouton
Une commande accessible via les menus et les barres d'outils
Hide_Command
commande UNO, telle que.uno:ThemeDialog
Un onglet dans la mise en page à onglets
Hide_NotebookTab
ID de l'onglet, tel queHelp
Entrée de menu compacte
Hide_Menu_Item
ID 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.
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.
Une fois l'onglet Aide masqué, les autres onglets d'édition et la zone de document restent disponibles pour une vérification fonctionnelle.