Moderation Sidebar
Content Moderationのためのフロントエンドオフキャンバスサイドバーを提供し、編集者がモデレーション状態をすばやく確認し、ワークフローの状態を変更できるようにします。
moderation_sidebar
インストール
composer require 'drupal/moderation_sidebar:8.x-1.8'
composer require 'drupal/moderation_sidebar:8.x-1.5'
概要
Moderation Sidebarは、フロントエンドから直接コンテンツエンティティをモデレートするためのオフキャンバスメニューを提供します。モデレートされたエンティティを表示すると、Drupalツールバーに「タスク」ボタンが表示され、スライド式のサイドバーパネルが開きます。このパネルには、現在のモデレーション状態、リビジョン情報が表示され、ワークフローの状態を遷移させるためのクイックアクションボタンが提供されます。
このモジュールはDrupalのContent Moderationモジュールとシームレスに統合され、モデレートされたエンティティを自動的に検出し、適切なワークフロー遷移を表示します。Content Translation統合を通じて多言語サイトをサポートし、翻訳状態と翻訳の作成、表示、編集へのクイックリンクを表示します。Nodeの場合、サイドバー内にリビジョン履歴ビューも組み込まれています。
サイト管理者は、ワークフローごとにサイドバーに表示されるワークフロー遷移を設定でき、必要に応じて特定の遷移をすべてのユーザーから非表示にできます。サイドバーはAJAX対応のオフキャンバスダイアログを使用し、スムーズで中断のないユーザー体験を提供します。
Features
- モデレートされたエンティティを表示するときにツールバーから開くオフキャンバスサイドバーパネル
- ツールバーに色分けされたステータスインジケーター(Published/Draft/Draft Available)で現在のモデレーション状態を表示
- ページを離れることなくワークフロー状態を変更するためのクイック遷移ボタン
- 状態遷移実行時のカスタムリビジョンログメッセージのサポート
- 公開コンテンツと下書きリビジョン間の表示と切り替え
- 公開リビジョンに戻すための下書き破棄機能
- 最新5件のリビジョンを表示する組み込みリビジョン履歴ビュー(Nodeの場合)
- すべての言語バージョンのステータスとクイック表示/編集/作成ボタンを備えた翻訳概要
- 特定のワークフロー遷移をグローバルに非表示にする設定可能な遷移フィルタリング
- 現在のモデレーション状態を示す視覚的ステータスインジケーターを備えたツールバー統合
- インライン編集後にサイドバーを更新するQuick Editモジュールとの統合
- リビジョン可能なすべてのコンテンツエンティティタイプ(Node、Taxonomy Termなど)のサポート
- サイドバーUIでのRTL言語サポート
Use Cases
クイック編集レビューワークフロー
公開されたコンテンツを表示している編集者は、ツールバーのタスクボタンをクリックして現在のモデレーション状態を確認できます。「コンテンツを編集」をクリックしてすばやく新しい下書きを作成するか、下書きがすでに存在する場合は「既存の下書きを表示」をクリックして表示できます。サイドバーはツールバーに「下書きあり」ステータスを明確に表示します。
コンテンツのすばやい公開
下書きをレビューするとき、編集者はサイドバーのクイック遷移ボタンを使用して、編集フォームに移動せずに状態を変更(例:「公開」または「アーカイブ」)できます。遷移ボタンをクリックする前に「カスタムログメッセージを使用」をチェックして、オプションでカスタムリビジョンログメッセージを追加できます。
不要な下書きの破棄
下書きが不要になった場合、編集者はサイドバーの「下書きを破棄」ボタンをクリックできます。これにより、現在公開されているバージョンから新しいリビジョンが作成され、破棄された下書きを監査目的でリビジョン履歴に保持しながら、実質的に公開コンテンツに戻ります。
多言語コンテンツの管理
多言語サイトでは、編集者はサイドバーの「翻訳」ボタンをクリックして、すべての利用可能な翻訳と現在のモデレーション状態を確認できます。既存の翻訳をすばやく表示または編集したり、まだコンテンツがない言語の新しい翻訳を作成できます。
リビジョン履歴の確認
Nodeの場合、編集者は「リビジョンを表示」をクリックして、ログメッセージ、作成者、タイムスタンプを含む最後の5つのリビジョンを表示できます。各リビジョンは簡単に表示できるようにリンクされており、「すべてのリビジョンを表示」ボタンで完全なリビジョン履歴にアクセスできます。
管理用遷移の非表示
サイト管理者は、ワークフローごとにサイドバーから特定のワークフロー遷移を非表示にできます。たとえば、クイックサイドバーインターフェースではなく、完全な編集フォームを通じて管理者のみが実行すべき「アーカイブ」遷移を非表示にできます。
Tips
- ツールバーの色分けされたステータスインジケーターは一目でわかる情報を提供します:緑はPublished、赤はDraft、オレンジはDraft Available
- 重要な状態変更を行う際はカスタムリビジョンログメッセージを使用して、明確な監査証跡を維持しましょう
- サイドバーはすべてのContent Moderation権限を尊重します - ユーザーには実行が許可された遷移のみが表示されます
- 自己遷移(例:DraftからDraft)は乱雑さを減らすために自動的に非表示になります
- サイドバーはNodeだけでなく、リビジョン可能なすべてのコンテンツエンティティタイプで動作しますが、リビジョン履歴などの一部の機能はNode固有です
Technical Details
Admin Pages 1
/admin/config/user-interface/moderation-sidebar
Moderation Sidebarから非表示にするワークフロー遷移を設定します。これにより、サイト管理者はすべてのユーザーに対してサイドバーに表示される特定の遷移をグローバルに無効化できます。
権限 2
Hooks 1
hook_moderation_sidebar_alter
モジュールがモデレーションサイドバーの表示前にrender arrayを変更できるようにします。サイドバーにカスタムボタン、リンク、または情報を追加するために使用できます。
Troubleshooting 5
以下を確認してください:1)ユーザーが「Use the Moderation Sidebar」権限を持っている、2)管理ページではなくモデレートされたエンティティを表示している、3)Content Moderationが有効で少なくとも1つのワークフローが設定されている、4)エンティティタイプがモデレーションワークフローを使用するように設定されている。
/admin/config/user-interface/moderation-sidebarのModeration Sidebar設定を確認して、遷移がグローバルに無効化されていないか確認してください。また、現在のユーザーがワークフロー設定でそれらの特定の遷移を実行する権限を持っているか確認してください。
翻訳ボタンは以下の場合にのみ表示されます:1)Content Translationモジュールが有効、2)エンティティタイプが翻訳用に設定されている、3)ユーザーがそのエンティティタイプの翻訳権限を持っている。
リビジョンボタンは現在Node(他のエンティティタイプではない)にのみ表示され、ユーザーがNodeの「view all revisions」権限を持っている必要があります。
Quick Editが保存した後、サイドバーは自動的に更新されるはずです。更新されない場合は、タスクボタンをクリックしてサイドバーを閉じてから再度開き、更新された情報を確認してください。
Security Notes 3
- 「administer moderation sidebar」権限はアクセス制限としてマークされており、信頼できる管理者にのみ付与すべきです
- サイドバーは基盤となるすべてのエンティティアクセス権限を尊重します - ユーザーは実行する権限を持つアクションのみ実行できます
- サイドバーでの遷移の無効化はセキュリティ対策ではありません - UIからボタンを非表示にするだけです。適切な権限を持つユーザーは、他の手段(編集フォーム、Drushなど)を通じて遷移を実行できます