Block mit Inhalt abhängig zum Begriff (term) der aufgerufenen Seite (node)
Eingetragen von bhna (104)
am 15.08.2007 - 06:25 Uhr in
am 15.08.2007 - 06:25 Uhr in
Wie kann ich einen Block erstellen, der in Abhängigkeit zum term der aufgerufenen node eine Liste von ebenfalls zu diesem term gehörenden nodes anzeigt.
So dass zu einem Artikel entsprechende Bücher aus dem Shop, die dem gleichem term zugeordnet sind, angezeigt werden.
Vielen Dank.
- Anmelden oder Registrieren um Kommentare zu schreiben
Mit dem Taxonomy Block Modul
am 15.08.2007 - 09:08 Uhr
Mit dem Taxonomy Block Modul (http://drupal.org/project/taxonomy_block) kannst du dir solche Blöcke manuell anlegen oder auch mit den Views (http://drupal.org/project/views).
gruß pebosi
gruß pebosi
--
https://pebosi.net
Wenn ich views benutze und
am 15.08.2007 - 09:17 Uhr
Wenn ich views benutze und einen Block anlege wie bekomme ich den Bezug zu dem taxonomy begriff des angezeigetn nodes?
Hm, das könntest du mit
am 15.08.2007 - 09:23 Uhr
Hm, das könntest du mit Argumenten machen.
gruß pebosi
gruß pebosi
--
https://pebosi.net
Danke, auf Argumente bin ich
am 15.08.2007 - 09:39 Uhr
Danke, auf Argumente bin ich nicht gekommen. Allerdings ist mir nicht klar, welche Argument ich hier anwenden muss. Kannst Du mir da noch einen Tipp geben.
Argument handling code
am 15.08.2007 - 10:22 Uhr
Dazu wirst du noch Argument Handling Code benötigen. Ungefähr so:
<?php
if ($type=='block' && arg(0) == 'node' && is_numeric(arg(1))){
$node=node_load(arg(1));
?>
Dann holst du dir zum node die Terms und gibts die im obigen Code als array zurück.
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
md wrote: Dazu wirst du
am 15.08.2007 - 13:06 Uhr
Dazu wirst du noch Argument Handling Code benötigen. Ungefähr so:
<?php
if ($type=='block' && arg(0) == 'node' && is_numeric(arg(1))){
$node=node_load(arg(1));
?>
Dann holst du dir zum node die Terms und gibts die im obigen Code als array zurück.
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
Ich habe es jetzt so gelöst.
$tids = '';
if($type == 'block' && arg(0) == 'node' && is_numeric(arg(1) ) ){
$nid = (int)arg(1);
$terms = taxonomy_node_get_terms($nid);
foreach($terms as $term){
$tids[] = $term->tid;
}
$tids = implode('+', $tids);
}
return array($tids);
Hast recht
am 15.08.2007 - 13:16 Uhr
Stimmt, den node braucht man nicht gar nicht.
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
Allerdings bekomme ich jetzt
am 15.08.2007 - 13:52 Uhr
Allerdings bekomme ich jetzt folgende Fehlermeldung:
user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''') LIMIT 0, 5' at line 1 query: SELECT DISTINCT(node.nid), node.title AS node_title, node.changed AS node_changed FROM node node WHERE (node.type IN ('story')) AND (. '') LIMIT 0, 5 in /opt/lampp/htdocs/drupal/includes/database.mysql.inc on line 172.
wenn ich in dem view einen Filter einrichten will.
Noch ein Problem. Die angezeigte Node wird auch immer im Block selbst mit angezeigt.