function custom_breadcrumbs_taxonomy_generate_breadcrumb in Custom Breadcrumbs 6.2
Same name and namespace in other branches
- 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;
}