Personalizați barele de instrumente Collabora CODE fără a edita sursa

Pentru a simplifica editorul Collabora Online Development Edition (CODE), alegeți Compact sau Tabbed pentru aspectul general, apoi utilizați integrarea PostMessage a gazdei WOPI pentru a ascunde comenzi individuale, butoane sau filele Notebookbar. Restrângerea unei bare de instrumente este o modificare convenabilă a vizualizării; ascunderea unui control prin intermediul gazdei este mai potrivită atunci când doriți o interfață consistentă pentru fiecare sesiune de editare.

Ce interfață CODE ar trebui să personalizezi?

CODE oferă un aspect compact cu meniuri și bare de instrumente tradiționale și un aspect cu file și o bară de notebook-uri. Începeți prin a identifica pe care o văd utilizatorii dvs.: un ID de buton în bara de instrumente și un ID de filă în bara de notebook-uri nu sunt interschimbabile. Ghidul de asistență Collabora menționează că denumirile mai vechi classicau notebookbarfost depreciate în favoarea compactși tabbedîncepând cu seria 21.11. Consultați ghidul de configurare a interfeței Collabora .

Interfață cu file Collabora CODE, cu filele Fișier, Acasă, Inserare, Aspect, Vizualizare și Ajutor deasupra unui document Writer.
Aspectul cu file grupează instrumentele de editare sub file denumite; fila Ajutor este o posibilă țintă pentru Hide_NotebookTab.
Interfață compactă Collabora CODE care prezintă meniurile Fișier, Editare, Vizualizare, Inserare, Formatare, Instrumente și Ajutor deasupra unei bare de instrumente înguste.
Aspectul compact folosește un rând de meniu separat și o bandă de butoane mai mică, astfel încât controalele de meniu și butoane necesită identificatori diferiți.

Ar trebui să modificați o sesiune implicită a serverului sau o sesiune de utilizator?

Schimbați valoarea implicită a serverului numai atunci când majoritatea utilizatorilor ar trebui să înceapă cu aceeași structură. În instalările autogestionate, user_interface.modesetarea din coolwsd.xmlacceptă default, compact, sau tabbed. Faceți o copie de rezervă a configurației, apoi modificați modevaloarea existentă în loc să adăugați un alt element XML:

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

Acest fișier XML prescurtat demonstrează setarea, nu înlocuiește întreaga secțiune de configurare. Aplicați modificarea prin procesul normal de configurare și repornire a serviciului al implementării, apoi redeschideți un document. Implementările de containere pot transmite --o:user_interface.mode=tabbedîn schimb suprascrierile de pornire CODE existente. O aplicație de încorporare poate influența, de asemenea, modul de pornire prin ui_defaultsvaloarea sa WOPI. Preferința gazdei poate conta atunci când serverul utilizează default, așa că nu presupuneți că o modificare a serverului va suprascrie o alegere specifică integrării.

Poți ascunde o întreagă bară de instrumente fără a edita codul sursă?

Pentru mai mult spațiu în timpul citirii, un clic pe fila selectată în prezent poate restrânge bara Notebookbar; un clic din nou o va extinde. Collabora descrie acest comportament în introducerea oficială a Notebookbar . API-ul PostMessage documentează, de asemenea Collapse_Notebookbar, , care ascunde butoanele Notebookbar sau banda de butoane Compact. Este o stare de afișare reversibilă, nu o politică permanentă de administrator.

Pentru un control mai precis, alegeți acțiunea PostMessage care corespunde elementului. Următoarele mapări sunt listate în manualul SDK-ului Collabora Online :

Ce să ascunziAcțiune PostMessageFormat ID
Un buton din bara de instrumenteHide_ButtonID buton
O comandă în meniuri și bare de instrumenteHide_CommandComandă UNO, cum ar fi.uno:ThemeDialog
O filă în aspectul cu fileHide_NotebookTabID-ul filei, cum ar fiHelp
O intrare compactă în meniuHide_Menu_ItemID element de meniu

