bid; $vars['tabs'][$bid] = array( 'title' => $block->subject, 'attributes' => array('id' => 'admin-tab-' . $bid), ); $vars['blocks'][$bid] = $block; // Mark active tab, block. if ($bid == $active) { $vars['blocks'][$bid]->class = 'admin-active'; $vars['tabs'][$bid]['active'] = TRUE; } } } } /** * Theme function for form API element '#type' => 'admin_panes'. */ function template_preprocess_admin_panes(&$vars) { drupal_add_js(drupal_get_path('module', 'admin') . '/includes/admin.toolbar.js'); $vars['layout'] = admin_get_settings('layout'); $vars['labels'] = $vars['panels'] = $vars['others'] = array(); $first = TRUE; foreach (element_children($vars['element']) as $key) { if (!isset($vars['element'][$key]['#access']) || $vars['element'][$key]['#access']) { if (!empty($vars['element'][$key]['#title'])) { $vars['labels'][$key] = l($vars['element'][$key]['#title'], $_GET['q'], array( 'fragment' => 'admin-pane-' . $key, 'attributes' => array( 'class' => array($first ? 'admin-pane-active' : '') ) )); $vars['panels'][$key] = $vars['element'][$key]; $first = FALSE; } else { $vars['others'][] = $vars['element'][$key]; } } } } /** * Generate markup for an admin tab. */ function theme_admin_tab($variables) { $tab = $variables['tab']; $class = $variables['class']; $attr = isset($tab['attributes']) ? drupal_attributes($tab['attributes']) : ''; $class .= !empty($tab['active']) ? ' admin-tab-active' : ''; $title = filter_xss_admin($tab['title']); return "
{$title}
"; } /** * Alternative to menu_tree_output() which uses admin implementations of the * core menu theme functions. */ function theme_admin_drilldown_menu_tree_output($variables) { $tree = $variables['menu']; $output = ''; $items = array(); // Pull out just the menu items we are going to render so that we // get an accurate count for the first/last classes. foreach ($tree as $data) { if (!$data['link']['hidden']) { $items[] = $data; } } $num_items = count($items); foreach ($items as $i => $data) { $extra_class = NULL; if ($i == 0) { $extra_class = 'first'; } if ($i == $num_items - 1) { $extra_class = 'last'; } $link = theme('admin_drilldown_menu_item_link', array('item' => $data['link'])); $in_active_trail = isset($data['link']['in_active_trail']) ? $data['link']['in_active_trail'] : FALSE; if ($data['below']) { $output .= theme('admin_drilldown_menu_item', array('link' => $link, 'has_children' => $data['link']['has_children'], 'menu' => theme('admin_drilldown_menu_tree_output', array('menu' => $data['below'])), 'in_active_trail' => $in_active_trail, 'extra_class' => $extra_class)); } else { $output .= theme('admin_drilldown_menu_item', array('link' => $link, 'has_children' => $data['link']['has_children'], 'menu' => '', 'in_active_trail' => $in_active_trail, 'extra_class' => $extra_class)); } } return $output ? theme('admin_drilldown_menu_tree', array('menu' => $output)) : ''; } /** * Alternative to theme_menu_tree(). * Ensures custom theme-level overrides of theme_menu_tree() do not break * markup expected by admin. */ function theme_admin_drilldown_menu_tree($variables) { $tree = $variables['menu']; return theme_menu_tree($tree); } /** * Alternative to theme_menu_item(). * Ensures custom theme-level overrides of theme_menu_item() do not break * markup expected by admin. */ function theme_admin_drilldown_menu_item($variables) { $link = $variables['link']; $has_children = $variables['has_children']; $menu = $variables['menu']; $in_active_trail = $variables['in_active_trail']; $extra_class = $variables['extra_class']; return theme_menu_item($link, $has_children, $menu, $in_active_trail, $extra_class); } /** * Alternative to theme_menu_item_link(). */ function theme_admin_drilldown_menu_item_link($variables) { $link = $variables['item']; $link['localized_options'] = empty($link['localized_options']) ? array() : $link['localized_options']; $link['localized_options']['html'] = TRUE; $link['localized_options']['purl'] = array('disabled' => TRUE); $link['description'] = check_plain(truncate_utf8(strip_tags($link['description']), 150, TRUE, TRUE)); $link['title'] .= !empty($link['description']) ? "{$link['description']}" : ''; $link['title'] = filter_xss_admin($link['title']); return l($link['title'], $link['href'], $link['localized_options']); }