it-swarm-ja.com

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

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

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

8
chinita7

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

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

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

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

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

2
amateur barista

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

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

25
milkovsky

drupal8で

/ admin/structure/views/view/event_related

だろう

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

3
Matoeil

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; 
}
1
Interdruper