Acțiunea specifică filei este documentată începând cu versiunea 24.04.11.1 . SDK-ul menționează, de asemenea, o acoperire extinsă a meniului contextual pentru Hide_Commandversiunea 24.04.11.2 . Verificați versiunea CODE implementată înainte de a vă baza pe oricare dintre comportamente.

Cum trimiți comenzile hide de la gazda WOPI?

Aceste acțiuni sunt trimise de aplicația care încorporează CODE într-un iframe — nu sunt tastate într-un dialog de setări CODE. Aveți nevoie de control asupra integrării gazdă respective, de un CheckFileInforăspuns WOPI funcțional și de o PostMessageOriginvaloare care se potrivește cu originea aplicației web gazdă. Dacă utilizați o integrare Nextcloud sau ownCloud în pachet, este posibil ca aceasta să nu expună hook-uri PostMessage personalizate arbitrare; în acest caz, faceți modificarea în integrarea însăși sau utilizați setările acceptate.

1. Așteptați ca CODE-ul să se termine de încărcat

Înregistrați un ascultător de mesaje în pagina gazdă. Verificați atât fereastra expeditorului, cât și originea. Când CODE raportează App_LoadingStatuscu Status: Document_Loaded, trimiteți Host_PostmessageReadyînainte de mesajele de personalizare. Fără această strângere de mână, CODE poate ignora comenzile gazdă - o eroare explicată în problema Collabora #13224 .

2. Ascundeți o filă și o comandă de formatare

Următorul cod JavaScript pe partea de gazdă presupune că pagina dvs. are deja un iframe cu ID-ul collabora-frame. Setați editorOriginla originea HTTPS exactă care deservește editorul dvs. de CODE, nu serverul de stocare WOPI. Înregistrați listener-ul înainte de inițializarea documentului în aplicația dvs. 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' });
});
Panoul Surse din instrumentele pentru dezvoltatori de browser care afișează un ascultător de mesaje pe partea gazdă și un apel Hide_NotebookTab care vizează Ajutorul.
Panoul sursă al aplicației gazdă este locul unde se poate inspecta conexiunile postMessage. Folosiți exemplul de cod complet din articol, nu textul prescurtat afișat în acest panou.

Iată Helpținta filei Notebookbar, în timp ce .uno:ThemeDialogidentifică o comandă LibreOffice UNO. Dezvoltatorii Collabora descriu în mod specific acest ultim ID în ghidul lor despre ascunderea elementelor UNO . Pentru a ascunde un anumit buton din bara de instrumente Compact, înlocuiți acțiunea cu Hide_Buttonși furnizați ID-ul butonului verificat. Nu ghiciți ID-ul din legenda vizibilă; consultați sursa de COD instalată sau ghidul privind ID-ul barei de instrumente din SDK.

Ce se întâmplă dacă fila sau bara de instrumente nu dispare?

Verificați consola browserului și activitatea rețelei înainte de a modifica fișierele CODE. Cele mai frecvente cauze sunt absența unei Host_PostmessageReadyhandshake-uri, o nepotrivire PostMessageOrigin, trimiterea de mesaje înainte de Document_Loadedsau direcționarea unui element de meniu Compact în timp ce editorul este în modul Tabbed. Redeschiderea fișierului începe o sesiune nouă, așadar aplicați de fiecare dată ascunderea mesajelor.

Există și defecte specifice versiunii. De exemplu, problema Collabora #15910 descrie o Hide_NotebookTaberoare JavaScript în CODE 25.04.9.4, raportată în iunie 2026; problema este marcată ca închisă, dar acest lucru nu stabilește ce versiuni implementate conțin o remediere. Verificați versiunea exactă și notele de lansare aferente dacă vedeți eroarea raportată.

În cele din urmă, ascunderea nu este control al accesului. Un buton Imprimare sau Descărcare ascuns poate lăsa disponibile API-uri echivalente sau alte căi. Dacă scopul este de a interzice aceste operațiuni, utilizați WOPI-ul DisablePrintsau DisableExportsteagurile documentate și impuneți permisiunile de stocare după cum este necesar, în loc să vă bazați pe Hide_Buttonsau Hide_Command.

Cum poți verifica dacă personalizarea a funcționat?

