it-swarm.com.de

Anzeigen der Themenüberschreibung in drupal 8

Ich bin neu in drupal 8 und muss eine Ansichtsvorlage überschreiben. Daher habe ich das Theme-Debug in services.yml aktiviert, um das twig) anzuzeigen Name des Vorlagenvorschlags.

Dies ist mein View-Theme-Debug.

<!-- THEME DEBUG -->
<!-- THEME HOOK: 'views_view_unformatted__test_content_view' -->
<!-- FILE NAME SUGGESTIONS:
   x views-view-unformatted--test-content-view.html.twig
   x views-view-unformatted--test-content-view.html.twig
   * views-view-unformatted.html.twig
-->

Dann habe ich die Datei in Vorlagen des Drupal8-Themas erstellt und die Themendatei aufgerufen. Ich habe die Funktion themename_views_view_unformatted__test_content_view () verwendet, um die Datei themename.theme zu überschreiben, aber die Funktion wird nicht aufgerufen.

Gibt es sowieso eine Möglichkeit, die Variablen zu überschreiben, die in die Vorlage twig) kommen? Kann mir jemand einen Vorschlag machen, die Ansichtsvorlage zu überschreiben.

Danke im Voraus.

5
PraveenKumar

In Ihrem Fall ist 'views_view_unformatted__test_content_view' der Themen-Hook im Render-Array. In Drupal 8) können Sie die folgenden Vorverarbeitungsfunktionen verwenden, um die Variablen zu ändern, bevor sie zur Vorlage gelangen:

  • themename_preprocess_views_view_unformatted__test_content_view ()
  • themename_preprocess_views_view_unformatted ()

Weitere Informationen zu Vorverarbeitungsfunktionen sind verfügbar hier .

4
lauriii

Der beste Ausgangspunkt wäre, sich die Themenvorschläge für Ansichten anzusehen, die jedoch derzeit im Kern fehlen. Dies ist ein bekannter Fehler in Drupal 8 Core, an dem derzeit für Version 8.6 gearbeitet wird

Wenn Sie die Funktionalität benötigen, um jetzt die richtigen Themenvorschläge anzuzeigen, haben Sie zwei Möglichkeiten:

  1. Probieren Sie die Patches aus Kommentar Nr. 22 (oder neuer) auf Ausgabe Nr. 2923634 und die Patches aus Ausgabe Nr. 275244 aus. Lesen Sie den Kommentarthread unter # 2923634, um ein umfassendes Verständnis der Vorgänge hier zu erhalten.

  2. Oder verwenden Sie den gut überprüften Patch aus Kommentar Nr. 139 zu Ausgabe Nr. 211874 , der zugunsten von Option 1 oben verschoben wurde.

Ich verwende den Patch aus Option 2 ( # 211874 ) erfolgreich. Bitte beachten Sie, dass dies gegen die Standardempfehlungen für Core Contributors verstößt. Der Grund dafür ist jedoch, dass # 2118743 einen einzigen, gut überprüften und funktionierenden Patch für etwas enthält, das nur während der Entwicklung aktiviert/verwendet wird, und anstatt verschiedene Kombinationen von zwei separaten Patches testen zu müssen, die sich noch in der Entwicklung befinden. Sobald die bessere Lösung ( # 2923634 und # 275244 ) im Kern behoben ist, sollte # 2118743 vermieden werden und nicht mehr benötigt werden.

Wenn Sie diese Lösung mit der Erklärung der Vorlagenvorverarbeitungsfunktionen von @ lauriii kombinieren, sollten Sie in der Lage sein, die benötigten Variablen zu überschreiben.

Wenn dies nicht funktioniert und Sie tiefer graben müssen, können Sie Abfrage- und/oder Ergebnisdaten mit den Views-Laufzeit-Hooks ändern (z. B. hook_views_pre_render oder hook_views_post_execute). Platzieren Sie diese Funktionen in einem module_or_themename.views_execution.inc Datei in Ihrem Drupal 8 benutzerdefinierten Modul oder Thema. Bitte beachten Sie, dass die Dokumentation zu diesen Funktionen für Drupal 8, aber in den meisten Fällen derzeit sehr dünn ist) Die Drupal 7 Beispiele können ebenfalls hilfreich sein.

0
JamesWilson