Block der Tags(Taxonomy) eines Nodes anzeigt
Eingetragen von nitram079 (2)
am 22.09.2008 - 12:14 Uhr in
am 22.09.2008 - 12:14 Uhr in
Ich versuche gerade einen Block hin zu kriegen, der mir alle tags die ich für den Node vergeben habe anzeigt. Zunächst habe ich den Weg über die views gewählt, jedoch kein Resultat gefunden. Hat jemand eine Idee, wie ich das erreichen kann?
Vielen Dank für Hinweise
- Anmelden oder Registrieren um Kommentare zu schreiben
drupal.org
am 22.09.2008 - 15:53 Uhr
Hallo,
wenn ich dich richtig verstanden habe, dann sollte der Ansatz unter http://drupal.org/node/204265 auch für dich die richtige Lösung bieten.
Viele Grüße,
www.maximago.de
Viele Grüße,
www.maximago.de/technologie/drupal.aspx
taxonomy_node_get_terms() und l()
am 22.09.2008 - 16:39 Uhr
Was dem Code im Link fehlt.
Du ermittelst ueber arg(1) die Terms mit taxonomy_node_get_terms(). Die aus der Funktion
taxonomy_node_get_terms()
zurueckkommenden Terms gibst Du in PHP Code in einer Schleife mittels der Funktion l() zur Anzeige aus.-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Cool - genau was ich gesucht
am 24.09.2008 - 14:29 Uhr
Cool - genau was ich gesucht habe ;)
thx
Ich glaube das ist auch
am 29.11.2008 - 03:48 Uhr
Ich glaube das ist auch genau das was ich suche.
Könntest Du vielleicht den ganzen Code der bei Dir im Block funktioniert mal posten?
Danke!
Terms im Block anzeigen, hier der Code
am 01.12.2008 - 03:44 Uhr
Hier der Code:
<?php
if (arg(0) == 'node' && is_numeric(arg(1)) && !arg(2)) {
$node = node_load(arg(1));
if (count($node->taxonomy) > 0) {
$output = '';
$output .= '<div class="taxonomy">';
foreach ($node->taxonomy as $tid => $term) {
$output .= l($term->name, '/taxonomy/term/' . $tid) . ' ';
}
$output .= '</div>';
}
}
?>
Einen derartigen Block kann man auch mittels eines View erstellen.
Edit:
Man sollte eben nie auf die Schnelle Code zusammenstellen. Der nachfolgende Code sollte nun das tun was beabsichtigt ist und auch das Pfad-Problem ist dabei geklaert.
<?php
if (arg(0) == 'node' && is_numeric(arg(1)) && !arg(2)) {
$node = node_load(arg(1));
if (count($node->taxonomy) > 0) {
$output = '';
$output .= '<div class="taxonomy">';
foreach ($node->taxonomy as $tid => $term) {
$output .= l($term->name, 'taxonomy/term/' . $tid) . ' ';
}
$output .= '</div>';
print $output;
}
}
?>
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Hallo Quiptime, vielen dank
am 02.12.2008 - 01:00 Uhr
Hallo Quiptime,
vielen dank für Deine Hilfe (scheinst ja wirklich fit zu sein in Drupal) aber leider zeigt mir der Block nichts an. Besser gesagt, der Block wird gar nicht angezeigt.
@clown10, Sorry da hatte sich ein Fluechtigkeitsfehler ...
am 02.12.2008 - 01:05 Uhr
@clown10,
Sorry da hatte sich ein Fluechtigkeitsfehler eingeschlichen. Der Code konnte so nicht funktionieren. Ich habe ihn inzwischen nachgebessert mit node_load().
Edit
Bitte die 2. Code-Korrektur in meinem obigen Code beachten.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Super, vielen dank! Sag mal,
am 02.12.2008 - 01:15 Uhr
Super, vielen dank!
Sag mal, Dir scheint das ja sehr leicht zu fallen. Hättest Du Interesse mir bei ein zwei solchen Sachen zu helfen? Ich würde Dir auch etwas dafür bezahlen, da es mir mit Sicherheit viel Zeit erpart?
Problem mit Pfad
am 29.12.2008 - 13:34 Uhr
Hallo, ich habe den oben geposteten Code in einem Block View -wie hier http://drupal.org/node/204265 besprochen- verwendet, jedoch funktionierte bei mir die Ausgabe nicht. Die Terms wurden geladen, aber die Pfade stimmten nicht: http://taxonomy/term/43. Daraufhin hab ich habe den Code angepaßt und es funktionert nun einwandfrei. Jedoch weis ich nicht wie akkurat das ganze ist. Vielleicht könnte sich das jemand nochmal anschauen und ggf. verbessern.
<?php
if (arg(0) == 'node' && is_numeric(arg(1)) && !arg(2)) {
$node = node_load(arg(1));
if (count($node->taxonomy) > 0) {
$output = '';
$output .= '<div class="taxonomy">';
foreach ($node->taxonomy as $tid => $term) {
$output .= l($term->name, taxonomy_term_path($term), array('rel' => 'tag', 'title' => strip_tags($term->description))) . ' ';
}
$output .= '</div>';
}
}
?>
Verstehe ich nicht
am 15.01.2009 - 14:17 Uhr
Hallo zusammen,
ich versuche das gerade nachzustellen, verstehe aber die Anleitungen nicht. Ich habe Drupal 6 mit Views 2 und finde z.B kein Feld "arguments handling", wo ich den genannteten php-Code reinkopieren kann.
Kann mir vielleicht jemand schreiben, welche view ich jetzt genau erzeugen muss (Type Node oder Begriff), und was genau ich jetzt unter "Argumente" klicken muss, und wo an welcher Stelle ich jetzt welchen php-Code (den von der englischen oder von dieser Seite) einsetzten muss.
Das Thema Argumente in Views verstehe ich auch nach zig Versuchen kein Stueck.
Danke und Gruss
Thomas
--
In the Long Run, We Are All Dead
--
In the Long Run, We Are All Dead
Filtern der Ausgabe auf bestimmte Vokabulare
am 07.04.2009 - 16:06 Uhr
Weis jemand wie ich den Code erweitern kann um ein oder mehrere Vokabulare auszuschließen bzw. zu definieren welche angezeigt werden. Ich benutze den Code in einem Block-View. Komischerweise funktionieren in Views die Filter nicht. Ich kann weder nach Node: Typ, noch nach Taxonomie: Name des Vokabulars filtern.
Danke und beste Grüße
Block View nimmt keine Argumente
am 07.04.2009 - 16:48 Uhr
Wenn Du an View Argumente übergeben willst, klappt das im Block nicht. Du mußt dann mittels default argument durch PHP-Code die Argumente heranschaffen (z.B. über den Seitentitel etc).
Gruß
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Vielen Dank! Dass views
am 09.04.2009 - 15:42 Uhr
Vielen Dank! Dass views keine Argumente an einen Block weitergeben kann wusste ich nicht. Wäre es denn mittels default argument möglich dem Block genau das zu übergeben was die Filter für einen Page View leisten können? In meinem Fall müsste ich bestimmte Taxonomy Vokabulare von der Anzeige ausschließen können. Könntest du mir mit dem PHP Code helfen oder mir einen Ansatz geben?
Wer sagt Views kann keine
am 09.04.2009 - 17:05 Uhr
Wer sagt Views kann keine Argumente an Blöcke weitergeben? Blödsinn. In der Doku steht nur das Blöcke keine Argumente haben im Gegensatz von Nodes. node/123 (arg0=node,arg1=123)
Möchte man zb diese Tags eines Nodes anzeigen:
Argumente festlegen:
1. Argument:
Global:Null -> Falls Argument nicht vorhanden -> Standard Argument zur Verfügung stellen -> Fester Eintrag -> node eingeben (Weil die URLs die Form von node/123 haben.)
2. Argument:
Beitrag: Beitrags-ID -> Falls Argument nicht vorhanden -> View ausblenden -> Validator normal
Filtern:
Node veröffentlicht
...
nach Wunsch weitere.
----------------------------------------
http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Ok. Danke für die Antwort.
am 11.04.2009 - 12:04 Uhr
Ok. Danke für die Antwort. Ich habe den Code nun leicht verändert, so das er nur ein bestimmtes vokabular ($vid) aufruft. Jedoch weis ich nicht wie ich ihn erweitern kann, so dass er mehrere vokabulare lädt.
Hat jemand eine Idee wie das gehen könnte?
<?php
if (arg(0) == 'node' && is_numeric(arg(1)) && !arg(2)) {
$vid = 13 ;
$node = node_load(arg(1));
if (count($node->taxonomy) > 0) {
$output = '';
$output .= '<div class="terms_re">';
foreach ($node->taxonomy as $tid => $term) {
if ($term->vid == $vid) {
$output .= '<p>'.
l($term->name, taxonomy_term_path($term), array('rel' => 'tag', 'title' => strip_tags($term->description))) . ' </p>';
}}
$output .= '</div>';
}
}}
?>
Gefilterte Taxonomieazeige in Node.tpl.php
am 25.03.2010 - 09:27 Uhr
Hallo,
ich habe gerade versucht den letzten Code von "Brennes" mit Ausgabe nur eines bestimmten Vokabulares in meine node-xxx.tpl.php einzubauen. Leider habe ich dort eine Fehlermeldung " Parse error: syntax error, unexpected '}' " bekommen. Da ich leider keine Ahnung von php habe habe ich einfach die letzte geschwungene Klammer entfernt. Dann gibt es keine Fehlermeldung mehr, aber es erfolgt auch keine Ausgabe des entsprechenden Vokabulares (bei mir $vid=22;). Das vorherige Skript von "Brennes" ohne Sortierung funktioniert. Ich würde aber gerne auch das Skript mit der Sortierung nutzen, nur wo ist dort der Fehler?
------
Ein Weg bildet sich dadurch,
das er begangen wird.
Problem erledigt
am 21.10.2009 - 17:38 Uhr
Ich habe jetzt hier: http://www.drupalcenter.de/node/4977 etwas gefunden und das ganze dann entsprechend mit:
<?php
$tags = array();
foreach ($node->taxonomy as $term) {
if ($term->vid == 22) {
$tags['taxonomy_term_'. $term->tid] = array(
'title' => $term->name,
'href' => taxonomy_term_path($term),
'attributes' => array('rel' => 'tag', 'title' => strip_tags($term->description))
);
}
}
print theme('links', $tags);
?>
gelöst.
------
Ein Weg bildet sich dadurch,
das er begangen wird.
------
Ein Weg bildet sich dadurch,
das er begangen wird.