Collabora CODEのツールバーをソースコードを編集せずにカスタマイズする方法

Collabora Online Development Edition (CODE) エディタを簡素化するには、全体のレイアウトを「コンパクト」または「タブ付き」に設定し、WOPI ホストの PostMessage 統合機能を使用して個々のコマンド、ボタン、または Notebookbar タブを非表示にします。ツールバーを折りたたむのは便利な表示変更ですが、各編集セッションで一貫したインターフェースが必要な場合は、ホスト経由でコントロールを非表示にする方が適切です。

どのCODEインターフェースをカスタマイズすべきですか?

CODE には、従来のメニューとツールバーを備えたコンパクト レイアウトと、ノートブック バーを備えたタブ レイアウトがあります。まず、ユーザーがどちらのレイアウトを見ているかを確認してください。ツールバー ボタン ID とノートブック バー タブ ID は互換性がありません。Collabora のサポート ガイダンスによると、古い名前classicと は、21.11 シリーズ以降、 と に置き換えられ、notebookbar非推奨になりました。Collaboraインターフェイス構成ガイダンスを参照してください。compacttabbed

Collabora CODEのタブ付きインターフェース。Writerドキュメントの上部に、ファイル、ホーム、挿入、レイアウト、表示、ヘルプの各タブが表示されます。
タブ付きレイアウトでは、編集ツールが名前付きタブの下にグループ化されます。ヘルプタブは、Hide_NotebookTab の対象となる可能性があります。
Collabora CODE Compactのインターフェースでは、狭いツールバーの上にファイル、編集、表示、挿入、書式設定、ツール、ヘルプの各メニューが表示されます。
コンパクトレイアウトでは、独立したメニュー行と小型のボタン列を使用するため、メニューとボタンのコントロールには異なる識別子が必要です。

サーバーのデフォルト設定を変更すべきでしょうか、それともユーザーセッションを変更すべきでしょうか?

サーバーのデフォルト設定を変更するのは、ほとんどのユーザーが同じレイアウトから始める必要がある場合に限ります。セルフマネージドインストールでは、user_interface.mode設定で、、 または がcoolwsd.xml受け入れられます。設定をバックアップしてから、別の XML 要素を追加するのではなく、既存の値を変更してください。defaultcompacttabbedmode

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

この簡略化された XML は設定を示すものであり、構成セクション全体を置き換えるものではありません。変更は、デプロイメントの通常の構成とサービス再起動プロセスを通じて適用し、その後ドキュメントを再度開いてください。コンテナデプロイメントでは、--o:user_interface.mode=tabbed既存の CODE 起動オーバーライドを渡すこともできます。埋め込みアプリケーションは、WOPI 値を通じて起動モードに影響を与えることもできますui_defaults。サーバーが を使用する場合、ホストの優先順位が重要になる可能性があるdefaultため、サーバーの編集によって統合固有の選択が上書きされると想定しないでください。

コードソースを編集せずにツールバー全体を非表示にすることはできますか?

読書スペースを広げるために、現在選択されているタブをクリックするとノートブックバーが折りたたまれ、もう一度クリックすると展開されます。Collaboraはこの動作について公式のノートブックバー紹介で説明しています。PostMessage APIにもCollapse_Notebookbar、ノートブックバーのボタンまたはコンパクトボタンストリップを非表示にする機能が記載されています。これは可逆的な表示状態であり、永続的な管理者ポリシーではありません。

より詳細な制御を行うには、要素に一致する PostMessage アクションを選択してください。Collabora Online SDK マニュアルには、以下のマッピングが記載されています。

何を非表示にするかPostMessageアクションID形式
ツールバーボタンが1つありますHide_ButtonボタンID
メニューとツールバーを横断するコマンドHide_CommandUNOコマンド、例えば.uno:ThemeDialog
タブ付きレイアウトのタブが1つHide_NotebookTabタブID、例:Help
コンパクトメニュー項目Hide_Menu_Itemメニュー項目ID

