Configuration Views
サイトビルダーが、ロール、メニュー、画像スタイル、コンテンツタイプなどの設定エンティティに基づいてViewsを作成できるようにします。
config_views
インストール
composer require 'drupal/config_views:^2.1'
概要
Configuration ViewsはDrupalのViewsモジュールを拡張し、設定エンティティをデータソースとしてサポートします。これにより、サイトビルダーはコンテンツタイプ、メニュー、画像スタイル、タクソノミーボキャブラリ、ユーザーロール、およびDrupalの他のほぼすべての設定エンティティのカスタマイズされたリストを作成できます。
このモジュールは、DrupalのEntity Query APIを活用して設定エンティティを取得するカスタムクエリプラグインと、文字列およびブーリアンフィールド用の専用フィルターハンドラーを提供します。また、エンティティの操作(編集、削除など)を表示するフィールドハンドラーと、設定エンティティをターゲットとするエンティティ参照フィールドのソースとしてViewsを使用できるEntity Reference Selectionプラグインも含まれています。
インストール時に、標準のDrupal管理リストページを置き換える14の事前設定されたViewsが提供されます。これらのViewsはカスタマイズ、公開フィルターの追加、ソート、ページネーション、さまざまな形式へのエクスポートが可能で、Viewsの全機能を設定管理インターフェースにもたらします。
Features
- DrupalのEntity Query APIを使用して設定エンティティをクエリできるカスタムViewsクエリプラグイン(views_config_entity_query)
- 文字列フィルタープラグイン(config_entity_string):等しい、等しくない、含む、で始まる、で終わる、空である、空でないの演算子をサポート
- 設定エンティティのブーリアンフィールドをフィルタリングするためのブーリアンフィルタープラグイン(config_entity_boolean)
- エンティティ操作リンク(編集、削除など)をレンダリングする操作フィールドプラグイン(config_entity_operations)
- Viewsを使用して設定エンティティ参照をフィルタリングできるEntity Reference Selectionプラグイン(config_views)
- コアの管理ページを置き換える14の事前構築されたViews:コメントタイプ、コンタクトフォーム、コンテンツタイプ、カスタムブロックタイプ、日付形式、フォームモード、画像スタイル、メニュー、ショートカット、タクソノミーボキャブラリ、テキストフォーマット、ユーザーロール、ビューモード、Viewsリスト
- Viewsウィザードの自動カテゴリ分け:Add Viewフォームで設定エンティティViewsを「Configuration」の下にグループ化
- 公開フィルター、ソート、ページング、さまざまな表示形式を含む完全なViews機能のサポート
- コンテンツと設定オプションをアルファベット順にグループ化してビューウィザードを整理するHook実装
Use Cases
コンテンツタイプのフィルタリングされたリストの作成
サイトビルダーはContent types Viewをカスタマイズして公開フィルターを追加し、管理者が名前で特定のコンテンツタイプを検索したり、説明があるかどうかなどのプロパティでフィルタリングしたりできるようにします。ビューは利用可能な任意のフィールドでソートできます。
ロールベースのエンティティ参照フィールドの構築
config_views Entity Reference Selectionハンドラーを使用して、開発者はViewでフィルタリングされたユーザーロールを参照するエンティティ参照フィールドを作成できます。例えば、フィールドはViewのフィルターで定義された特定の権限を持つロールや特定の基準に一致するロールのみを参照できます。
Views機能による管理ページのカスタマイズ
標準のDrupal管理リストページを、ページネーション、公開検索フィルター、ソート可能なカラム、およびリストのエクスポート機能(Views Data Exportなどの適切なエクスポートモジュールを使用)をサポートするViewsベースのバージョンに置き換えます。
すべての有効なViewsのダッシュボード作成
views_list Viewを有効にして、サイト上のすべてのViewsのカスタマイズ可能なリストを取得します。このViewは有効なビューと無効なビューを別々に表示し、タグによるフィルターの追加、特定のディスプレイを持つビューのみの表示などのカスタマイズが可能です。
検索機能付きの画像スタイル管理
image_styles Viewをカスタマイズしてスタイル名の公開フィルターを追加し、多くのスタイル定義があるサイトで特定の画像スタイルを見つけやすくします。
Tips
- 一部のViewsはデフォルトで無効になっています。/admin/structure/viewsで確認し、使用したいものを有効にしてください。
- このモジュールは、14の事前構築されたViewsだけでなく、すべての設定エンティティタイプをViewsベーステーブルとして自動的に利用可能にします。
- 新しいViewを作成する際は、「Show」ドロップダウンの「Configuration」グループで利用可能なすべての設定エンティティタイプを確認してください。
- config_views Entity Reference Selectionハンドラーは、エンティティ参照フィールドから設定エンティティ(ロールなど)を参照する必要があり、Viewsフィルタリング機能が必要な場合に便利です。
- すべての標準Views機能が設定エンティティViewsで動作します:公開フィルター、ソート、ページャー、異なるディスプレイタイプ、リレーションシップなど。
Technical Details
Admin Pages 14
/admin/structure/comment
サイトで定義されているすべてのコメントタイプを一覧表示します。コメントタイプのラベル、説明を表示し、各コメントタイプの編集と管理のための操作リンクを提供します。コアのコメントタイプ管理ページを置き換えます。
/admin/structure/contact
すべてのコンタクトフォームを一覧表示します。フォームラベル、受信者(返信フィールド)、および操作リンクを表示します。このViewはデフォルトで無効になっています。
/admin/structure/types
すべてのコンテンツタイプを名前、説明、操作リンクとともに一覧表示します。完全なページネーションサポートを備えたコアのコンテンツタイプ管理ページのViewsベースの代替を提供します。
/admin/structure/block/block-content/types
編集ページにリンクされたラベル、説明、操作リンクを含むすべてのカスタムブロックタイプを一覧表示します。
/admin/config/regional/date-time
すべての日付形式設定を表示し、形式名、パターン、操作リンクを表示します。
/admin/structure/display-modes/form
ターゲットエンティティタイプ別にグループ化されたすべてのエンティティフォームモードを一覧表示します。フォームモード名と操作を表示します。このViewはデフォルトで無効になっています。
/admin/config/media/image-styles
すべての画像スタイルを表示し、スタイル名と編集、フラッシュ、削除の操作リンクを表示します。
/admin/structure/menu
すべてのメニューを名前(太字で表示)、説明、操作リンクとともに一覧表示します。ラベルのアルファベット順でソートされています。
/admin/config/user-interface/shortcut
すべてのショートカットセットを名前と操作リンクとともに一覧表示します。
/admin/structure/taxonomy
すべてのタクソノミーボキャブラリを名前のアルファベット順でソートして一覧表示し、タームとボキャブラリ設定を管理するための操作リンクを提供します。
/admin/config/content/formats
すべてのテキストフォーマット/フィルターフォーマットを名前と操作リンクとともに一覧表示します。このViewはデフォルトで無効になっています。
/admin/people/roles
すべてのユーザーロールをウェイト順にソートして一覧表示し、ロールラベルと操作リンクを表示します。このViewはデフォルトで無効になっています。
/admin/structure/display-modes/view
ターゲットエンティティタイプ別にグループ化されたすべてのエンティティビューモードを一覧表示します。ビューモード名と操作を表示します。このViewはデフォルトで無効になっています。
/admin/structure/views
すべてのViewsを有効と無効のセクションに分けて一覧表示します。ビュー名(h3見出しとして)、説明、タグ、操作を表示します。無効なビューはフッターブロックに表示されます。このViewはデフォルトで無効になっています。
Hooks 2
hook_views_data
hook_views_data()を実装し、すべての設定エンティティタイプをViewsのベーステーブルとして登録します。すべての設定エンティティを動的に検出し、エンティティのconfig schemaに基づいてフィールド、フィルター、ソート、引数を含むViewsデータ定義を作成します。
hook_form_FORM_ID_alter
hook_form_view_add_form_alter()を実装し、Viewsウィザードの選択ドロップダウンを再編成します。設定エンティティタイプを「Configuration」optgroupの下に、コンテンツタイプを「Content」の下にグループ化し、各グループ内でアルファベット順にソートします。
Troubleshooting 4
いくつかのViewsは、コアの管理ページデザインを完全に再現しない可能性があるため、デフォルトで無効になっています。/admin/structure/viewsで確認し、要件を満たしていることを確認してから有効にしてください。その後、要件に合わせてカスタマイズできます。
このモジュールは現在、限られたフィールド(名前、説明、IDなど)を提供しています。すべての設定エンティティタイプのエンティティ固有フィールドの取得は進行中の作業です。config schemaから利用可能なフィールドを使用するか、カスタムフィールドハンドラーを作成してください。
フィールド管理用のViews(field_configエンティティ)はまだ実装されていません。これは既知の制限事項です。
設定エンティティクエリはSQLクエリとは異なるページネーションメカニズムを使用します。互換性のあるページャータイプ(フルページャーまたはミニページャーが正しく動作します)を使用していることを確認してください。
Security Notes 2
- 各事前設定されたViewはコアの権限要件(例:「administer content types」、「administer permissions」)を尊重します。アクセス制御は各Viewで設定されています。
- Viewsをカスタマイズしたり、設定エンティティに基づいて新しいものを作成したりする場合は、設定データへの不正アクセスを防ぐために適切なアクセス制限が設定されていることを確認してください。