Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

Den Titel von Nodes im Theme verändern - theme_field__title?

Eingetragen von drcho (72)
am 03.02.2011 - 17:20 Uhr in
  • Themes & Theming
  • Drupal 7.x

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?

‹ taxonomy Link erstellen aus tid 960 Theme - In der Schleife "alpha" und "omega" richtig vergeben ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

drupal_set_title($title =

Eingetragen von Ionit (1802)
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.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für die Funktion, aber

Eingetragen von drcho (72)
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?

  • Anmelden oder Registrieren um Kommentare zu schreiben

drual_get_title(),

Eingetragen von drcho (72)
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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich nutze Drupal 7 nicht

Eingetragen von Ionit (1802)
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.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke! die Funktion kannte

Eingetragen von drcho (72)
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...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du kannst Dir doch für Deinen

Eingetragen von Ionit (1802)
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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sorry, ich hab hier einige

Eingetragen von drcho (72)
am 03.02.2011 - 19:05 Uhr

Sorry, ich hab hier einige Dinge vermischt:

  1. Kann man in der Anzeige von Inhaltstypen auch die Position des Titels ändern? -> scheinbar nicht
  2. Kann man in einer Funktion theme_field auf den Inhalt eines anderen Fields zugreifen? -> leider auch nicht. Hab ich aber erst jetzt festgestellt durch die Debug-Funktion
  3. Kann man im Template die Reihenfolge der Felder ändern? -> ja, das ist dann meine alternative Lösung.

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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
Weiter

Neue Kommentare

  • Zwischenzeitlich habe ich
    vor 4 Stunden 6 Minuten
  • Ok ich habe die anderen
    vor 7 Stunden 51 Minuten
  • Toll
    vor 1 Tag 5 Stunden
  • Vielen Dank
    vor 1 Tag 5 Stunden
  • Vielen Dank für diese sehr
    vor 1 Tag 6 Stunden
  • Wieso willst du dass denn
    vor 1 Tag 9 Stunden
  • Oh, der Klassiker unter den
    vor 1 Tag 10 Stunden
  • Naja ich achte immer drauf on
    vor 2 Tagen 4 Stunden
  • Das ist für mich das typische
    vor 2 Tagen 7 Stunden
  • Ok es scheint zu laufen
    vor 2 Tagen 9 Stunden

Statistik

Beiträge im Forum: 250256
Registrierte User: 20469

Neue User:

  • StevenEness
  • ocvk2810
  • marouane.blel

» Alle User anzeigen

User nach Punkten sortiert:
wla9463
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 20 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association