CODEのユーザーインターフェースをカスタマイズして特定のツールバーを非表示にする方法

簡潔に言うと、 CODEでは、コンパクト表示またはタブ表示の設定でツールバー全体のスタイルを変更できます。ノートブックのタブやコマンドを非表示にするには、WOPIホストのPostMessage APIを使用する方法がサポートされています。ビューアの通常のメニューでは、個々のコマンドをすべてのユーザーに対して完全に削除することはできません。管理者はサーバーのデフォルトのインターフェースモードを設定できますが、CODEを組み込んだホストはセッションレベルの非表示または表示メッセージを送信できます。

アクセス権限に合った方法を選択してください。ドキュメントの表示領域を広げたい場合は、ツールバーを折りたたむか、コンパクト表示に切り替えてください。WOPI統合でヘルプタブや書式設定コマンドを省略する必要がある場合は、エディターの準備が完了した後に該当するPostMessageを送信してください。印刷、ダウンロード、編集などの操作を禁止したい場合は、関連するWOPI機能または権限も使用してください。ボタンを非表示にしても表示は変わりますが、認証は変わりません。

適切なカスタマイズを選択してください

あなたが変えたいことこの方法を使用してくださいそれが何に影響を与えるか
デフォルトではコンパクトメニューまたはタブ付きノートブックバーを使用するuser_interface.modeサーバー設定で設定しますそのCODEデプロイメントのデフォルトインターフェースモード
一時的に文書のためのスペースを広く確保するUI からノートブックバーを折りたたむか、送信しますCollapse_Notebookbarタブボタンを非表示にします。ユーザーは再び展開できます。
ノートブックバーのタブ(ヘルプなど)を非表示にする送信Hide_NotebookTabWOPI埋め込みエディタセッションのタブ1つ
エディターUI全体で1つのコマンドを非表示にする送信Hide_Commandそのコマンドのメニュー、ツールバー、およびコンテキストメニューのエントリ
特定のツールバーボタンのみを非表示にするHide_ButtonボタンIDとともに送信ツールバーボタンは1つ。IDはUIやリリースによって異なる場合があります。

関連するSDKマニュアルでは、Hide_NotebookTab24.04.11.1およびHide_Command24.04.11.2以降で利用可能とされています。CODEリリースパッケージとインテグレータービルドは異なる場合があるため、APIメッセージに依存する前に、実際に実行しているサーバーのバージョンを確認してください。

コンパクト表示とタブ表示のデフォルト設定を変更します。

コンパクト表示では、メニューと小型のツールバーが使用されます。タブ表示では、コントロールがノートブックバーのタブにグループ化されます。サーバー設定は でuser_interface.mode、サポートされている値は と ですcompact。やtabbedなどの古いラベルは、これらの名前に置き換えられたため、非推奨となっています。classicnotebookbar

ブラウザベースのドキュメントエディタは、サンプルページの上にコンパクトなメニュー行と細い書式設定ツールバーを表示します。
例として、コンパクト表示を示します。このエディタでは、メニュー行と、ドキュメント上部の狭い書式設定ツールバーが使用されます。

管理者が制御するデフォルト設定にするには、次のセクション<mode>内の既存のエントリを編集します。<user_interface>coolwsd.xml

<user_interface>
  <mode type="string" desc="Controls the user interface style. The 'default' means: Take the value from ui_defaults, or decide for one of compact or tabbed (default|compact|tabbed)" default="default">tabbed</mode>
</user_interface>

compactコンパクトメニューには、代わりにを使用してくださいtabbed。実際の構成ファイルでは、2つ目のモードエントリを追加するのではなく、既存のモードエントリを変更してください。正確な構成パスと再起動手順は、CODEがパッケージ、コンテナ、または他のプラットフォームのいずれでインストールされているかによって異なります。そのデプロイメントの構成方法に従い、必要に応じてサービスを再起動またはリロードし、新しいドキュメントセッションを開いてデフォルト設定を確認してください。

これはデフォルトのインターフェースモードを設定するものであり、特定のコマンドを非表示にするものではありません。サーバーの保存済みUI状態構成によっては、ユーザーまたはインテグレーターが保存したインターフェース設定が優先される場合があります。ブラウザが繰り返し別のビューで再起動する場合は、サーバー設定をさらに変更する前に、新しいセッションをテストし、インテグレーターのユーザー設定の動作を確認してください。

コマンドを削除せずにツールバーを折りたたむ

単にドキュメントのスペースを広げることが目的であれば、タブ付きノートブックバーを折りたたむだけで通常は十分です。SDKのCollapse_Notebookbarメッセージはノートブックバーのボタンを非表示にしますが、タブ名は表示されたままなので、ユーザーはコントロールを再び展開できます。同じメッセージは、コンパクト表示のボタンバーも非表示にします。これは元に戻せる表示変更であり、編集機能を無効にするものではありません。

