function toolbar_view

7.x toolbar.module toolbar_view()

Builds the admin menu as a structured array ready for drupal_render().

Return value

Array of links and settings relating to the admin menu.

1 call to toolbar_view()
toolbar_pre_render in drupal-7.x/modules/toolbar/toolbar.module
Prerender function for the toolbar.

File

drupal-7.x/modules/toolbar/toolbar.module, line 184
Administration toolbar for quick access to top level administration items.

Code

function toolbar_view() {
  global $user;

  $module_path = drupal_get_path('module', 'toolbar');
  $build = array(
    '#theme' => 'toolbar',
    '#attached' => array(
      'js' => array(
        $module_path . '/toolbar.js',
        array(
          'data' => array('tableHeaderOffset' => 'Drupal.toolbar.height'),
          'type' => 'setting'
        ),
      ),
      'css' => array(
        $module_path . '/toolbar.css',
      ),
      'library' => array(array('system', 'jquery.cookie')),
    ),
  );

  // Retrieve the admin menu from the database.
  $links = toolbar_menu_navigation_links(toolbar_get_menu_tree());
  $build['toolbar_menu'] = array(
    '#theme' => 'links__toolbar_menu',
    '#links' => $links,
    '#attributes' => array('id' => 'toolbar-menu'),
    '#heading' => array('text' => t('Administrative toolbar'), 'level' => 'h2', 'class' => 'element-invisible'),
  );

  // Add logout & user account links or login link.
  if ($user->uid) {
    $links = array(
      'account' => array(
        'title' => t('Hello <strong>@username</strong>', array('@username' => format_username($user))),
        'href' => 'user',
        'html' => TRUE,
        'attributes' => array('title' => t('User account')),
      ),
      'logout' => array(
        'title' => t('Log out'),
        'href' => 'user/logout',
      ),
    );
  }
  else {
    $links = array(
      'login' => array(
        'title' => t('Log in'),
        'href' => 'user',
      ),
    );
  }
  $build['toolbar_user'] = array(
    '#theme' => 'links__toolbar_user',
    '#links' => $links,
    '#attributes' => array('id' => 'toolbar-user'),
  );

  // Add a "home" link.
  $link = array(
    'home' => array(
      'title' => '<span class="home-link">Home</span>',
      'href' => '<front>',
      'html' => TRUE,
      'attributes' => array('title' => t('Home')),
    ),
  );
  $build['toolbar_home'] = array(
    '#theme' => 'links',
    '#links' => $link,
    '#attributes' => array('id' => 'toolbar-home'),
  );

  // Add an anchor to be able to toggle the visibility of the drawer.
  $build['toolbar_toggle'] = array(
    '#theme' => 'toolbar_toggle',
    '#collapsed' => _toolbar_is_collapsed(),
    '#attributes' => array('class' => array('toggle')),
  );

  // Prepare the drawer links CSS classes.
  $toolbar_drawer_classes = array(
    'toolbar-drawer',
    'clearfix',
  );
  if (_toolbar_is_collapsed()) {
    $toolbar_drawer_classes[] = 'collapsed';
  }
  $build['toolbar_drawer_classes'] = implode(' ', $toolbar_drawer_classes);

  return $build;
}