Zugriff auf page--versuch.tpl.php mit mytheme_preprocess_page
Eingetragen von Marshell (56)
am 28.02.2013 - 20:34 Uhr in
am 28.02.2013 - 20:34 Uhr in
Hallo zusammen,
ich versuche mittels:
function mytheme_preprocess_page(&$variables) {
if (isset($variables['node']->type)) {
$nodetype = $variables['node']->type;
$variables['theme_hook_suggestions'][] = 'page__' . $nodetype;
}
}
für einen content type ein extra page-template anzusprechen. Die Templatedatei page--versuch.tpl.php wird über die URL( localhost/website/versuch/test ) gefunden, aber sie wird nicht beim Aufruf eines Contents mit entsprechenden content-type aufgerufen. Das gleiche funktioniert mit der node--versuch.tpl.php wunderbar und eh ich jetzt weiter im Kreis denke, hoffe ich das vllt hier der ein oder andere einen Rat weiss. Ich benutze das Bartik-Theme und ja ... auch der Cache wurde ordnungsgemäß geleert.
Grüsse M
- Anmelden oder Registrieren um Kommentare zu schreiben
Warum nicht per Theme Suggestions?
am 01.03.2013 - 01:36 Uhr
Warum brauchst du da eine eigene Funktion für? Reichen nicht die üblichen Drupal Theme Suggestions aus? Siehe http://drupal.org/node/1089656 - In deinem Fall also so etwas wie page--node--1.tpl.php, du brauchst nur die nid des Contents.
»The rest are based on the internal path of the current page. Do not confuse the internal path to path aliases which are not accounted for.« Dein Dateiname page--versuch.tpl.php dürfte doch gar nicht funktionieren, weil es nicht der interne Pfad ist?
Hey, die template
am 01.03.2013 - 08:46 Uhr
Hey,
die template suggestions bin ich mehrmals durchgegangen, nur leider reicht es nicht aus, da ich gerne für alle nodes eines bestimmten content-type eine page.tpl.php nutzen möchte. Wie gesagt der Alias funktioniert auch nicht, nur der direkte Aufruf des Pfades ohne entsprechenden Node. Es wär also mit einem View, einen variablen Pfad und dem entsprechenden Contextual filter möglich, aber das ist für mich eher eine Notlösung (das gleiche gilt auch für panels).
Ich gehe nun davon aus, daß das entsprechende script überhaupt nicht ausgeführt wird und der fehler eventuell in der template.php liegt ... im script selbst scheint aber alles richtig zu sein.
Grüsse M
Hallo, Zitat: aber sie wird
am 01.03.2013 - 08:52 Uhr
Hallo,
aber sie wird nicht beim Aufruf eines Contents mit entsprechenden content-type aufgerufen
Kann es sein, dass hier nicht eine einzelne Node nicht in ihrer Page-Ansicht geöffnet wird, sondern in einem anderen Kontext (View, Taxonomie, Homepage...)?
Gruß
Christian
Genau, die Page-Ansicht
am 01.03.2013 - 09:03 Uhr
Genau, die Page-Ansicht funktioniert nur mit einem View / Panel. Das ist auch richtig, soweit wie ich das in den Theme suggestions gelesen habe, nur wie bekomme ich jetzt die page--versuch.tpl.php oder auch page--type-versuch.tpl.php (je nach script) zum entsprechenden content-type?
Gruss M
Nö, die
am 01.03.2013 - 09:10 Uhr
Nö, die page--[deininhaltstyp].tpl funktioniert nur wenn die node als page aufgerufen wird. Ansonsten greift nur die node.tpl. Am besten Du installierst Dir devel, dann siehst Du was im entsprechenden Kontext als Suggestion vorgeschlagen wird.
Man sollte nicht immer so
am 01.03.2013 - 09:50 Uhr
Man sollte nicht immer so spät in die Nacht hinein arbeiten! Es lag tatsächlich an der template.php und der dazugehörigen .info ... drupal hat meine .info komplett ignoriert und sie aus einem anderen theme bezogen ... nach dem Löschen des alten Themes und leeren des Caches funktioniert jetzt alles wunderbar und zum content-type versuch wird die passende page--versuch.tpl.php geladen! Sry! Und Danke euch für euer engagement!
Grüsse M