タブ固有のアクションについては、バージョン24.04.11.1以降でドキュメント化されています。また、SDKでは、バージョン24.04.11.2Hide_Commandでコンテキストメニューの対応範囲が拡大されたことも記載されています。いずれの動作も利用する前に、デプロイ済みのCODEビルドを確認してください。

WOPIホストから非表示コマンドを送信するにはどうすればよいですか?

これらのアクションは、CODE を iframe に埋め込むアプリケーションによって送信されるものであり、CODE の設定ダイアログに直接入力するものではありません。ホスト統合の制御、正常に機能する WOPICheckFileInfoレスポンス、およびPostMessageOriginホスト Web アプリケーションのオリジンと一致する値が必要です。パッケージ化された Nextcloud または ownCloud 統合を使用している場合、任意のカスタム PostMessage フックが公開されない可能性があります。その場合は、統合自体で変更を行うか、サポートされている設定を使用してください。

1. CODEの読み込みが完了するまでお待ちください。

ホストページでメッセージリスナーを登録します。送信ウィンドウと送信元の両方を確認します。CODE がApp_LoadingStatusを報告した場合はStatus: Document_Loaded、Host_PostmessageReadyカスタマイズメッセージの前に を送信します。このハンドシェイクがないと、CODE はホストコマンドを無視する可能性があります。この問題については、 Collabora の問題 #13224で説明されています。

2. タブと書式設定コマンドを非表示にする

以下のホスト側JavaScriptは、ページにIDを持つiframeが既に存在することを前提としていますcollabora-frame。CODEeditorOriginエディタにサービスを提供している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' });
});
ブラウザ開発者ツールのソースパネルに、ホスト側のメッセージリスナーと、Help を対象とした Hide_NotebookTab 呼び出しが表示されます。
ホストアプリケーションのソースパネルで、postMessage の配線を確認できます。このパネルに表示されている省略形ではなく、記事に記載されている完全なコードサンプルを使用してください。

ここにHelpNotebookbarタブのターゲットを示します。一方、は.uno:ThemeDialogLibreOffice UNOコマンドを識別します。Collaboraの開発者は、 UNO要素を非表示にするためのガイダンスの中で、後者のIDについて具体的に説明しています。代わりに特定のCompactツールバーボタンを非表示にするには、アクションをに置き換えHide_Button、検証済みのボタンIDを指定します。表示されているキャプションからIDを推測しないでください。インストールされているCODEソースまたはSDKのツールバーIDガイダンスを確認してください。

タブやツールバーが消えない場合はどうすればいいですか?

CODE ファイルを変更する前に、ブラウザのコンソールとネットワークアクティビティを確認してください。最も一般的な原因は、Host_PostmessageReadyハンドシェイクの欠落、不一致PostMessageOrigin、メッセージの送信Document_Loaded、またはエディタがタブモードのときにコンパクトメニュー項目をターゲットにしていることです。ファイルを再度開くと新しいセッションが開始されるため、毎回メッセージを非表示にしてください。

バージョン固有の不具合も存在します。例えば、Collaboraの課題#15910では、CODE 25.04.9.4で発生するJavaScriptエラーについて説明されておりHide_NotebookTab、これは2026年6月に報告されました。この課題はクローズ済みとされていますが、それだけではどのビルドに修正が含まれているかは分かりません。報告されたエラーが発生した場合は、ご使​​用のバージョンとリリースノートをご確認ください。

最後に、非表示にすることはアクセス制御ではありません。非表示の印刷ボタンやダウンロードボタンは、同等のAPIやその他のパスへのアクセスを妨げない可能性があります。これらの操作を禁止することが目的であれば、またはに依存するのではなく、DisablePrintドキュメントに記載されているWOPIDisableExportフラグを使用してストレージ権限を適切に適用してください。Hide_ButtonHide_Command

カスタマイズが正しく機能したことをどのように確認できますか?

目的のレイアウトで新規ドキュメントを開きます。Helpタブモードでタブが表示されないこと、および以前表示されていた場所にテーマコマンドが表示されていないことを確認します。次に、テストドキュメントを編集して保存し、通常のオーサリングが正常に動作することを確認します。ホストがセッション固有の非表示コマンドを再適用する必要があるため、別のドキュメントタイプでページを再読み込みした後、再度確認してください。

