Wie definiere ich eine Vorlagendatei für eine bestimmte Knoten-ID?


7

Ich versuche, mithilfe der Knoten-ID eine benutzerdefinierte Vorlagendatei für einen bestimmten Knoten zu definieren. Ich habe viele Themen gelesen, die besagen, dass ein Knoten erstellt werden soll - X.tpl.php-Datei im Vorlagenordner.

Das ist, was ich tat; Leider ändert sich auch nach mehrmaligem Leeren des Theme-Cache nichts.

Muss ich noch etwas tun?

Ich benutze Drupal 7.


2
Haben Sie Ihrem Themenordner auch eine Kopie der Standarddatei node.tpl.php hinzugefügt? Es ist erforderlich, wenn Sie die Knotenvorlage überhaupt überschreiben möchten
Clive

Ja, habe ich. Ich habe bereits Knoten - content_type_name.tpl.php-Dateien hinzugefügt, um Inhaltstypen zu thematisieren. Mein Problem betrifft nur ein bestimmtes Knoten-ID-Thema.
Ludovic

Clives Punkt ist, dass Sie auch die grundlegende Knoten-Themendatei - node.tpl.php - in Ihrem Themenordner benötigen, damit dies funktioniert. Ihre Namenskonvention ist korrekt (wenn Sie D7 verwenden) und sollte funktionieren, solange node.tpl.php ebenfalls vorhanden ist.
Keva

Entschuldigung, meine Antwort war nicht klar. Ja, ich habe die Datei node.tpl.php in meinen Themenordner kopiert. Ich hätte hinzufügen sollen, dass ich D7 benutze.
Ludovic

Verwenden Sie Basisthemen oder ähnliches, die die Standardeinstellungen von Drupal überschreiben? Ich hatte kürzlich eine sehr ähnliche Situation: Keine meiner Node * .tpl.php-Dateien wurde nach dem erneuten Zwischenspeichern von Drupal abgerufen. Schließlich erinnerte ich mich, dass ich mich auf das Tao-Thema stütze, das Drupals Verhalten aggressiv zurücksetzt. Es ist auch eine gute Sache, um sicherzustellen, dass mindestens node.tpl.php wirklich abgerufen wird.
DimG

Antworten:


0

eine Vorlagendatei page-node-{nid}.tpl.phpin Ihrem Themenverzeichnis. das funktioniert auch.

eine Sache in node-{nodeid}.tpl.php youGebrauch dies.


10

In Drupal 7 wird der Knoten - [Knoten-ID] .tpl.php als Vorlagendatei für Knoten sowie der Knoten - [Knotentyp] .tpl.php verwendet. Es muss nichts anderes getan werden, außer wie Clive in seinem Kommentar schrieb, müssen Sie auch node.tpl.php in dem Verzeichnis haben, das die von Ihrem Thema verwendeten Vorlagendateien enthält.

Beachten Sie, dass es einen Unterschied zwischen Knoten - [Knoten-ID] .tpl.php und Seite - Knoten - [Knoten-ID] .tpl gibt. Letzteres wird auch für Seiten am Knoten / [Knoten-ID] / verwendet. edit oder node / [node-nid] / delete. Siehe den Kommentar am Anfang von theme_get_suggestions () .

Erstellen Sie eine Liste der vorgeschlagenen Themen-Hooks oder Body-Klassen in der Reihenfolge ihrer Spezifität. Für jedes Element des aktuellen Pfads wird ein Vorschlag gemacht, obwohl numerische Elemente nicht zu nachfolgenden Vorschlägen übernommen werden. Zum Beispiel für $base = 'page', http://www.example.com/node/1/edit würde zu den folgenden Vorschlägen und Körperklassen:

 page__node page-node
 page__node __% page-node-%
 page__node__1 page-node-1
 page__node__edit page-node-edit

0

Eine einfache Methode, um den guten Namen für Ihren Override zu ermitteln, ist Drush.

Öffnen Sie eine Befehlszeile, gehen Sie zu sites / default in Ihrem Drupal und geben Sie diese Zeile ein:

drush vset theme_debug 1

drush entfernen vset theme_debug 0 ..

Laden Sie danach Ihren Knoten neu und sehen Sie sich die Codequelle an. Sie sehen alle möglichen Vorschläge von Drupal für alles auf Ihrer Seite (Block, Region, html.tpl.php, page.tpl.php ....)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.