Nodes kategorisieren
![](https://www.drupalcenter.de/files/imagecache/upic_mini/pictures/picture-2027.jpg)
am 29.08.2007 - 10:59 Uhr in
Hallo Forum,
ich möchte verschiedene Nodes (Stories, Images, Pages) in Kategorien verteilen und diese einzeln anzeigen. Dazu moechte ich innerhalb einer solchen Kategorie auch noch free tagging erlauben. Dazu habe ich zwei Vokabulare angelegt. Das eine hat feste Begriffe (die Kategorien), das andere ist frei erweiterbar (free tagging). Bisher alles kein Problem.
Jetzt habe ich ein Menue gebaut, das was auf die Kategorie filtert und somit diese unterscheiden kann - auch alles super.
Nun werden in den Nodes auch immer schon die Tags aus den Vokabularen angezeigt, aber leider aus alles Vokabularen. Ich moechte aber nur die freien Tags angezeigt haben, und nicht alle.
Geht das irgendwie? (siehe http://netzlos.net/dp5/)
Ich habe mich schon mit contemplate versucht, finde da aber nur die Taxonomy-ID, die ja dynamisch ist.
Hat jemand eine Idee?
Danke und Gruss
Thomas
- Anmelden oder Registrieren um Kommentare zu schreiben
Selektieren über VID
am 29.08.2007 - 11:37 Uhr
Hallo,
das geht schon. Du kannst die Terms zu einem bestimmten Vokabular ausgeben, indem du die ID dieses Vokabulars ermittelst und alle Terms außerhalb dieses Vokabulars beim Aufbauen der Links ignorierst. So werden z.B. nur Terms aus dem Vokabular mit der ID '5' ausgegeben:
$tags = array();
foreach ($node->taxonomy as $term) {
if ($term->vid == 5) {
$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);
IDs sind in Drupal übrigens nie dynamisch, es sind eindeutige, feststehende Nummern für Nodes, Terms, User, u.ä.
Gruß,
Boris
Hallo bb, genau sowas
am 29.08.2007 - 13:58 Uhr
Hallo bb,
genau sowas moechte ich, allerdings verstehe ich den code nicht. kann ich das also nicht mit contemplate machen?
falls nicht, wo muss ich deinen code platzieren, damit er funktioniert?
gruss
thomas
Template
am 29.08.2007 - 14:10 Uhr
Hallo,
normalerweise setzt man so was in die node.tpl.php (statt "print $terms"), aber du kannst es natürlich auch mit Contemplate verwenden. Die einfachste Schablone da lautet ja schlicht
<?php print $body ?>
, da kannst du den Code davor setzen (aber innerhalb<?php ... ?>
).Gruß,
Boris
anders gemacht
am 30.08.2007 - 16:30 Uhr
Danke bb fuer deine Hilfe, aber ich habs jetzt ganz anders gemacht - Drupal bietet ja sooo viele Moeglichkeiten...
Ich habe einfach neue Inhaltstypen angelegt (Kopien von Story), die eigentlich alle gleich sind. Dann lasse ich mit Views nach Typ filtern und auf eine Seite ausgeben - fertig.
Gruss
Thomas
Gefilterte Taxonomieanzeige in der Nodeansicht
am 21.10.2009 - 14:30 Uhr
Muss ich in meiner node-xxx.tpl.php bei Drupal6 etwas anderes eingeben? Bei mir erfolgt hier definitiv keine Ausgabe. Laut:
<?php
print "<pre>";
print_r($node);
print "</pre>";
?>
ist meine [vid]=22. Ich hatte gehofft, wenn ich die hier einsetze funzt es. Das ganze sieht jetzt so aus:
<?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);
?>
Ich nutze auch jeweils 2 Vokabulare pro Inhaltstyp. Eines mit Free-Tagging als Inhaltstyp-Übergreifendes und je eines für den jeweiligen Inhaltstyp.
Beide Vokabulare möchte ich gerne in der Nodeausgabe aber getrennt (gefiltert) dargestellt haben. Ich bekomme es einfach nicht hin. Habe schon einige Sachen aus diversen Posts
(wie hier: http://www.drupalcenter.de/node/13167 oder hier: http://drupal.org/node/133223#comment-634019)
ausprobiert, aber es klappt nicht. Liegt wohl auch daran das ich das nur durch probieren versuchen kann. Ich habe leider nicht so die Ahnung von PHP.
------
Ein Weg bildet sich dadurch,
das er begangen wird.
Danke. Problem geklärt
am 21.10.2009 - 15:55 Uhr
Ok, hat sich erledigt. Es funktioniert doch. Das war nur ein typischer Kopierfehler meinerseits.
Danke.
------
Ein Weg bildet sich dadurch,
das er begangen wird.