Collabora CODEのタブ付きインターフェース。ファイル、ホーム、挿入、レイアウト、表示のタブがあり、ヘルプは削除されていますが、Writerドキュメントは編集可能な状態のままです。
ヘルプタブを非表示にした後も、他の​​編集タブとドキュメントキャンバスは機能確認のために利用可能です。

コメントを残す

Collabora CODEのツールバーをソースコードを編集せずにカスタマイズする方法

Collabora CODEのツールバーをソースコードを編集せずにカスタマイズする方法

Collabora CODEをコンパクトモードまたはタブモードとWOPI PostMessageコントロールで簡素化し、選択したボタン、コマンド、タブを安全に非表示にできます。

Collabora CODEをTLS終端処理付きでNginxの背後で実行する

Collabora CODEをTLS終端処理付きでNginxの背後で実行する

Collabora CODEコンテナのHTTPSをNginxに任せ、WebSocketのフォワード編集を正しく行い、ポート9980を公開せずにパブリックエンドポイントを検証します。

Collaboraモバイルキーボードを開いたときにテキストを表示したままにする

Collaboraモバイルキーボードを開いたときにテキストを表示したままにする

Collabora Onlineでモバイルブラウザのキーボードがテキストを覆い隠してしまう問題のトラブルシューティング。ブラウザ、埋め込みWebView、ホストページそれぞれについて、迅速な回避策と個別のチェック方法を紹介します。

ONLYOFFICEで不要な印刷とダウンロードを停止する

ONLYOFFICEで不要な印刷とダウンロードを停止する

ONLYOFFICEリンク、会議室メンバー、またはDocs APIセッションに対して印刷とダウンロードの制限を設定し、受信者アカウントから制限内容を確認します。

ONLYOFFICE Workspaceの信頼性の高いバックアップをスケジュールする

ONLYOFFICE Workspaceの信頼性の高いバックアップをスケジュールする

ONLYOFFICE Workspaceでバックアップ先、スケジュール、メールのカバー範囲、および保持期間を設定し、アーカイブが復元できる状態になっていることを確認してください。

ONLYOFFICE Docs Enterpriseを公式のComposeファイルと共に展開する

ONLYOFFICE Docs Enterpriseを公式のComposeファイルと共に展開する

Enterprise Docker Composeスタックを起動し、ライセンスとデータを永続化し、JWTを安全に設定し、エディターが統合準備完了であることを確認します。

再利用可能なONLYOFFICEマクロでスプレッドシートのテキストをクリーンアップする

再利用可能なONLYOFFICEマクロでスプレッドシートのテキストをクリーンアップする

ONLYOFFICEのJavaScriptマクロを使用して、指定したスプレッドシート範囲から印刷されない文字を削除し、余分なスペースをトリミングします。安全なレビューワークフローも利用可能です。

ONLYOFFICEワークスペースのデフォルトの保存場所を変更する

ONLYOFFICEワークスペースのデフォルトの保存場所を変更する

ポータルデータをディスクデフォルトからサポートされているクラウドストレージプロバイダーに移動するか、ホストボリュームマッピングを変更してDockerデータを安全に移動します。

LinuxからONLYOFFICE Document Serverを完全に削除する

LinuxからONLYOFFICE Document Serverを完全に削除する

ドキュメントサーバーがLinuxパッケージを使用しているかDockerを使用しているかを特定し、そのコンポーネントのみを削除し、共有サービスを誤って削除することなく残りのデータを確認します。

ONLYOFFICEの共同編集の遅延を解消するために、ボトルネックを見つけましょう

ONLYOFFICEの共同編集の遅延を解消するために、ボトルネックを見つけましょう

共同編集の速度低下の原因を、Dockerリソースの負荷、プロキシ接続、またはドキュメントの読み込み状況から特定し、測定結果に合致する解決策を選択してください。