webmaster@1: tid; webmaster@1: $names[] = $term->name; webmaster@1: } webmaster@1: webmaster@1: if ($names) { webmaster@1: $title = check_plain(implode(', ', $names)); webmaster@1: drupal_set_title($title); webmaster@1: webmaster@1: switch ($op) { webmaster@1: case 'page': webmaster@1: // Build breadcrumb based on first hierarchy of first term: webmaster@1: $current->tid = $tids[0]; webmaster@1: $breadcrumb = array(); webmaster@1: while ($parents = taxonomy_get_parents($current->tid)) { webmaster@1: $current = array_shift($parents); webmaster@1: $breadcrumb[] = l($current->name, 'taxonomy/term/'. $current->tid); webmaster@1: } webmaster@1: $breadcrumb[] = l(t('Home'), NULL); webmaster@1: $breadcrumb = array_reverse($breadcrumb); webmaster@1: drupal_set_breadcrumb($breadcrumb); webmaster@1: webmaster@1: $output = theme('taxonomy_term_page', $tids, taxonomy_select_nodes($tids, $terms['operator'], $depth, TRUE)); webmaster@1: drupal_add_feed(url('taxonomy/term/'. $str_tids .'/'. $depth .'/feed'), 'RSS - '. $title); webmaster@1: return $output; webmaster@1: break; webmaster@1: webmaster@1: case 'feed': webmaster@1: $channel['link'] = url('taxonomy/term/'. $str_tids .'/'. $depth, array('absolute' => TRUE)); webmaster@1: $channel['title'] = variable_get('site_name', 'Drupal') .' - '. $title; webmaster@1: // Only display the description if we have a single term, to avoid clutter and confusion. webmaster@1: if (count($tids) == 1) { webmaster@1: $term = taxonomy_get_term($tids[0]); webmaster@1: // HTML will be removed from feed description, so no need to filter here. webmaster@1: $channel['description'] = $term->description; webmaster@1: } webmaster@1: webmaster@1: $result = taxonomy_select_nodes($tids, $terms['operator'], $depth, FALSE); webmaster@1: $items = array(); webmaster@1: while ($row = db_fetch_object($result)) { webmaster@1: $items[] = $row->nid; webmaster@1: } webmaster@1: webmaster@1: node_feed($items, $channel); webmaster@1: break; webmaster@1: webmaster@1: default: webmaster@1: drupal_not_found(); webmaster@1: } webmaster@1: } webmaster@1: else { webmaster@1: drupal_not_found(); webmaster@1: } webmaster@1: } webmaster@1: } webmaster@1: webmaster@1: /** webmaster@1: * Render a taxonomy term page HTML output. webmaster@1: * webmaster@1: * @param $tids webmaster@1: * An array of term ids. webmaster@1: * @param $result webmaster@1: * A pager_query() result, such as that performed by taxonomy_select_nodes(). webmaster@1: * webmaster@1: * @ingroup themeable webmaster@1: */ webmaster@1: function theme_taxonomy_term_page($tids, $result) { webmaster@1: drupal_add_css(drupal_get_path('module', 'taxonomy') .'/taxonomy.css'); webmaster@1: webmaster@1: $output = ''; webmaster@1: webmaster@1: // Only display the description if we have a single term, to avoid clutter and confusion. webmaster@1: if (count($tids) == 1) { webmaster@1: $term = taxonomy_get_term($tids[0]); webmaster@1: $description = $term->description; webmaster@1: webmaster@1: // Check that a description is set. webmaster@1: if (!empty($description)) { webmaster@1: $output .= '