Den Titel von Nodes im Theme verändern - theme_field__title?
Eingetragen von drcho (72)
am 03.02.2011 - 17:20 Uhr in
am 03.02.2011 - 17:20 Uhr in
Ich nutze Drupal 7 und ich weiß inzwischen, dass ich die Ausgabe von Feldern in meinem themes/meintheme/template.php ändern kann, indem ich eine Funktion meintheme_field__fild_feldname($varialbes) erstelle. Das geht auch mit der Beschreibung, dann mit meintheme_field__body().
Soweit so gut. Aber wie komme ich an das Titel-Feld ran? Ich kann weder die Ausgabereihenfolge meines Titels bestimmen noch die Formatierung. Ich würde nämlich gerne das field_termin über den Titel schreiben, was ja auch keine so unsinnige Sache ist.
Hat irgendjemand eine Idee? Oder in welche Richtung ich denken muss?
- Anmelden oder Registrieren um Kommentare zu schreiben
drupal_set_title($title =
am 03.02.2011 - 17:26 Uhr
drupal_set_title($title = NULL, $output = CHECK_PLAIN)
http://api.drupal.org/api/drupal/includes--bootstrap.inc/function/drupal...
Du könntest Dir z.B., wie ich das mache, verschiedene CCK-Felder laden und diese Variablen dann mit Füllwörtern als Titel ausgeben lassen.
Drupal rockt!!!
Danke für die Funktion, aber
am 03.02.2011 - 17:58 Uhr
Danke für die Funktion, aber irgendwie verstehe ich das nicht. Meinst Du, dass ich so den Titel wegmachen kann? vielleicht kannst Du was detaillierter erklären, ich bin noch nicht so bewandert in Drupal...
Ich würde eigentlich gerne in einer Theme-Funktion meintheme_field__uebertitel() auf den Titel zurückgreifen und diesen dann mit ausgeben. Dafür möchte ich irgendwo (ich dachte in einer Funktion theme_field__title()) nichts ausgeben und den Titel irgendwie speichern, z.B. in einer Variable $titel, auf die ich dann in dieser Funktion zugriff erhalte. Oder halt irgendwie anders. Ist sowas möglich?
drual_get_title(),
am 03.02.2011 - 18:15 Uhr
drual_get_title(), drual_set_title() greift übrigens auf den Titel der ganzen Seite zu, ist also nicht brauchbar bei Nodes in der Teaser-Ansicht. Und genau hier will ich mich ja einklinken...
Problem ist irgendwie, dass ich in meiner theme_field Funktion nicht auf den $node zurückgreifen kann, und im node.tpl.php nicht auf das field :-(
Vielleicht noch irgendwelche Ideen?
Gruß, Michael
Ich nutze Drupal 7 nicht
am 03.02.2011 - 18:20 Uhr
Ich nutze Drupal 7 nicht daher kann ich Dir die genaue Variable nicht nennen.
Installiere Dir bitte das Modul "Devel"!
Dann öffne für Deinen Inhaltstypen das Template und trage
<?php
dsm(get_defined_vars());// devel installieren
?>
ein.
Dann werden Dir, nach dem Reload, alle verfügbaren Variablen ausgegeben - auch der Title. Mit dieser Variable kannst Du dann arbeiten, mit anderen Verknüpfen (was auch immer) und anschließend gibts Du dann über drupal_set_title den neuen Titel aus.
Edit:
Achso - Du willst nicht den Node/Seiten-Titel?
Wie gesagt ich arbeite nicht Drupal 7 - deswegen kann ich Dir da nicht weiter helfen.
Drupal rockt!!!
Danke! die Funktion kannte
am 03.02.2011 - 18:43 Uhr
Danke! die Funktion kannte ich noch nicht.
Ich komme so schon mal aus dem template an den node-title. Allerdings werden die Felder im Template per
<?php
print($content);
?>
eingebunden, so dass ich die Titel entweder darüber oder darunter setzen kann. Und er erscheint zudem auch noch im Content selbst. Also alles noch nicht so optimal... Eine schlechte Lösung wäre nun im template.php
<?php
function meintheme_field__field_obertitel($variables)
{
return "[Platzhalter]" . theme_field($variables);
}
?>
und im node.tpl.php:
<?php
$content = str_replace("[Platzhalter]", $variables['title'], $content);
print $content;
?>
Aber halt nicht optimal. Das muss doch irgendwie möglich sein, dass ich im template.php die Reihenfolge der Ausgabe der Felder ändern kann...
Du kannst Dir doch für Deinen
am 03.02.2011 - 18:56 Uhr
Du kannst Dir doch für Deinen Inhaltstypen ein eigenes Template anlegen (Drupal 6 = node-meininhaltstyp.tpl.php)
Dort kannst Du dann die Content-Varibale rauslöschen und jedes einzelen Feld so ausgeben wie Du willst. Auch die Sortierung kannst Du so vornehmen wie Du möchtest + PHP-Anweisungen + CSS etc.
Dafür nutze aber bitte die Suchfunktion - das wurde schon zigmal durchgekaut.
Gruß Matthias
Drupal rockt!!!
Sorry, ich hab hier einige
am 03.02.2011 - 19:05 Uhr
Sorry, ich hab hier einige Dinge vermischt:
Insofern sorry für den chaotischen Post. Aber: die Fragen 1 und 2 wurden noch nicht zigmal durchgekaut, zumindest hatte ich darauf bisher noch nichts gefunden.
Schönen Abend!
Michael