View in page.tpl.php identifizieren

am 04.11.2011 - 14:32 Uhr in
Hallo Drupaler,
kurze Problembeschreibung:
Auf einer Seite haben wir beispielsweise 2 unterschiedliche Views, vielleicht so etwas wie "neueste Nachrichten" und "Klatsch und Tratsch"
je nachdem was für eine View angezeigt wird, möchte ich gerne oben auf der Seite ein anderes Logo anzeigen lassen, also ganz einfach in der page.tpl.php
d.h. ich müßte oben in der page.tpl.php die View identifizieren.
Bis jetzt habe ich das immer über die Variable $title gemacht, also ungefähr so:
if($title=="neuestes Nachrichten") dann zeige Logo1
if($title=="Klatsch und Tratsch") dann zeige Logo2
Diese Hilfslösung gefällt mir aber nicht so gut, insbesondere wird es schwieriger, wenn die Variable $title Umlaute enthält.
Deswegen die Frage: gibt es eine andere verläßliche Methode, wie ich in der page.tpl.php unterscheiden kann, welche View gerade angezeigt wird. So etwas wie ne ViewID wäre toll oder auch der maschinenlesbare Name der View.
Bestimmt hat der eine oder andere eine Idee dazu ;-)
Lieben Gruß
Daniela
- Anmelden oder Registrieren um Kommentare zu schreiben
Die View müsste doch eine
am 04.11.2011 - 15:14 Uhr
Die View müsste doch eine eindeutige URL haben, die auch solche Dinge wie Umlaute etc. nicht entalten dürfte. Den Pfad bekommst du über die Funktion
arg()
ran, den könntest du überprüfen. Ist zwar auch nicht sooo die Mega-Lösung, dürfte aber ganz gut funktionieren.schon mal ein guter
am 04.11.2011 - 15:31 Uhr
schon mal ein guter Ansatz
Das dürfte funktionieren.
Es wäre aber interesssant, ob es noch besser geht.
Die URL kann sich ja auch unter Umständen noch ändern.
sowas die die ID oder der Maschinenname wäre optimal.
ich habe aber in der page.tpl.php noch keine Varialble oder kein Array entdeckt, welches diese Dinge beinhaltet.
Vielleicht hat ja noch jemand eine Idee :-)
Lieben Gruß
Daniela
Geh doch mal in die
am 04.11.2011 - 15:59 Uhr
Geh doch mal in die template.php deines Themes und suche dort die Funktion
theme_preprocess_page(&$vars)
bzw. eine entsprechende Variante davon (z. B. "meinTheme_preprocess_page"). Sollte es die noch nicht geben, musst du sie einfügen und danach die Theme-Registry neu aufbauen.dort fügst du dann mal folgendes ein:
drupal_set_message('<pre>' . print_r($vars, 1) . '</pre>');
Beachte, dass die Variable
$vars
bei dir anders heißen kann.Danach rufst du deine Seite mit der View auf. Wenn's keine Ausgabe geben sollte, ruf die Seite nochmal auf.
Damit dürftest du eine Liste mit allen verfügbaren Variablen bekommen und da kannst du mal schauen, ob es etwas für deine Bedürfnisse gibt.
Views identifizieren
am 04.11.2011 - 17:24 Uhr
Hallo Daniela,
Du kannst doch für Deine Views einfach eine views-view.tpl.php nehmen und dort den gesamten Inhalt mit folgendem div umgeben:
<div id="view-<?php if (isset($view)) print $view->vid; ?>"> "gesamter Inhalt" </div>
Dann wird jeder view eine eindeutige ID zugeordnet (z.B.: view-7), die Du dann über css formatieren kannst. Das geht übrigens auch mit nodes in der page.tpl.php
Vielleicht hilft Dir das weiter.
Gruß
Luzzi
Ich habe erst einmal den
am 04.11.2011 - 17:38 Uhr
Ich habe erst einmal den Ansatz von Exterior verfolgt, denn ich hatte schon versucht mit dsm($vars) mir die Variablen, die in der page.tpl.php bekannt sind anzuschauen.
Aber der entscheidende Hinweis ist, dass die bei mir anders heißen, nämlich $variables (da hätte ich auch selbst drauf kommen können).
nun ist es mir möglich, auch schon oben in der page.tpl.php eindeutig die View zu identfizieren.
Also erst einmal vielen Dank für eure Hilfe, ich denke mal, das löst das Problem schon ganz gut :-)