Einzelne Taxonomy Terms ausgeben.
am 17.07.2010 - 12:55 Uhr in
Hallo,
ich moechte gerne einen bestimmten term nutzen in der Adresse in meinem Node.
Folgendes ist die Lage:
Ich habe mir ein paar Vocabularies angeleght, und eine davon ist
Lage/Location hier drunter verbergen sich folgende terms
-> Land -->Staedte---> Stadtteil
In meinem erstellten Formular gibt man nun die Postleizahl, Strasse + Hausnummer ein und waehlt dann das land die stadt und den stadteil per taxonomy. Allerdings weiss ich nicht wie ich jetzt hingehe und auf dem node an der stelle der Stadt den Taxonomy term Stadt anzeige der ja im zweiten level der taxonomy ausgewaehlt wurde.
Hat jemand eine idee wie ich den term in meiner node.tpl datei darstellen kann?
Danke
- Anmelden oder Registrieren um Kommentare zu schreiben
Im Node-Objekt ist alles was Du brauchst
am 17.07.2010 - 13:37 Uhr
Hallo dopedwizard,
in der node.tpl ist das komplette Node-Objekt ($node) schon geladen und damit auch die mit dem Node verknüpften Terms.
Du musst "nur" mit PHP die Taxonomy-Infomationen ($node->taxonomy) nach Terms durchsuchen, die mit den entsprechenden Vokabular-IDs verknüpft sind und kannst diese dann nach Herzenlust weiter verarbeiten, ganz ohne die Datenbank mit einer erneuten Abfrage zu belasten.
Viel Erfolg,
Carsten
Danke fuer deinen Post, werde
am 19.07.2010 - 10:32 Uhr
Danke fuer deinen Post, werde mir das mal angucken zumindest weiss ich jetzt schonmal wo ich gucken muss.
Ich habe folgenden link gefunden der helfen koennte allerdings nimmt der alle terms von einer vocabulary ich mochted nur den der zweiten ebene also die Stadt.
http://data.agaric.com/node/1380
Gruss
wiz
Suche in term_hierarchie
am 19.07.2010 - 11:31 Uhr
Zunächst mal wird im besagten Artikel auf folgende Funktion der API verwiesen:
http://api.drupal.org/api/function/taxonomy_node_get_terms_by_vocabulary/6
Diese führt eine Datenbank-Abfrage durch, die aufgrund der schon in $node enthaltenen Informationen eine unnötige Belastung der Datenbank darstellt.
Da Du offensichtlich einen Term suchst, der zu anderen in einer bestimmten hierarchischen Beziehung steht, wird eine Suche benötigt, welche die DB-Tabelle term_hierarchie berücksichtigt. Dies kann unter Einbeziehung der schon in $node vorhandenen Informationen eine einfache SQL-Suche sein oder eine komplexere, welche die DB-Abfrage der oben genannten Funktion um einen entsprechenden Join erweitert. Evtl. mag es aber schon unter den vielen Taxonomie-Modulen eines geben, die dies für Dich erledigen können.
Wenn Du noch in der anfänglichen Entwicklung Deiner Anwendung steckst und nicht in einer Erweiterung – in der besagte Informationen schon umfangreich in die Datenbank eingepflegt wurden –, könntest Du noch über Strategie-Änderungen nachdenken. Evtl. kannst Du mit mehreren Vokabularen arbeiten oder evtl. auch CCK nutzen und auf diesem Weg die hierarchische Beziehung dieser Informationen aus dem einen Vokabular auslagern. Dafür muss man aber das Gesamtbild betrachten auch unter dem Gesichtspunkt der Usability und eventuell künftiger Erweiterungen.
Also Daten sind noch keine
am 19.07.2010 - 12:51 Uhr
Also Daten sind noch keine einegpfelgt.. Es ist so das ich erst das System stehen haben moechte bevor ich das dann mache.
Wie wuerde ich das ueber CCK angehen? Es sollte halt der Taxonomy term sein da in Zukunft dann auch Daten von Usern eingegeben werden (user in diesem fall das Redaktionelle Team) und ich doppelt eingaben vermeiden moechte.)
Vielen
Dank