ビュー表示ごとにviews-exposed-form.tpl.phpに名前を付ける方法


8

試しましたviews-exposed-form--"view_name"--"display_name".tpl.phpがうまくいきません。ビューの表示されたフィルターにのみ適用されるテンプレートファイルを作成することは可能ですか?

同じビュー内の2つの異なるディスプレイからの2つの公開されたフィルターがあり、2つの公開されたフィルターを2つのテンプレートファイルによって異なるテーマにしたいと考えています。


いいえ、試みています。しかし、それは機能していません。

これは実際には質問に対する答えではありません。おそらく、もう一度質問して、既存のソリューションが機能しない方法と理由を説明する方が良いでしょう。
Neograph734 2016年

これは質問に対する答えを提供しません。十分な評判を得ると、どの投稿にもコメントできるようになります。代わりに、質問者からの説明を必要としない回答を提供してください。- レビューから
Shawn Conn

回答:


2

Drupalではすべてが可能です;)

おそらくビューは、フィールド自体の場合のように、公開されたフィルターのテンプレート提案を自動的に提供しません。したがって、これにはもう少し作業が必要になります。

  1. devel_themerモジュールを使用して、公開されたフィルターのテーマを設定している関数/テンプレートを見つけます。
  2. そのテーマ関数/テンプレートのプリプロセッサーを作成します。プリプロセッサでは、必要な条件に基づいて起動する動的なテンプレートの提案を挿入できます。このプリプロセッサは、カスタムテーマのtemplate.phpファイルまたはカスタムモジュールの1つに作成できます。このDO記事では、動的なテンプレートの提案を作成する方法を説明します。

URLパスに基づいて、さまざまなビュー表示を表示することを想定しています。その場合arg()は、プリプロセッサでDrupalの関数を使用して、現在表示しているビュー表示を確認し、その情報を使用してテンプレートの提案を作成できます。

提案を適切に設定すると、Drupalは適切なテンプレートとボイラーを自動的に呼び出し、パス(またはプリプロセッサーで指定したその他の条件)に基づいて異なるフィルターテンプレートを使用します。


25

Drupal 7の場合、views-exposed-form--view_name--display_name.tpl.phpを使用できます(ビュー名と表示名のアンダースコアをダッシュ​​に置き換えます)。

それは私にはそのように働きました。


これは私からできました。ここに私の公開フォームテンプレート名の例です:ビュー-露出形- trunk_shows -パネル・ペイン1.tpl.php
albertski

これを行うと、views-exposed-form--view_name--display_name.tpl.phpがリストに表示されない場合がありますが、新しいテンプレートファイルを追加する場合は、ビューも編集する必要があります。[詳細]-> [その他]-> [テーマ]をクリックします。 ->情報をクリックし、[テンプレートファイルの再スキャン]ボタンをクリックします。
kbrinner

特定にする必要がない場合は、表示名は必要ありません。私のブロックビューである「イベントビュー」では、テンプレートファイルに「views-exposed-form--events-view.tpl.php」という名前を付けるとうまくいきました。ありがとう、@ kaimlaluno。これはおそらく受け入れられる答えになるはずです。
ProGrammar 2017年

3

drupal8で

/ admin / structure / views / view / event_related

だろう

views-exposed-form--event_related.html.twig


1

drupal 8の場合、テーマデバッグモードでは利用可能なテンプレートの提案が表示されません。あなたはkint()を使用して利用可能なものを見つけるか、このフックで新しいものを作成できます:

/**
 * Implements template_theme_suggestions_node_HOOK_alter().
 * Add theme suggestions to the view exposed forms.
 */
function YOUR_THEME_theme_suggestions_views_exposed_form_alter(&$suggestions, $vars, $hook) {
  kint($vars['form']['#theme']);
  //$suggestions[] = 'views__exposed__form__' . $anything; 
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.