文書エディタでは、グループ化された書式設定コントロールの上に、「ホーム」、「挿入」、「レイアウト」、「校閲」、「表示」、「ヘルプ」の各タブが配置されたタブ付きノートブックバーが表示されます。
ノートブックバーのタブとグループ化された書式設定コントロールが表示された、タブ付き表示の例。

サポートされているインターフェースでは、タブストリップを操作することでノートブックバーを折りたたんだり展開したりできます。クリックまたはダブルクリックの動作は、表示状態やリリース状態によって異なる場合があります。折りたたまれたバーを元に戻す必要がある場合は、タブ名を表示したまま、使用しているCODEビルドでその操作をテストしてください。

WOPI統合でタブまたはコマンドを1つ非表示にする

セッションごとの非表示には、iframe に CODE を埋め込み、メッセージを送信できるホスト アプリケーションが必要です。これは、に貼り付けることができる汎用的な設定ではありませんcoolwsd.xml。PostMessage API はMessageId、、タイムスタンプ、およびオプションのを含むメッセージを使用しますValues。WOPI ホストは、エディタ コマンドを送信する前に準備完了の交換を完了する必要があります。ホスト ページの WOPI を設定しPostMessageOrigin、ブラウザ メッセージ ターゲットとして正確な CODE iframe オリジンを使用します。ワイルドカード ターゲット オリジンは使用しないでください。

ホストが適切なApp_LoadingStatus準備完了イベントを受信して​​送信した後Host_PostmessageReady、非表示メッセージを送信できます。たとえば、次の呼び出しは、開いているエディタセッションのヘルプ タブと下線コマンドを非表示にします。

const frame = document.getElementById("collaboraFrame");
const collaboraOrigin = "https://office.example.com";

function sendToCollabora(MessageId, Values = {}) {
  frame.contentWindow.postMessage({
    MessageId,
    SendTime: Date.now(),
    Values
  }, collaboraOrigin);
}

// Call after the WOPI PostMessage readiness exchange.
sendToCollabora("Hide_NotebookTab", { id: "Help" });
sendToCollabora("Hide_Command", { id: ".uno:Underline" });
タブ付きエディターには、「ホーム」、「挿入」、「レイアウト」、「校閲」、「表示」が表示され、「ヘルプ」タブは非表示になっています。
ヘルプタブを非表示にし、その他のノートブックバータブを表示した状態の、タブ付き表示の例。
エディタのツールバーには下線コントロールは表示されませんが、他の書式設定コントロールは表示されます。ホストコードペインには、.uno:Underline に対して Hide_Command メッセージが表示されます。
WOPIホストのカスタマイズ例:下線付きのコマンドは非表示になっていますが、ツールバーの残りの部分は表示されたままです。

office.example.comご自身のCODE iframeの送信元に置き換えてください。この例はメッセージの構成を示しています。ホストの実際のiframeライフサイクルに組み込み、応答する前に受信メッセージの送信元を検証してください。CODEのドキュメントには、それ以前に送信されたホストメッセージはHost_PostmessageReady無視される可能性があると記載されています。

どのメッセージを使うべきですか?

  • Hide_NotebookTabタブビューでタブ全体に使用する場合。これはタブidIDです(例:)Help。Show_NotebookTab変更を元に戻すと、表示メッセージが届くまでタブはセッション中非表示のままになります。
  • Hide_Commandメニュー、ツールバー、コンテキストメニューからコマンドを非表示にしたい場合に使用します。IDの例は です.uno:Underline。Show_Commandはそれを反転します。このコマンドをこれらのすべての画面から削除することが目的の場合にのみ使用してください。
  • Hide_ButtonコマンドのすべてのUIエントリではなく、単一のボタンを非表示にしたい場合に使用します。そのIDはツールバーボタンのIDであり、必ずしもUNOコマンド名ではありません。Collaboraのドキュメントによると、これらのIDは通常安定していますが、保証されているわけではありません。ご使用のビルドとデバイスのフォームファクタに合わせて、ソースコードと照らし合わせて確認してください。
  • Hide_Menubarこれはメニューバー全体を非表示にします。コマンドごとの制御ではなく、ノートブックバーのタブを非表示にする操作とは異なりますのでご注意ください。

postMessage API は統合ホスト向けです。Nextcloud、ownCloud、またはその他のプラットフォームを使用している場合は、カスタムホストコードを作成する前に、そのコネクタがサポートされている設定を公開しているかどうかを確認してください。エディタページに CSS を挿入することは避けてください。リリース間で不安定になりやすく、コントロールを視覚的に隠すだけです。

変更内容がご使用のユースケースに合致するか確認してください。

