[gelöst] Wie auf CCK Auswahlfelder und Content_taxonomy-Felder in node-inhaltstyp.tpl.php zugreifen?
Eingetragen von PhilB (139)
am 05.04.2010 - 13:16 Uhr in
am 05.04.2010 - 13:16 Uhr in
Hallo zusammen,
ich möchte in meiner node-inhaltstyp.tpl.php auf meine CCK-Felder zugreifen.
Dies macht man mittels folgendem Code:
<?php
print $node->field_tier[0]['value']
?>
Wenn das Feld aber nun ein Auswahlfeld ist bzw. mittels content_taxonomy (die eigentliche Liste ist als Taxonomie angelegt) angelegt wurde, liefert die oben beschriebene Methode nur eine Zahl als Ergebnis. Wie bekomme ich den eigentliche Wert/Name?
Was genau bedeutet die 0 in field_tier[0]['value']. Kann man für Value auch andere "Daten" eintragen? Wo kann ich mehr über diesen Aufbau erfahren?
Vielen Dank im Voraus,
gruß Phil
- Anmelden oder Registrieren um Kommentare zu schreiben
devel
am 05.04.2010 - 14:54 Uhr
Wo kann ich mehr über diesen Aufbau erfahren?
Installiere Dir das Modul Devel und lass Dir die Struktur im Template mittels
<?php dsm($node) ?>
ausgeben.Dann siehst Du, welche Schlüssel die entsprechenden Arrays so alles enthalten und wie die Struktur der Felder aufgebaut ist.
hth,
Stefan
Danke für den Hinweis. Super
am 06.04.2010 - 15:58 Uhr
Danke für den Hinweis. Super Sache.
Aber trotzdem kann ich nicht das Taxonomyfeld ausgeben.
field_tier (Array, 1 element)
0 (Array, 1 element)
value (String, 2 characters ) 24
<?php
print $node->taxonomy[24]['name']
?>
funktioniert leider nicht.
Die 24 ist die ID des Terms
am 06.04.2010 - 18:03 Uhr
Die 24 ist die ID des Terms (tid) in der Tabelle term_data. Da mußt Du mit einer Datenbankabfrage ran:
$name = db_result(db_query('SELECT name FROM {term_data} WHERE tid = %s, $node->field_tier[0]['value']));
print $name;
Beste Grüße
Werner
Danke für den Tipp. Aber ist
am 07.04.2010 - 11:35 Uhr
Danke für den Tipp.
Aber ist das nicht ziemlich aufwendig/Performancelastig wenn ich jede Taxonomie mittels SQL-Abfrage aus der DB hole?
Also geht das nicht einfacher?
Wenn ich
<?php
dsm($node)
?>
taxonomy (Array, 2 elements)
24 (Object) stdClass
o
tid (String, 2 characters ) 24
o
vid (String, 1 characters ) 5
o
name (String, 5 characters ) Hund
o
description (String, 0 characters )
o
weight (String, 1 characters ) 0
51 (Object) stdClass
Auf dieses Feld muss man doch zugreifen können - oder geht das nur mittels Datenbankabfrage?
Vielen Dank,
gruß Phil
Object und Array
am 07.04.2010 - 11:42 Uhr
Hallo.
Dort steht, dass Du ein Array von Objekten (mit diversen Attributen) erhälst.
Dementsprechend musst Du auch Deine Abfrage anpassen:
<?php print $node->taxonomy[24]->name; ?>
.hth,
Stefan
Vielen Dank! Das klappt :-)
am 07.04.2010 - 12:50 Uhr
Vielen Dank!
Das klappt :-)