Dashboards with Layout Builder
Layout Builderを使用してカスタマイズ可能なダッシュボードを提供し、管理者が設定可能なウィジェットやチャートを含むパーソナライズされた管理ページを作成できます。
dashboards
インストール
composer require 'drupal/dashboards:^2.1'
概要
Dashboardsモジュールは、DrupalのLayout Builderを使用して完全にカスタマイズ可能なダッシュボードを作成できます。設定可能なブロックやウィジェットを使用して管理ページを構築できる完全なダッシュボードシステムを提供します。
主な機能には、環境間でエクスポート・インポートできる設定エンティティとして複数のダッシュボードを作成する機能、ユーザーが自分のダッシュボードレイアウトをカスタマイズできるユーザーごとのダッシュボードパーソナライズ機能、簡単にアクセスできるDrupalツールバーとの統合、データ可視化のための組み込みチャートサポート、カスタムダッシュボードコンポーネントを作成するためのプラグインシステムがあります。
このモジュールには、コンテンツ統計、システムステータス、RSSフィード、エラーレポート、埋め込みViewsなど、一般的なユースケース向けのさまざまな組み込みダッシュボードプラグインが含まれています。追加のサブモジュールでは、Matomo分析、Webform送信、コア統計との統合を提供します。
Features
- Layout Builderのドラッグ&ドロップインターフェースを使用してカスタマイズ可能なダッシュボードを作成
- ユーザーごとのダッシュボードパーソナライズ - 各ユーザーが自分の表示用にデフォルトのダッシュボードレイアウトをオーバーライド可能
- すべてのダッシュボードはエクスポートしてバージョン管理できる設定エンティティ
- 再利用可能なダッシュボードコンポーネントを作成するためのカスタムダッシュボードプラグインシステム
- 設定可能なカラーマップで円グラフ、棒グラフ、折れ線グラフ、レーダーチャート、極座標エリアチャート、ドーナツチャート、バブルチャートをサポートする組み込みチャート統合
- すべてのダッシュボードへのクイックアクセスを提供するツールバー統合
- ダッシュボードページでの管理テーマの自動切り替え用テーマネゴシエーター
- 複数の組み込みレイアウトオプション(2カラム、3カラム、2+1カラム)
- ダッシュボードへのViews埋め込み表示のサポート
- 外部ニュースを表示するRSSフィードリーダープラグイン
- システム情報ウィジェット(ステータス、エラー、更新、404レポート)
- コンテンツタイプの分布を表示するNode統計プラグイン
- コンテンツ作成ショートカットメニュー
- ユーザープロフィール表示ウィジェット
- 専用テンプレートによるGin管理テーマのサポート
- 利用可能なブロックを制御するLayout Builder Restrictions統合
Use Cases
コンテンツエディター向けダッシュボード
最近作成したコンテンツ、レビュー待ちのコンテンツ、新規コンテンツ作成へのクイックリンクを表示するコンテンツエディター向けダッシュボードを作成。「Dashboard: My last content」のView埋め込みと「Add content」メニュープラグインを使用。
サイト管理者向けダッシュボード
システムステータス、利用可能なモジュール更新、ログからの最近のエラーや警告、404エラーレポートを表示する包括的な管理ダッシュボードを構築。system_info、status_updates、error_report、report_not_foundプラグインを組み合わせて使用。
アナリティクスダッシュボード
Matomoサブモジュールを使用して、訪問者統計、地理的分布、ブラウザ使用状況、パフォーマンスの高いページを表示するアナリティクスダッシュボードを作成。各ウィジェットの日付範囲とチャートタイプを設定。
コンテンツ概要ダッシュボード
コンテンツタイプ別の分布を円グラフや棒グラフで表示し、最近公開されたコンテンツのテーブルと組み合わせてコンテンツ統計を表示。node_statisticsプラグインとViews埋め込みプラグインを使用。
パーソナライズされたユーザーダッシュボード
各ユーザーが自分のダッシュボードレイアウトをカスタマイズできるようにする。管理者がデフォルトのダッシュボードを設定し、特定のロールに「can override」権限を付与して、ユーザーがワークフローに合わせてウィジェットを並べ替えたり削除したりできるようにする。
ニュース集約ダッシュボード
外部のRSSフィードからのコンテンツを内部コンテンツと一緒に集約するダッシュボードを作成。異なるニュースソース用に設定された複数のrss_newsプラグインを使用。
Tips
- 重みフィールドを使用して、ツールバーのドロップダウンメニューでダッシュボードが表示される順序を制御
- ダッシュボード設定はConfiguration Managementを使用してエクスポートでき、環境間でダッシュボードを簡単にデプロイ可能
- チャートのカラーマップは/admin/system/dashboards-settingsでグローバルに変更でき、サイトのブランディングに合わせることが可能
- RSSフィードやMatomoなどの外部データソースでのパフォーマンス向上のため、モジュールは遅延ビルドとキャッシュを使用 - 時間に敏感なデータを表示する場合はキャッシュの有効期限を考慮
- カスタムダッシュボードプラグインを作成する場合は、DashboardBaseを拡張してbuildRenderArray()を実装 - プラグインは自動的にLayout Builderでブロックとして利用可能に
- 外部API呼び出しを行うプラグインにはDashboardLazyBuildBaseを使用して、ページ読み込みパフォーマンスを向上
- ダッシュボードごとに細かい権限を付与 - ユーザーに特定のダッシュボードの表示を許可しつつ、特定のもののみパーソナライズを許可することが可能
- モジュールはダッシュボードが変更またはパーソナライズされたときに自動的にキャッシュの無効化を処理
Technical Details
Admin Pages 8
/admin/structure/dashboards
ドラッグ&ドロップによる並べ替えをサポートしたすべての利用可能なダッシュボードを一覧表示します。ここから管理者は、ダッシュボードの表示、編集、レイアウト管理、削除、新規作成ができます。
/admin/structure/dashboards/add
新しいダッシュボードエンティティを作成するフォーム。管理用ラベル、マシン名、カテゴリー、表示設定、重みを定義します。
/admin/structure/dashboards/manage/{dashboard}
ラベル、カテゴリー、フロントエンドテーマ設定、重みを含むダッシュボード設定を変更する編集フォーム。
/admin/system/dashboards-settings
主にチャートの色とスタイリングに関するダッシュボード外観のグローバル設定。
/dashboard/{dashboard}
設定されたすべてのブロックとウィジェットを含む特定のダッシュボードを表示します。権限を持つユーザーはこのページからレイアウトをパーソナライズできます。
/dashboards/{dashboard}/layout
デフォルトのダッシュボードレイアウトを設定するLayout Builderインターフェース。ドラッグ&ドロップでブロックの追加、削除、配置ができます。すべてのダッシュボードプラグインはレイアウト領域に配置できるブロックとして表示されます。
/dashboard/{dashboard}/override
ユーザーが自分のダッシュボード表示をパーソナライズするためのLayout Builderインターフェース。変更はユーザーごとに保存され、デフォルトのダッシュボードには影響しません。
/admin/structure/dashboards/manage/{dashboard}/permissions
表示権限とオーバーライド権限を含む、このダッシュボード固有のロールベースの権限を設定します。
権限 3
Hooks 1
hook_dashboards_dashboard_info_alter
モジュールがダッシュボードプラグインの定義を変更できるようにする
Troubleshooting 6
Layout Builder Restrictionsをバージョン2.2以降に更新してください。以前のバージョンには、カスタムセクションストレージプラグインでの保存を妨げるバグがあります。
ダッシュボードの編集時に「常にフロントエンドテーマで表示」チェックボックスがオフになっていることを確認してください。また、ユーザーが「管理テーマを表示」権限を持っていることを確認してください。
コアのDatabase Logging(dblog)モジュールを有効にしてください。これらのプラグインはwatchdogデータが必要です。
コアのUpdate Managerモジュールを有効にし、更新情報を取得するためにcronが実行されていることを確認してください。
ユーザーがその特定のダッシュボードに対して「can override {dashboard_id} dashboard」権限を持っていることを確認してください。
「Embed」ディスプレイタイプを持つViewを作成してください。埋め込みディスプレイで設定されたViewsのみがview_embedプラグインで使用できます。
Security Notes 4
- ダッシュボードのパーソナライズデータはUser Data APIを使用してユーザーごとに保存され、ユーザーが削除されるかモジュールがアンインストールされると削除される
- 「administer dashboards」権限はすべてのダッシュボードに対する完全な制御を付与 - 信頼できる管理者ロールにのみ割り当て
- 表示およびオーバーライド権限は各ダッシュボードに対して動的に生成され、きめ細かいアクセス制御が可能
- モジュールはオブジェクトインジェクションの脆弱性を防ぐため、許可されたクラスを制限してユーザーオーバーライドデータのシリアライズを適切に処理