Entity Pager
Viewsをデータソースとして使用し、エンティティページに前後のナビゲーションリンクを提供します。
entity_pager
インストール
composer require 'drupal/entity_pager:8.x-1.0'
概要
Entity Pagerは、エンティティページに前後のナビゲーションを提供するDrupalモジュールで、ユーザーが一覧ページに戻ることなく一連のエンティティを閲覧できるようにします。このモジュールはViewsを活用してナビゲーション対象のエンティティセットを定義するため、高い柔軟性とカスタマイズ性を備えています。
このモジュールは、Entity Pagerスタイルプラグインを使用したViewsブロックを作成することで動作します。エンティティページに配置すると、Viewの結果セット内での現在位置を自動的に判定し、前後のエンティティへのナビゲーションリンクを表示します。また、一覧ページやその他のURLへ戻るためのオプションの「すべて」リンクもサポートしています。
Entity PagerはリンクテキストやURLでのトークン置換をサポートしており、現在のエンティティに基づく動的なコンテンツを実現できます。また、Viewsのリレーションシップと連携して、特定ブランドの全製品をナビゲートするなど、関連エンティティ間の移動も可能です。
Features
- あらゆるエンティティページ(Node、ユーザー、Taxonomy Termなど)に前後のナビゲーションリンクを提供
- Viewsをデータソースとして使用し、エンティティの並び順やフィルタリングを完全に制御可能
- HTMLとトークン置換をサポートするカスタマイズ可能なリンクテキスト
- 一覧ページや関連エンティティページへ戻るための設定可能な「すべて」リンク
- Viewsのリレーションシップをサポートし、関連エンティティ間のナビゲーションが可能
- 最後のエンティティから最初へ、またはその逆へループする循環ページング機能
- 位置カウンターのオプション表示(例:「5件中2件目」)
- 最初/最後のエンティティで無効化されたナビゲーションリンクを表示または非表示にするオプション
- 素早いセットアップのためのデモ用ビューとブロックを同梱
- 適切な言語処理による多言語サイトのサポート
Use Cases
ブログ記事のナビゲーション
ブログ記事に前後のリンクを追加し、読者が時系列順に記事を簡単にナビゲートできるようにします。公開済みのArticle Nodeを日付順に並べたViewを作成し、スタイルをEntity Pagerに設定して、記事のNodeページにブロックを配置します。
商品カタログの閲覧
顧客がカテゴリ内の商品を閲覧できるようにします。商品カテゴリのコンテキストフィルターを持つViewを作成し、Entity Pagerスタイルを使用すると、ユーザーは現在のカテゴリ内のすべての商品をナビゲートできます。
ポートフォリオナビゲーション
訪問者がポートフォリオ項目やケーススタディを閲覧できるようにします。「すべて」リンクは[site:url]/portfolioのようなトークンを使用してポートフォリオのランディングページに戻るよう設定できます。
エンティティ参照を使用した関連エンティティのナビゲーション
特定のブランドに属する商品をナビゲートします。Viewsのリレーションシップと「すべて」リンクのエンティティ参照トークン(例:[node:field_brand])を使用すると、ユーザーには「前へ - ブランド名 - 次へ」と表示され、ブランド名をクリックするとブランドページに戻ります。
フォトギャラリーの閲覧
ユーザーが前後のナビゲーションで写真を1枚ずつ表示できるようにします。カウント表示機能により「25枚中3枚目」のように表示され、ユーザーはギャラリー内での位置を把握できます。
ドキュメントの順次閲覧
ユーザーをドキュメントページに順番に誘導します。循環ページングを有効にすると、最後のページの後に最初のページに戻り、連続した読書体験を作成できます。
Tips
- デモビュー「Entity Pager Example」を開始点として使用してください - 有効にしてその設定を確認することで、モジュールの動作を理解できます
- すべてのエンティティをナビゲーションに含めるには、ビューのページャー設定で「1ページあたりのアイテム数」を0(無制限)に設定してください
- 大きな結果セットでパフォーマンスを向上させるには、ビューに適切なキャッシュを追加することを検討してください
- カスタムスタイリングのためにリンクラベルでHTMLを使用できます(例:'<span class="icon-prev"></span> 前へ')
- 「すべて」リンクURLにエンティティ参照トークンを使用する場合、リンクテキストにも同じトークンを使用すると、参照されたエンティティのタイトルが自動的に表示されます
- ビューはブロック表示である必要があります - Entity Pagerはエンティティページに表示することを目的としているため、ページ表示は通常使用されません
Technical Details
Troubleshooting 4
エンティティのIDフィールド(例:NodeのnidがViewのフィールドに含まれていることを確認してください。現在位置を判定するために、ビューはエンティティIDを返す必要があります。また、現在のエンティティがビューのベースエンティティタイプと一致していることを確認してください。
Viewのソート順を確認してください。Entity Pagerはビューの結果順序を使用して前後のエンティティを決定します。ビューが正しくソートされていることを確認してください。
Tokenモジュールがインストールされていることを確認してください。トークン置換は、前/次リンクでは前/次のエンティティから、「すべて」リンクでは現在のページエンティティからのエンティティコンテキストを使用します。
Entity Pagerは、現在のエンティティがビューの結果に含まれている場合のみ表示されます。ビューのフィルターに現在のエンティティが含まれていること、および権限によって表示が許可されていることを確認してください。