[PHP] in einem Block die Felder von taxonomy terms ausgeben
am 22.02.2013 - 12:10 Uhr in
Hi
Ich habe einem Taxonomy term ein Feld hinzugefügt und möchte nun in einem Block darauf zugreifen und es ausgeben.
Wäre es ein node und nicht ein taxonomy term, dann wäre das ganze ziemlich einfach:
<?php
if ( arg(0) == 'node' && is_numeric(arg(1)) && ! arg(2) ) {
$node = node_load(arg(1));
$webcam = ($node->field_webcam_id);
}
?>
<a href="www.custom-domain.com/<?php print $webcam['und'][0]['safe_value']; ?>"></a>Wie kann ich das selbe bei einem taxonomy term machen?
Vielen Dank für die Hilfe!
Gruss Johnny
- Anmelden oder Registrieren um Kommentare zu schreiben

Woher kommt denn der Term,
am 22.02.2013 - 12:49 Uhr
Woher kommt denn der Term, bzw. die TermID? Die könntest Du z.B. als Feld im Node haben. Dann gibt es die Funktion taxonomy_term_load($tid), die ein Taxonomie-Objekt zurück liefert. Dort solltest Du Dein Feld finden.
Beste Grüße
Werner
Vielen Dank für die schnelle
am 22.02.2013 - 13:37 Uhr
Vielen Dank für die schnelle Antwort!
Der Block wird nur auf ein paar Seiten angezeigt. Eine dieser Seiten ist zum Beispiel: domain.com/taxonomy/term/173
Ein Problem ist, dass es ohne den Code:
<?phpif ( arg(0) == 'node' && is_numeric(arg(1)) && ! arg(2) ) {
$node = node_load(arg(1));
} ?>
nicht möglich ist, von einem Block auf $node zuzugreifen und ich nehme an, dass das selbe Problem auch bei einem taxonomy term besteht. (und ich habe nirgend wo rausgefunden wie man das umgeht.)
Da auf den Seiten, auf welchen dieser Block angezeigt wird, kein Node vorhanden ist, kann ich dem Feld "field_webcam_id" die Variable $webcam nicht zuweisen, wie ich es bei einem normalen Node machen kann. (siehe Code im OP)
Wie muss ich also die Funktion taxonomy_term_load($tid) anwenden um das Feld zu finden?
Gruss Johnny
Bei Deinem Beispiel
am 22.02.2013 - 22:37 Uhr
Bei Deinem Beispiel domain.com/taxonomy/term/173 ist arg(0)= taxonomy, arg(1)=term und arg(2) ist eine tid. Damit hast Du die Zahl, die Du brauchst. Ein Block kann sich aber nichts anderswo Informationen beschaffen als nur bei der URL. Wenn Die URL eine Node-Seite ist, und der Node die TID in einem Feld hat, geht es mit Laden des Nodes und dann dem Zugriff auf die TID im Node.
Beste Grüße
Werner