Moderation Dashboard
モデレート対象コンテンツを管理するためのユーザーごとのダッシュボードを提供し、カスタマイズ可能なViewsとアクティビティの可視化機能を備えています。
moderation_dashboard
インストール
composer require 'drupal/moderation_dashboard:^4.0'
composer require 'drupal/moderation_dashboard:^3.1'
概要
Moderation Dashboardは、モデレート対象コンテンツの管理に役立つブロックを含む、ユーザーごとのダッシュボードを提供します。このモジュールは、管理者がコンテンツ編集者の編集ワークフローを効率的に管理できるよう支援する、カスタマイズ可能な出発点として設計されています。
ダッシュボードには、レビュー中のコンテンツ、コンテンツの下書き、最近の変更、最近作成されたコンテンツなど、複数のViewsが表示されます。また、Chart.jsを使用して過去30日間の編集者のアクティビティを示すアクティビティ可視化チャートも提供します。ダッシュボードはViewsとLayout Builderで完全に構築されているため、管理者はコードを書くことなくUIからすべてを設定できます。
適切な権限を持つ各ユーザーは、自分のコンテンツアクティビティ、下書き、レビュー待ちのアイテムを表示する個人用ダッシュボードを取得できます。管理者は、チームのアクティビティを監視するために任意のユーザーのダッシュボードを表示できます。
Features
- /user/{user}/moderation-dashboardでアクセス可能なユーザーごとのモデレーションダッシュボード
- 現在レビューワークフロー状態にあるコンテンツを表示
- コンテンツの下書きを表示(全体の下書きとユーザー固有の下書きの両方)
- リビジョン追跡を含む最近の変更と更新のView
- 最近作成されたコンテンツの一覧
- Chart.jsを使用した過去30日間の編集済みコンテンツと作成コンテンツを表示する編集者アクティビティ可視化チャート
- ユーザーがアクセス権を持つ新しいコンテンツタイプを作成するためのクイックリンク
- ユーザーログイン後のダッシュボードへのオプションの自動リダイレクト
- Layout Builderを使用したカスタマイズ可能な3カラムレイアウト
- 保留中のリビジョンを表示するViewsの最新バージョンへのリンクフィールド
- ユーザーメニューにダッシュボードリンクを含むツールバー統合
- モバイルフレンドリーな単一カラムレイアウトによるレスポンシブデザイン
Use Cases
編集チームの管理
サイト管理者はダッシュボードを使用して編集チームのアクティビティを監視できます。「view any moderation dashboard」権限を付与することで、管理者はチームメンバーのダッシュボードにアクセスし、コンテンツ出力、レビュー中のアイテム、下書きを確認できます。アクティビティチャートは、誰が最もアクティブであったかを視覚的に概観できます。
コンテンツ編集者のワークフロー
コンテンツ編集者は個人用ダッシュボードを日常業務のホームベースとして使用できます。ログイン後(自動リダイレクトが有効な場合)、すぐにレビュー待ちのコンテンツ、完了が必要な自分の下書き、サイト全体の最近の変更、新しいコンテンツを作成するためのクイックリンクが表示されます。
コンテンツレビュープロセス
レビュー担当者は「レビュー中のコンテンツ」ブロックを使用して、承認待ちのすべてのコンテンツアイテムをすばやく確認できます。「最新バージョンへのリンク」フィールドにより、公開バージョンが保留中のリビジョンと異なる場合でも、常に最新のリビジョンを表示していることが保証されます。
カスタム部門ダッシュボード
Layout Builderを使用して、管理者は異なるユーザーロールや部門向けに異なるダッシュボードレイアウトを作成できます。関連性のないブロックを削除したり、追加のViewsブロックを追加したり、特定のチームワークフローに合わせてレイアウトを再配置できます。
Tips
- Views UIモジュールを有効にして、ダッシュボードViewsをカスタマイズし、追加のフィルタやフィールドを追加できます
- Layout Builderを使用して、条件ブロックを配置することでロール固有のダッシュボードレイアウトを作成できます
- セキュリティ上、CDNオプションを使用するよりもChart.jsをローカルにインストールすることをお勧めします
- ダッシュボードリンクはツールバーのユーザー名の下に表示されます - URLを覚える必要はありません
- ダッシュボードViewsで完全なコンテンツ履歴を表示する必要があるユーザーには「view all revisions」権限を付与してください
Technical Details
Admin Pages 3
/admin/config/people/moderation_dashboard
ログインリダイレクト動作やChart.jsライブラリソースなど、Moderation Dashboardモジュールのグローバル設定を構成します。
/admin/config/people/accounts/display/moderation_dashboard
Layout Builderを使用してモデレーションダッシュボードのレイアウトをカスタマイズします。ダッシュボードに表示されるブロックの追加、削除、並べ替え、設定を行います。
/user/{user}/moderation-dashboard
メインのユーザーごとのモデレーションダッシュボードページ。レビュー中のコンテンツ、下書き、最近の変更、最近作成されたコンテンツ、アクティビティチャート、新しいコンテンツを作成するためのクイックリンクを表示するブロックが表示されます。コンテンツはダッシュボード所有者のアクティビティに基づいてフィルタリングされます。
権限 2
Hooks 6
hook_views_data
Viewsのすべてのリビジョン可能なコンテンツEntityタイプに「最新バージョンへのリンク」フィールドを追加します。
hook_preprocess_views_view
ページングが不要な場合(現在のページが0で、合計行数が1ページあたりのアイテム数より少ない場合)、モデレーションダッシュボードViewsのページャーを非表示にします。
hook_toolbar_alter
「use moderation dashboard」権限を持つユーザーのユーザーツールバートレイにモデレーションダッシュボードへのリンクを追加します。
hook_preprocess_block
モデレーションダッシュボードページに表示されるブロックに「moderation-dashboard-block」CSSクラスを追加します。
hook_plugin_filter_condition__block_ui_alter
内部使用を目的としているため、混乱を避けるためにBlock UIからモデレーションダッシュボードの条件プラグインを削除します。
hook_library_info_alter
設定(CDN対ローカル)に基づいて、activityライブラリにChart.jsライブラリの依存関係を動的に追加します。
Troubleshooting 5
Chart.jsライブラリが正しくインストールされていることを確認してください。libraries/chartjs/またはlibraries/chart.js/にローカルにダウンロードするか、モジュール設定で「CDNからchart.jsを取得」オプションを有効にしてください。/admin/reports/statusのステータスレポートで警告を確認してください。
以下を確認してください: 1) 「ログイン時にリダイレクト」設定が有効になっている、2) ユーザーが「use moderation dashboard」権限を持っている、3) 少なくとも1つのコンテンツタイプでContent Moderationが有効になっている、4) ログインURLにdestinationパラメータが設定されていない。
他のユーザーのダッシュボードを表示する必要があるユーザー(マネージャーや管理者など)に「view any moderation dashboard」権限を付与してください。
ダッシュボードはLayout Builderを使用しています。/admin/config/people/accounts/display/moderation_dashboardに移動して、表示するブロックとその配置を設定してください。
データベースアップデートを実行してください(drush updatedb)。アップデートフックがPage ManagerからLayout Builder設定への移行を自動的に行います。カスタムのPage Manager設定はLayout Builderで再作成する必要があります。
Security Notes 3
- 本番サイトでは、外部依存を避けコンテンツセキュリティポリシーに準拠するため、CDNを使用するよりもChart.jsをローカルにインストールしてください
- 「view any moderation dashboard」権限は、信頼できる管理者ロールにのみ付与してください
- ダッシュボードアクセスは、多層防御のためにルートレベルとViewsレベルの両方のアクセスチェックによって制御されています