試しましたviews-exposed-form--"view_name"--"display_name".tpl.php
がうまくいきません。ビューの表示されたフィルターにのみ適用されるテンプレートファイルを作成することは可能ですか?
同じビュー内の2つの異なるディスプレイからの2つの公開されたフィルターがあり、2つの公開されたフィルターを2つのテンプレートファイルによって異なるテーマにしたいと考えています。
試しましたviews-exposed-form--"view_name"--"display_name".tpl.php
がうまくいきません。ビューの表示されたフィルターにのみ適用されるテンプレートファイルを作成することは可能ですか?
同じビュー内の2つの異なるディスプレイからの2つの公開されたフィルターがあり、2つの公開されたフィルターを2つのテンプレートファイルによって異なるテーマにしたいと考えています。
回答:
Drupalではすべてが可能です;)
おそらくビューは、フィールド自体の場合のように、公開されたフィルターのテンプレート提案を自動的に提供しません。したがって、これにはもう少し作業が必要になります。
URLパスに基づいて、さまざまなビュー表示を表示することを想定しています。その場合arg()
は、プリプロセッサでDrupalの関数を使用して、現在表示しているビュー表示を確認し、その情報を使用してテンプレートの提案を作成できます。
提案を適切に設定すると、Drupalは適切なテンプレートとボイラーを自動的に呼び出し、パス(またはプリプロセッサーで指定したその他の条件)に基づいて異なるフィルターテンプレートを使用します。
Drupal 7の場合、views-exposed-form--view_name--display_name.tpl.phpを使用できます(ビュー名と表示名のアンダースコアをダッシュに置き換えます)。
それは私にはそのように働きました。
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;
}