You are here

function custom_breadcrumbs_set_menu_breadcrumb in Custom Breadcrumbs 7.2

Same name and namespace in other branches
  1. 6.2 custom_breadcrumbs.module \custom_breadcrumbs_set_menu_breadcrumb()

Sets the breadcrumb trail to match the menu structure.

This function uses the same approach as in the menu_breadcrumb module.

3 calls to custom_breadcrumbs_set_menu_breadcrumb()
custom_breadcrumbs_init in ./custom_breadcrumbs.module
Implements hook_init().
custom_breadcrumbs_panels_ctools_render_alter in custom_breadcrumbs_panels/custom_breadcrumbs_panels.module
Implements hook_ctools_render_alter().
custom_breadcrumbs_views_views_post_render in custom_breadcrumbs_views/custom_breadcrumbs_views.module
Implements hook_views_post_render().
4 string references to 'custom_breadcrumbs_set_menu_breadcrumb'
custom_breadcrumbs_admin_settings in ./custom_breadcrumbs.admin.inc
Admin Settings.
custom_breadcrumbs_init in ./custom_breadcrumbs.module
Implements hook_init().
custom_breadcrumbs_panels_ctools_render_alter in custom_breadcrumbs_panels/custom_breadcrumbs_panels.module
Implements hook_ctools_render_alter().
custom_breadcrumbs_views_views_post_render in custom_breadcrumbs_views/custom_breadcrumbs_views.module
Implements hook_views_post_render().

File

./custom_breadcrumbs.module, line 891
Main file for the Custom breadcrumbs.

Code

function custom_breadcrumbs_set_menu_breadcrumb() {
  static $menu_id_cache = array();
  $menu_item = menu_get_item();
  if (!$menu_item) {
    return FALSE;
  }
  $ckey = $menu_item['href'];
  if (!isset($menu_id_cache[$ckey])) {
    $result = db_query("SELECT mlid, menu_name FROM {menu_links} WHERE link_path = :link_path", array(
      ':link_path' => $menu_item['href'],
    ));
    $menu_link_menus = array();
    foreach ($result as $menu_link) {
      $menu_link_menus[$menu_link->mlid] = $menu_link->menu_name;
    }
    $menu_id_cache[$ckey] = $menu_link_menus;
  }
  $menu_links = $menu_id_cache[$ckey];
  $use_menus = variable_get('custom_breadcrumbs_menu_list', array());
  foreach ($menu_links as $menu_name) {
    if (in_array($menu_name, $use_menus)) {
      menu_set_active_menu_names($menu_name);
      $breadcrumb = menu_get_active_breadcrumb();
      if (variable_get('custom_breadcrumbs_append_page_title', FALSE) && !drupal_is_front_page()) {
        $title = drupal_get_title();
        if (variable_get('custom_breadcrumbs_append_page_title_no_link', FALSE)) {
          $breadcrumb[] = $title;
        }
        else {
          $breadcrumb[] = l($title, $_GET['q'], array(
            'html' => TRUE,
          ));
        }
      }
      drupal_set_breadcrumb($breadcrumb);
      return TRUE;
    }
  }
}