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