ユーザーと同じブラウザ、ドキュメントの種類、権限、およびCODEリリースを使用してテストドキュメントを開きます。選択したモードを確認し、意図したタブまたはコマンドのみが非表示になっていることを確認し、対応するメッセージの表示またはツールバーの展開アクションをテストします。統合がWriter、Calc、およびImpressの3つすべてに対応している場合は、それぞれについてこの手順を繰り返します。使用可能なコマンドとツールバーIDは、モジュール間で必ずしも同一ではありません。

非表示コントロールがまだ表示される場合は、ホストが送信したメッセージのHost_PostmessageReady内容、WOPIPostMessageOriginおよび iframe のターゲットオリジンが正しいこと、メッセージで想定される ID とスペルが使用されていることを確認してください。また、サーバーのバージョンをドキュメントに記載されている機能ベースラインと比較してください。視覚的に非表示にしても、コマンドが基となるドキュメントエンジンから削除されたり、セキュリティ制限が確立されたりすることはありません。アクセス制御には、WOPI のアクセス許可とバックエンドポリシーを使用してください。

公式資料

コメントを残す

ONLYOFFICEドキュメントサーバーにカスタムフォントを追加する方法

ONLYOFFICEドキュメントサーバーにカスタムフォントを追加する方法

ONLYOFFICE Document Server for LinuxまたはDockerにカスタムフォントをインストールし、フォントリストを再生成して、エディタやエクスポートされたファイルで正しく表示されることを確認します。

Dockerコンテナ内でLibreOfficeをヘッドレスモードで実行する方法

Dockerコンテナ内でLibreOfficeをヘッドレスモードで実行する方法

再現可能なイメージ、安全なマウント、フォント、プロファイル、および検証機能を備え、DOCX、XLSX、PPTX、およびPDFへの変換を行うために、LibreOfficeをDocker上でヘッドレス実行します。

Windows 11とLinuxでLibreOfficeの起動が遅い場合の対処法

Windows 11とLinuxでLibreOfficeの起動が遅い場合の対処法

トラブルシューティングモード、拡張機能のチェック、プロファイルの修復、およびインストール固有のアップデートを使用して、Windows 11およびLinuxでのLibreOfficeの起動が遅い問題を解決します。

ONLYOFFICEデスクトップエディターでプラグイン開発を有効にする方法

ONLYOFFICEデスクトップエディターでプラグイン開発を有効にする方法

ONLYOFFICEデスクトップエディターでプラグイン開発を設定するには、ローカルの.pluginアーカイブをインストールし、ソースフォルダーをリンクし、開発者ツールを有効にして、変更をテストします。

LibreOffice CalcマクロでPythonスクリプトを実行する方法

LibreOffice CalcマクロでPythonスクリプトを実行する方法

CalcでPythonマクロを直接使用するタイミングや、LibreOffice BasicからPython関数を呼び出す方法を、UNOとScriptForgeの実践的な例を通して学びましょう。

Collabora Online CODE で「Unauthorized WOPI Host」エラーを修正する

Collabora Online CODE で「Unauthorized WOPI Host」エラーを修正する

Collabora Online CODEの「Unauthorized WOPI Host」エラーを修正するには、WOPIホスト名を一致させ、Dockerホストグループを設定し、Nextcloudの個別のIP許可リストを確認し、接続性を検証してください。

ONLYOFFICE Nextcloud連携における「トークンが無効です」エラーを修正する

ONLYOFFICE Nextcloud連携における「トークンが無効です」エラーを修正する

JWTシークレット、認証ヘッダー、Docker設定、プロキシの動作、コネクタの状態を確認することで、NextcloudにおけるONLYOFFICEの「トークンが無効です」エラーを修正します。

NextcloudでONLYOFFICEの「ドキュメントを保存できませんでした」エラーを修正する

NextcloudでONLYOFFICEの「ドキュメントを保存できませんでした」エラーを修正する

コールバック、内部URL、JWT、TLS、プロキシルーティング、ログ、ストレージを確認することで、NextcloudにおけるONLYOFFICEの「ドキュメントを保存できませんでした」エラーを修正します。

Collabora Onlineの「ソケット接続が予期せず閉じられました」エラーを修正する:WebSocketとプロキシのチェック

Collabora Onlineの「ソケット接続が予期せず閉じられました」エラーを修正する:WebSocketとプロキシのチェック

Collabora Onlineのソケット接続エラーを修正するには、26.04 WebSocketの変更点、プロキシルート、アップグレードヘッダー、タイムアウト、TLS、およびログを確認してください。

Collabora Onlineで複数の言語のスペルチェックを有効にする方法

Collabora Onlineで複数の言語のスペルチェックを有効にする方法

Collabora Onlineで多言語スペルチェックを有効にするには、サーバー辞書を追加し、言語コードを許可し、テキストに言語を割り当て、複数の言語を含む文書をテストします。