[gelöst] Page Title / Seitentitel für bestimmte Seiten (mit Minimodul!?) verändern / setzen
am 22.12.2010 - 17:23 Uhr in
Hallo,
ich habe folgende Situation:
ich habe eine View mit dem Pfad 'node/%/seite' die jeweils den über den Paramter übergebenen Node auf eine bestimmte Art als Seite ausgibt.
Diese per View erzeugten Seiten sollen nun auch die Metatgs des Nodes ausgeben.
Drupal davon zu überzeugen die Metatags ( per Nodewords ) auszugeben ist mir mittels eines Minimoduls gelungen.
Allerdings den Titel der Seite ( ...) der Seite zu ändern ist mir nicht gelungen.
Zwar kann ich mir die Regel die durch page_title für die jeweiligen Nodes festgelegt wurde abholen und mittels token auch in den korrekten Titel umformen, aber wie geb ich das Teil dann an Drupal zur Einbindung weiter?
nutze ich
drupal_alter('page_title',$title)
und implementiere selber eine Funktion meinmodul_page_title_alter erzeuge ich eine Endlosschleife.
Versuche ich das im Template mittels eines preprocess zu machen wird ( ich denke mal logischer weise) von page_title mit dem Eingetragenen Standard überschrieben.
Irgendwie muss dass doch gehen, ich meine page_title kriegt das ja auch hin, aber trotz lektüre des Source (aus dem ich mir das eine oder andere 'mopsen' musste um den Titel zusammenzubauen) werde ich da irgendwie nicht schlau draus.
Ich hab gerade gesehen dass page_title eine Views integration haben soll. Diese scheint aber nur in der -dev version verfügbar sein. Hat die schon jemand hier getestet udn kann mir dazu Infos geben, was damit geht udn ob damit mein Problem gelöst werden könnte? Ich hab gerade keine Testumgebung zur Verfügung und zu dem generell Bedenken eine -dev Version in ein Kundenprojekt einzubauen.
Für einen kleinen Tipp als Augenöffner was ich falsch mache, bzw wonach ich ggf suchen muss wäre echt hilfreich.
- Anmelden oder Registrieren um Kommentare zu schreiben
drupal_set_title
am 22.12.2010 - 23:42 Uhr
Hallo.
Du kannst doch die Funktion [api:drupal_set_title] verwenden. Die Funktion kannst Du dann (je nach Einsatzwunsch) in eine
*_preprocess_page
oder auch*_preprocess_views
packen und darüber bestimmten Seiten einen selbst zusammengebauten Titel verpassen.Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Lösung
am 06.01.2011 - 17:55 Uhr
ich hab (nach dem ich länger mit anderem beschäftigt war) heute eine Lösung zusammenbekommen.
In meinem Template habe ich eine preprocess_page Funktion erstellt. In der habe ich die bedingungen geprüft für die mein Seitentitel geändert werden soll, und setze dann
$vars['head_title'] = $mein_neuer_titel
Das funktioniert erstmal wie gewünscht.
Aber irgendwie hab ich den eindruck das
a) drupal_set_title() dafür die falsche funktion war.
b) Es eigentlich auch einen schöneren Weg (mittel Modul) geben müßte, damit man ggf noch Regeln etc erstellen kann um den 'Seitentitel' (das was im HTML im Title-tag steht) verändern / einstellen kann.
Das scheint mir gerade für Views nicht wirklich trivial zu sein... oder hab ich da etwas übersehen (Modul o.ä.)?
page_title hilft bei Views ja nciht wirklich weiter
c) Das einzige was möglicherweise in die Richtung geht ist doch Nodewords Pagetitle, und das verlangt 'mal eben' die letzte Beta des Nodewords-Moduls,
die ich nicht auf das Projekt los lasse, solange es da kein Release von gibt.
Naja ich betrachte das Problem daher erstmal als gelöst, ich hab wieder was gelernt :)