You are here

function custom_breadcrumbs_taxonomy_generate_breadcrumb in Custom Breadcrumbs 6.2

Same name and namespace in other branches
  1. 7.2 custom_breadcrumbs_taxonomy/custom_breadcrumbs_taxonomy.inc \custom_breadcrumbs_taxonomy_generate_breadcrumb()

Generates a breadcrumb from the taxonomy hierarchy of the term id or vocab id. This will only be called if custom_breadcrumbs_taxonomy_use_hierarchy has been enabled.

Parameters

$tid: A taxonomy id.

$vid: A taxonomy vocabulary id.

$is_term_page: TRUE if the breadcrumb is being prepared for the taxonomy term page, FALSE otherwise.

$objs: An optional array of objects to be used for token replacement.

Return value

The breadcrumb trail.

1 call to custom_breadcrumbs_taxonomy_generate_breadcrumb()
_custom_breadcrumbs_taxonomy_set_breadcrumb in custom_breadcrumbs_taxonomy/custom_breadcrumbs_taxonomy.inc
Sets the breadcrumb using a node's taxonomy.

File

custom_breadcrumbs_taxonomy/custom_breadcrumbs_taxonomy.inc, line 248
Helper functions for custom_breadcrumbs_taxonomy.

Code

function custom_breadcrumbs_taxonomy_generate_breadcrumb($tid, $vid = NULL, $is_term_page = FALSE, $objs = NULL) {
  $term = is_null($tid) ? NULL : taxonomy_get_term($tid);
  $vocabid = !is_null($vid) ? $vid : (is_null($term) ? NULL : $term->vid);
  $types = NULL;
  if (module_exists('token')) {
    $objs['taxonomy'] = $term;
    $types = custom_breadcrumbs_token_types($objs);
  }
  $trail = array();
  if (!in_array($vocabid, variable_get('custom_breadcrumbs_taxonomy_excluded_vocabs', array()))) {
    $trail = _custom_breadcrumbs_taxonomy_home_trail();
    if (!is_null($vocabid)) {
      $vocab_trail = _custom_breadcrumbs_taxonomy_vocabulary_trail($vocabid, $is_term_page, $objs, $types, count($trail));
      $trail = array_merge($trail, $vocab_trail);
    }
    if (!is_null($tid)) {
      $term_trail = _custom_breadcrumbs_taxonomy_term_trail($tid, $is_term_page, $objs, $types, count($trail));
      $trail = array_merge($trail, $term_trail);

      // Optionally remove the current TERM from end of breadcrumb trail.
      if ((!variable_get('custom_breadcrumbs_taxonomy_show_current_term', TRUE) || $is_term_page && !variable_get('custom_breadcrumbs_taxonomy_show_current_term_term', FALSE)) && count($trail) > 1) {
        array_pop($trail);
      }
    }
  }
  return $trail;
}