Ich wollte page.tpl.php für einen bestimmten Inhaltstyp überschreiben. Ich habe diese Sache ausprobiert, bei mir funktioniert nichts.
page--article.tpl.php
page--node--article.tpl.php
page--node--type--article.tpl.php
page--node-type--article.tpl.php
page--type--article.tpl.php
Aber als ich einen bestimmten Knoten anhand seiner Nummer als Ziel ausgewählt habe, d. H. page--node--8.tpl.php
, hat es gut funktioniert. Ich denke, page--article.tpl.php
hätte funktionieren sollen, aber ich weiß nicht, warum es nicht funktioniert.
Bitte sagen Sie mir, wenn ich es falsch benenne. und wie kann ich solche dinge debuggen. Ich habe gehört, dass ich das Devel-Modul verwenden kann, weiß aber nichts darüber. Ein leichter Hinweis in die richtige Richtung wird geschätzt.
Danke im Voraus
Sie müssen sicherstellen, dass Ihre Vorlage damit umgehen kann ... Ich habe ein Code-Snippet erhalten, das hier für mich funktioniert hat:
http://drupal.org/node/1089656#comment-4426790
<?php
function themeName_preprocess_page(&$vars, $hook) {
if (isset($vars['node'])) {
// If the node type is "blog_madness" the template suggestion will be "page--blog-madness.tpl.php".
$vars['theme_hook_suggestions'][] = 'page__'. $vars['node']->type;
}
}
?>
Haben Sie daran gedacht, den Cache zu löschen (unter Verwalten> Websitekonfiguration> Leistung), damit Drupal Ihre neue Datei "kennt" und diese anstelle der Standardeinstellung verwendet.
Siehe hier auf Löschen zwischengespeicherter Daten
Möglicherweise müssen Sie auch einen Präprozess-Hook hinzufügen (ich habe D7 selbst nicht verwendet, nur 5/6 - denke, das hat sich etwas geändert.) Dieser Beitrag über Drupal Stack Exchange scheint mehr Details zu liefern
Ich bin gerade auf das gleiche Problem gestoßen.
nicht
page - recipe.tpl.php
dies ist natürlich ein Inhaltstyp, der als 'Rezept' bezeichnet wird.
CLEAR IMMER DIE CACHE ...
Gehen Sie zu/admin/config/development/performance und klicken Sie auf die Schaltfläche Cache löschen. Es sollte das erste sein, was Sie tun, wenn Sie Änderungen an der Struktur des Backends vorgenommen haben und nicht wie erwartet angezeigt werden.
Sonst hättest du es fast geschafft
können Sie die Inhaltstypvorlage gestalten.
Schritt 1.Erstellen Sie beispielsweise einen Inhaltstyp: Mein Inhaltstyp ist "fullwidthpage".
Schritt 2. Kopieren Sie page.tpl.php und benennen Sie sie in page - fullwidthpage.tpl im Vorlagenordner um.
Schritt 3. Fügen Sie diesen Code zu template.php hinzu.
function <strong>YOUR_THEME_NAME_HERE</strong>_preprocess_page(&$variables) {
if (isset($variables['node']->type)) {
// If the content type's machine name is "my_machine_name" the file
// name will be "page--my-machine-name.tpl.php".
$variables['theme_hook_suggestions'][] = 'page__' . $variables['node']->type;
}
}
Vergessen Sie nicht zu ändern YOUR_THEME_NAME_HERE
Abhängig davon, was Sie erreichen möchten, gibt es möglicherweise ein paar CSS-Tricks, die Ihnen helfen könnten.
Um beispielsweise CSS-Regeln für einen bestimmten Knotentyp außer Kraft zu setzen, denken Sie daran, dass Ihre Seiten für diesen Knotentyp die Rumpfklasse "node-type-[TYPE]"
haben (dh: .node-type-article
).
Sie können das CSS dann wie folgt überschreiben:
body.node-type-article #selector {}
Ich weiß, dass dies eine alte Frage ist, aber wenn andere hier ankommen, ist die Art, wie ich Inhaltstypen in Drupal 7 überschreibe, folgendermaßen
node - contenttype . tpl
Sie müssen die spezifische Knotenvorlage für den Inhaltstyp überschreiben, wenn sie sich von einer Basisseite unterscheidet. Bitte prüfen Sie das:
http://api.drupal.org/node/19080
Kopieren Sie auf dieser Seite die Elemente, die sich auf der Seite node.tpl.php befinden, und überschreiben Sie sie nach Belieben. Sie können auf den Knoten spezifisch über den Knoten $ zugreifen
Ihre Vorlage für Artikel wäre:
node - article.tpl.php
Sobald dies erstellt wurde, müssen Sie den Cache löschen, um sicherzustellen, dass dies funktioniert.