Deschideți un document nou în aspectul dorit. Confirmați că Helpfila lipsește în modul Tab și că comanda Temă nu mai este disponibilă acolo unde era vizibilă anterior. Apoi editați și salvați un document de test pentru a confirma că procesul de creare normală funcționează în continuare. Repetați verificarea cu un alt tip de document și după reîncărcarea paginii, deoarece gazda trebuie să reaplice comenzile de ascundere specifice sesiunii.

Interfață cu file Collabora CODE, cu filele Fișier, Acasă, Inserare, Aspect și Vizualizare, cu Ajutor eliminat și un document Writer care rămâne editabil.
După ce fila Ajutor este ascunsă, celelalte file de editare și spațiul de lucru pentru documente rămân disponibile pentru o verificare funcțională.

Lasă un comentariu

Personalizați barele de instrumente Collabora CODE fără a edita sursa

Personalizați barele de instrumente Collabora CODE fără a edita sursa

Simplificați CODE-ul Collabora cu modul Compact sau cu Tab-uri și controalele WOPI PostMessage pentru a ascunde în siguranță butoanele, comenzile și tab-urile selectate.

Rulează CODUL Collabora în spatele Nginx cu terminare TLS

Rulează CODUL Collabora în spatele Nginx cu terminare TLS

Puneți Nginx la conducerea HTTPS pentru un container de CODE Collabora, editați corect WebSocket-urile și verificați endpoint-ul public fără a expune portul 9980.

Mențineți textul vizibil când se deschide tastatura mobilă Collabora

Mențineți textul vizibil când se deschide tastatura mobilă Collabora

Depanați o tastatură de browser mobil care acoperă text în Collabora Online, cu soluții rapide și verificări separate pentru browsere, WebView-uri încorporate și pagini gazdă.

Opriți imprimările și descărcările nedorite în ONLYOFFICE

Opriți imprimările și descărcările nedorite în ONLYOFFICE

Setați limite de imprimare și descărcare pentru linkurile ONLYOFFICE, membrii sălii sau sesiunile API Docs, apoi verificați restricțiile dintr-un cont de destinatar.

Programați copii de rezervă fiabile pentru spațiul de lucru ONLYOFFICE

Programați copii de rezervă fiabile pentru spațiul de lucru ONLYOFFICE

Setați o destinație de backup, un program, o acoperire Mail și o limită de retenție în ONLYOFFICE Workspace, apoi verificați dacă arhiva este gata de restaurare.

Implementați ONLYOFFICE Docs Enterprise cu fișierul său oficial Compose

Implementați ONLYOFFICE Docs Enterprise cu fișierul său oficial Compose

Porniți stiva Enterprise Docker Compose, păstrați licența și datele acesteia, configurați JWT în siguranță și confirmați că editorii sunt gata de integrare.

Text curat din foaia de calcul cu o macrocomandă ONLYOFFICE reutilizabilă

Text curat din foaia de calcul cu o macrocomandă ONLYOFFICE reutilizabilă

Folosește o macrocomandă JavaScript ONLYOFFICE pentru a elimina caracterele neimprimabile și a decupa spațiile suplimentare dintr-un interval definit de foi de calcul, cu un flux de lucru de revizuire sigur.

Schimbați locația de stocare implicită a spațiului de lucru ONLYOFFICE

Schimbați locația de stocare implicită a spațiului de lucru ONLYOFFICE

Mutați datele portalului din Disk Default către un furnizor de stocare în cloud acceptat sau relocați datele Docker în siguranță, modificând maparea volumului gazdă.

Eliminați complet serverul de documente ONLYOFFICE din Linux

Eliminați complet serverul de documente ONLYOFFICE din Linux

Identificați dacă Document Server utilizează un pachet Linux sau Docker, eliminați doar componentele acestuia și verificați datele rămase fără a șterge serviciile partajate din greșeală.

Opriți întârzierea editării în ONLYOFFICE prin identificarea blocajelor

Opriți întârzierea editării în ONLYOFFICE prin identificarea blocajelor

Asociați editarea colaborativă lentă cu presiunea resurselor Docker, conexiunile proxy sau încărcarea documentelor, apoi alegeți soluția care corespunde măsurătorilor dvs.