Panelizer(廃止)

Panelizerは、サポートされているDrupalエンティティをPanelsディスプレイとして扱えるようにし、バンドルごとに柔軟なデフォルトディスプレイを提供し、オプションでエンティティごとのカスタマイズも可能にします。

panelizer
9,825 sites
54
drupal.org

インストール

Drupal 10, 9 v8.x-5.0
composer require 'drupal/panelizer:8.x-5.0'
Drupal 8 v8.x-4.4
composer require 'drupal/panelizer:8.x-4.4'

概要

Panelizerは、サポートされているエンティティ(Node、Taxonomyターム、ユーザー、コメント)をPanelsレイアウトシステムを使用してレンダリングできるようにする、強力なDrupal 7.xモジュールです。これにより、サイト構築者はカスタムコードを必要とせずに、あらゆるエンティティタイプに対してカスタマイズされた柔軟なレイアウトを作成できます。

このモジュールは、以前Panelsにバンドルされていた「Panel Nodes」モジュールの後継および置き換えとして機能します。Drupalコアのエンティティ以外の追加エンティティタイプをサポートするために拡張可能なプラグインベースのアーキテクチャを提供します。

各エンティティバンドル(コンテンツタイプ、ボキャブラリなど)では、各表示モードを個別に設定できます。このモジュールは4つの動作モードをサポートしています:デフォルトなし/選択なし、デフォルトあり/選択なし、デフォルトなし/選択あり、デフォルトあり/選択あり。これにより、エンティティの表示方法とコンテンツ編集者がディスプレイを選択またはカスタマイズできるかどうかを細かく制御できます。

このモジュールは完全なリビジョンサポートを含み、編集ワークフロー管理のためにRevisioningモジュールとWorkbench Moderationモジュールの両方と統合されています。

Features

  • すべてのDrupalコアエンティティをサポート:Node、Taxonomyターム、ユーザー、コメント。カスタムエンティティへの拡張も可能
  • バンドルごと、表示モードごとの設定により、各エンティティタイプ/バンドルの組み合わせに異なるPanelディスプレイを適用可能
  • 複数ディスプレイの選択をサポート - エンティティバンドルは複数のデフォルトディスプレイを持ち、エンティティごとに選択可能
  • 4つの動作モード:デフォルトなし/選択なし、デフォルトあり/選択なし、デフォルトなし/選択あり、デフォルトあり/選択あり
  • RevisioningモジュールとWorkbench Moderationモジュールとの統合による完全なコンテンツリビジョンサポート
  • ディスプレイのライブ編集のためのPanelsを通じたIn-Place Editor(IPE)サポート
  • フルページオーバーライド機能のためのPage Manager統合
  • パネル化されたコンテンツのフィルタリングと表示のためのカスタムハンドラを持つViews統合
  • パネル化されたエンティティコンテンツのインデックス作成のためのSearch API統合
  • Panelizer設定をエクスポートするためのFeaturesモジュール統合
  • カスタムエンティティタイプへの簡単な拡張を可能にするプラグインベースのアーキテクチャ
  • 複雑なディスプレイ設定のためのContextとRelationshipのサポート
  • エンティティごとのCSSクラス、ID、カスタムCSSコードのサポート
  • エンティティバンドルごとに許可されるコンテンツタイプとレイアウトの設定

Use Cases

コンテンツタイプごとのカスタムランディングページ

パネル選択を有効にして「ランディングページ」コンテンツタイプでPanelizerを有効にします。複数のデフォルトディスプレイ(例:「2カラム」、「3カラム」、「フィーチャード」)を作成します。コンテンツ編集者は各ランディングページでどのレイアウトを使用するかを選択し、その中のコンテンツをカスタマイズできます。

パーソナライズされたユーザープロファイル

管理者がカスタムプロファイルレイアウトを作成できるように、ユーザーエンティティでPanelizerを有効にします。適切な権限を持つユーザーは、許可されたコンテンツタイプ内で自分のプロファイルディスプレイをカスタマイズできます。

