[gelöst] Nodes per Taxonomy verknüpfen (Alternativvorschläge)
am 17.03.2010 - 01:24 Uhr in
Hallo zusammen,
ich habe das Taxonomie-Modul im Einsatz, um Inhaltstypen zu verschlagworten.
Jetzt würde ich gerne erreichen, dass in den jeweiligen Nodes eine bestimmte Anzahl von Alternativen aufgelistet und direkt verlinkt werden. Frei nach dem Motto "Das hier könnte Dich auch interessieren".
Ich möchte da halt Inhalte aufführen, die mit mindestens einem Schlagwort zum aktuellen Node passen.
Sehr cool wäre hier dann noch eine Gewichtung, so dass man "wichtige" Assoziationen immer oben in der Liste stehen hat. Das könnte natürlich mehrstufig passieren:
1. nach der Anzahl der Übereinstimmungen bei den Schlagworten
2. "organisch": kann sich das System merken, welche Verknüpfungen von den Besuchern gerne angeklickt werden? Das wäre genial. So würden sich Trampelpfade ergeben. Die Besucher bestimmen die Verlinkungen über ihr Nutzungsverhalten.
Ich habe schon das halbe Web nach einem Ansatz durchsucht. Standardmäßig werden ja "nur" die Links zu den Terms selbst ausgegeben, die wiederum ja "nur" Suchergebnisse bilden. Ich würde aber gerne direkt verlinken.
Gibt es da Module, die das Leisten? Welchen Weg sollte man gehen?
Ich bin dankbar für jeden Input.
- Anmelden oder Registrieren um Kommentare zu schreiben

http://drupal.org/node/323329
am 17.03.2010 - 02:01 Uhr
http://drupal.org/node/323329
Perfekt!
am 17.03.2010 - 10:45 Uhr
Danke, similarterms war das, was ich gesucht habe.
Erleuchtung
am 18.03.2010 - 13:20 Uhr
Hab das Modul in die Tonne getreten. Nicht, dass es den Job nicht tun würde, aber ich fand Folgendes doch irgendwie eleganter:
1. Eine Ansicht/View erstellen:
- Felder: Titel, Anrisstext
- Filter: nach Node-Typ und (optional) "Veröffentlicht"
- Argumente:
- Validator Taxonomie-Begriff (hier das zu verwendende Vokabular auswählen)
- Argumenttyp: Begriff-ID
- eine Anzeige vom Typ "Block" hinzufügen
Das sind die wesentlichen Optionen für die Ansicht. Alles Weitere nach eigenem Gusto.
Jetzt haben wir eine Ansicht, die X Einträge vom gewünschten Inhaltstyp anzeigt. Ausgewählt werden hierbei nur Jene, die ebenfalls mit den entsprechenden Begriffen eines bestimmten Vokabulars versehen wurden. Das wird über die Argumente geregelt, welche die Begriffs-IDs als Array erwartet.
2. Anzeige der Ansicht im Beitrag (Node):
Als erstes müssen die Begriffs-IDs des aktuellen Nodes herausgefunden und an ein Array übergeben werden. Im $node-Objekt gibt es die Eigenschaft "taxonomy", die selbst ein Array ist.
Mit folgender Funktion in der template.php kann man daraus die IDs extrahieren:
function phptemplate_get_taxonomy_ids($tax){
if ( is_array($tax) ) {
return array_keys($tax);
} else {
return array();
}
}
Im anzuzeigenden Node-Template wird nun noch die Ansicht/View aufgerufen. Zusammen sieht das dann so aus:
$tids = phptemplate_get_taxonomy_ids($node->taxonomy);$view = views_get_view('NameDerAnsicht');
$display = $view->execute_display('block_1', $tids);
print $display['content'];
'block_1' ist die erste "Anzeige" der "Ansicht" (View) "NameDerAnsicht". Die Zweite könnte man dann mit 'block_2' usw. ansprechen.
Im Grunde kann man dies an beliebigen Stellen in beliebigen Templates verwenden, sofern man ein Array mit den Begriffs-IDs zur Verfügung hat.
Inspiriert und erleuchtet durch http://mustardseedmedia.com/podcast/episode31 und leicht abgewandelt.
Ich drupale noch nicht so lange, sollte ich hier Mist schreiben, bitte bellen.
Andernfalls ist die Anleitung vielleicht ganz hilfreich, für Andere, die ähnliche Probleme haben.
cu