So benennen Sie views-exponed-form.tpl.php pro Ansichtsanzeige

8

Ich habe es versucht, views-exposed-form--"view_name"--"display_name".tpl.phpaber es funktioniert nicht. Ist es möglich, eine Vorlagendatei zu erstellen, die nur für den exponierten Filter einer Ansichtsanzeige gilt?

Ich habe zwei belichtete Filter von zwei verschiedenen Anzeigen in derselben Ansicht und möchte die beiden belichteten Filter durch zwei Vorlagendateien unterschiedlich thematisieren.

chinita7
quelle
Ich versuche es. Aber es funktioniert nicht.
Dies ist keine wirkliche Antwort auf die Frage. Vielleicht ist es besser, die Frage noch einmal zu stellen und zu erklären, wie und warum die vorhandene Lösung bei Ihnen nicht funktioniert.
Neograph734
Dies gibt keine Antwort auf die Frage. Sobald Sie einen ausreichenden Ruf haben, können Sie jeden Beitrag kommentieren . Geben Sie stattdessen Antworten, die nicht vom Fragesteller geklärt werden müssen . - Aus der Rezension
Shawn Conn

Antworten:

2

In Drupal ist alles möglich;)

Wahrscheinlich liefert Views nicht automatisch Vorlagenvorschläge für den exponierten Filter, wie dies für die Felder selbst der Fall ist. Sie müssen also ein bisschen mehr für diesen tun:

  1. Verwenden Sie das Modul devel_themer , um herauszufinden, welche Funktion / Vorlage diesen exponierten Filter thematisiert .
  2. Erstellen Sie einen Präprozessor für diese Themenfunktion / Vorlage. In Ihrem Präprozessor können Sie dann Vorschläge für dynamische Vorlagen einfügen, die je nach gewünschter Bedingung ausgelöst werden. Sie können diesen Präprozessor entweder in der Datei template.php Ihres benutzerdefinierten Themas oder in einem Ihrer benutzerdefinierten Module erstellen. Dieser DO-Artikel führt Sie durch die Erstellung des Vorschlags für dynamische Vorlagen.

Ich gehe davon aus, dass Sie basierend auf einem URL-Pfad verschiedene Ansichten anzeigen. Wenn dies der Fall wäre, können Sie die Drupal- arg()Funktion in Ihrem Präprozessor verwenden, um herauszufinden, welche Ansichtsanzeige Sie gerade anzeigen, und Ihren Vorlagenvorschlag anhand dieser Informationen erstellen.

Sobald Sie Ihre Vorschläge richtig eingerichtet haben, ruft Drupal automatisch die entsprechende Vorlage auf und voilá, Sie haben verschiedene Filtervorlagen basierend auf dem Pfad (oder einer anderen Bedingung, die Sie in Ihrem Präprozessor angegeben haben).

Amateur Barista
quelle
25

Für Drupal 7 können Sie views-exponed-form - view_name - display_name.tpl.php verwenden (Ersetzen Sie Unterstriche durch Bindestriche in Ansichtsname und Anzeigename.)

So hat es bei mir funktioniert.

melkowski
quelle
Das hat bei mir funktioniert. Hier ist ein Beispiel für den Namen meiner exponierten Formularvorlage: views-exponierte-Form - trunk_shows - panel-pane-1.tpl.php
albertski
Auch wenn Ihr ansichtsfreies Formular - Ansichtsname - Anzeigename.tpl.php möglicherweise nicht aufgeführt ist, sollten Sie beim Hinzufügen Ihrer neuen Vorlagendatei auch die Ansicht bearbeiten und auf Erweitert-> Andere-> Thema klicken -> Informationen, und klicken Sie dann auf die Schaltfläche Vorlagendateien erneut scannen.
Kbrinner
Sie benötigen den Anzeigenamen nicht, wenn Sie nicht so spezifisch sein müssen. Für meine Blockansicht "Ereignisansicht" hat die Benennung meiner Vorlagendatei "views-exponed-form - events-view.tpl.php" für mich funktioniert. Danke, @kaimlaluno. Dies sollte wahrscheinlich die akzeptierte Antwort sein.
ProGrammar
3

in drupal8

/ admin / structure / views / view / event_related

wäre

Views-Exposed-Form - event_related.html.twig

Matoeil
quelle
1

Für Drupal 8 werden im Theme-Debug-Modus die verfügbaren Vorlagenvorschläge nicht angezeigt. Mit kint () können Sie herausfinden, welche verfügbar sind, oder in diesem Hook neue erstellen:

/**
 * 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; 
}
Interdruper
quelle