Taxonomyランディングページ

TaxonomyタームでPage Managerオーバーライドを有効にしてPanelizerを有効にします。異なるボキャブラリに対して異なるデフォルトディスプレイを作成し、カテゴリページにプロモートされたコンテンツ、フィルタ、カスタムブロックを持つユニークなレイアウトを可能にします。

記事ごとのカスタマイズによる一貫した記事レイアウト

デフォルトディスプレイを持つ記事コンテンツタイプでPanelizerを有効にします。すべての記事は自動的に標準レイアウトを受け取りますが、編集者は特集コンテンツに特別なレイアウトが必要な場合に個々の記事をオーバーライドできます。

表示モード固有のディスプレイ

同じコンテンツタイプに対して異なる表示モードで異なるPanelizerディスプレイを設定します。例えば、フルページ表示用に1つのレイアウト、ティーザー表示モード用に別のレイアウト、検索結果用にさらに別のレイアウトを使用できます。

Tips

  • フルページオーバーライド表示モードの場合、競合する可能性があるためデフォルト表示モードもパネル化しないことをお勧めします
  • エンティティのPanelizer設定を変更するには、常にそのエンティティに対応する「更新」権限が必要です
  • CSSクラスフィールドでコンテキスト置換を使用して、エンティティデータに基づく動的なクラス名を作成できます
  • カスタムモジュールデータは$panelizer->extra(シリアライズされた配列)に保存しますが、衝突を避けるためにキーに名前空間を付けてください
  • カスタムエンティティ用にPanelizerを拡張する場合、Nodeプラグインを出発点としてコピーし、ハンドラクラスを変更してください

Technical Details

Admin Pages 7
Panelizer /admin/structure/panelizer

すべてのサポートされているエンティティタイプでPanelizerを有効化および設定するための主要な設定ページです。このページでは、各エンティティタイプ(node、user、taxonomy_term、comment)のテーブルが表示され、バンドルと表示モードごとにPanelizerを有効/無効にするチェックボックスがあります。

デフォルトパネル設定 /admin/structure/panelizer/{entity_type}/{bundle}.{view_mode}

特定のエンティティバンドルと表示モードの組み合わせに対するデフォルトのPanelizerディスプレイの設定を行います。バンドルでパネル選択が有効になっていない場合にのみアクセス可能です。

許可されたコンテンツ /admin/structure/panelizer/{entity_type}/{bundle}/allowed

このエンティティバンドルのパネルディスプレイを編集する際に利用可能なコンテンツタイプ(ペイン)を設定します。

レイアウト /admin/structure/panelizer/{entity_type}/{bundle}.{view_mode}/layout

デフォルトディスプレイのPanelsレイアウトを変更します。新しいレイアウトを選択し、オプションでリージョン間でコンテンツを移動するウィザードインターフェースを提供します。

コンテンツ /admin/structure/panelizer/{entity_type}/{bundle}.{view_mode}/content

パネルディスプレイのリージョン内のコンテンツ(ペイン)を編集します。ペインの追加、設定、配置のためにPanelsエディタインターフェースを使用します。

コンテキスト /admin/structure/panelizer/{entity_type}/{bundle}.{view_mode}/context

パネルディスプレイの追加コンテキストとリレーションシップを設定します。コンテキストはペインで使用できる追加データを提供します。

アクセス /admin/structure/panelizer/{entity_type}/{bundle}.{view_mode}/list/{name}/access

この特定のデフォルトディスプレイがいつ使用されるかを決定するアクセスルールを設定します。CToolsアクセス制御システムを使用します。

権限 7
Panelizerを管理

Panelizerを完全に管理 - Panelizerで管理できるエンティティのカスタマイズ、デフォルトディスプレイの管理など。

Panelizer [entity_type] [bundle] デフォルトを管理

