Ich arbeite an einer Drupal 7-Website. Ich habe einen benutzerdefinierten Inhaltstyp für Werke erstellt. Ich habe viele Felder, und einige davon beziehen sich auf das Seitenlayout, wie z. B. eine bestimmte Seite für jeden Eintrag. Daher benötige ich eine benutzerdefinierte page.tpl für diesen bestimmten Inhaltstyp.
Also habe ich das Theme Developer-Modul aktiviert und geöffnet und auf den Textbereich geklickt, um den Kandidatennamen für diesen bestimmten Seiteneintrag für den Inhaltstyp abzurufen. und es gibt mir den Bildschirm unten, der mir nichts bedeutet: / Wenn ich auf den Knotenbereich klicke, ist es in Ordnung, es gibt node - work.tpl.php, aber ich brauche für Seite. Ich habe versucht "page - work.tpl.php", es hat nicht funktioniert.
Was vermisse ich?
In template.php hinzufügen:
Sie können weglassen
str_replace()
; Testen Sie, welche Version für Sie am besten geeignet ist.Erstellen Sie dann eine Vorlagendatei mit dem Dateinamen page - [content_type] .tpl.php. (Ersetzen Sie [content_type] durch den Computernamen des Inhaltstyps.)
Sehen http://drupal.org/node/1089656#comment-4426790 .
quelle
Wenn Sie auch die Knoten-ID möchten, verwenden Sie diese.
quelle
Laut den Mitarbeitern von Drupal ist es keine gute Praxis, für jeden Inhaltstyp eine andere Vorlage zu haben. Dies ist der Grund, den Sie nicht
page--work.tpl.php
in der Liste der Kandidatenvorlagendateien finden. Sie sind der Meinung, dass nur die Knotenvorlagendateien unterschiedlich sein sollten. Wenn Sie sich jedoch einhacken möchten, fahren Sie fort.Verwenden Sie den Pfadalias, um einen Pfad basierend auf dem Inhaltstyp einzurichten. Und dann diesen Code einfügen
in die
phptemplate_preprocess_page(&$vars)
Funktion intemplate.php
Themenordner.Sie können den Code jedoch ein wenig ändern, um ihn effizienter zu gestalten.
quelle