このエンティティタイプとバンドルの組み合わせのデフォルトパネルディスプレイの管理を許可します。

Panelizer [entity_type] [bundle] 概要を管理

エンティティタイプ/バンドルのPanelizer概要ページへのアクセスを許可します。エンティティにPanelizerタブを表示するために必要です。

Panelizer [entity_type] [bundle] 設定を管理

個々のエンティティの一般的なPanelizer設定の変更を許可します。

Panelizer [entity_type] [bundle] レイアウトを管理

個々のエンティティのパネルレイアウトの変更を許可します。

Panelizer [entity_type] [bundle] コンテンツを管理

個々のエンティティのパネルコンテンツ(ペイン)の変更を許可します。

Panelizer [entity_type] [bundle] コンテキストを管理

個々のエンティティのパネルディスプレイのコンテキストとリレーションシップの変更を許可します。

Hooks 8
hook_panelizer_defaults_override_alter

panelizer_defaults_overrideのカスタマイズを許可します。主にFeatures Overridesモジュールで使用されます。

hook_panelizer_operations_alter

Panelizerオブジェクトにカスタムオペレーションを追加します。オペレーションはpanelizerデフォルトと個々のエンティティの両方で実行できます。データは$panelizer->extra(シリアライズされた配列)に保存できます。

hook_panelizer_entity_plugin_process_alter

CToolsプラグイン初期化中のエンティティプラグイン処理のカスタマイズを許可します。

hook_panelizer_overview_links_alter

エンティティのPanelizer概要ページに表示されるリンクをカスタマイズします。

hook_panelizer_delete_default

デフォルトのpanelizerオブジェクトが削除される直前にアクションを実行します。関連データのクリーンアップに使用します。

hook_panelizer_access

標準の権限を超えてPanelizer管理インターフェースへのアクセスを調整します。アクセスを許可する場合はTRUE、拒否する場合はFALSE、他のアクセスチェックに委ねる場合はNULLを返します。

hook_panelizer_access_alter

定義されたpanelizerアクセス定義を変更します。他のモジュールからのアクセス決定をオーバーライドできます。

hook_panelizer_clone_panelizer

Panelizerオブジェクトがクローンされ、保存される前に変更します。パネルペイン内に参照を保存するモジュールに便利です。

Troubleshooting 6
Panelizerディスプレイを保存するとPathautoがエンティティのパスエイリアスをリセットする

パスエイリアスのリセットを引き起こすバグを修正したPathautoモジュールv7.x-1.3以降に更新してください。

Workbench ModerationとIPEでリビジョンが正しく動作しない

これは対処中の既知の問題です。更新と回避策については https://www.drupal.org/node/2457113 を参照してください。

エンティティページにPanelizerタブが表示されない

ユーザーが'administer panelizer [entity_type] [bundle] overview'権限を持っていることを確認してください。この権限はタブを表示するために必要です。

フルページオーバーライドが機能しない

admin/structure/pagesにアクセスして、エンティティタイプに適切なPage Managerページ(例:Nodeの場合はnode_view)を有効にしてください。

表示モードがPanelizer設定に表示されない

表示モードは、Panelizerに表示される前に、エンティティの「ディスプレイの管理」設定ページのカスタムディスプレイ設定セクションで有効にする必要があります。

リビジョンが多すぎてデータベース容量を消費している

Panelizer 7.x-3.xはリビジョン対応であり、リビジョン用にパネルを複製します。データベースサイズを管理するために、定期的に古いリビジョンをクリーンアップしてください。

Security Notes 3
  • 設定フォームに入力されたCSSコードは安全性のためにフィルタリングされますが、控えめに使用する必要があります
  • エンティティ権限(更新アクセス)は、Panelizer権限に加えて常に必要です
  • IPE(In-Place Editor)は、エンティティ更新権限とPanelizerレイアウト/コンテンツ権限の両方を尊重します