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 modules/toolbar/toolbar.module
Prerender function for the toolbar.

File

modules/toolbar/toolbar.module, line 189
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',
        $module_path . '/toolbar-print.css' => array(
          'media' => 'print',
        ),
      ),
      '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;
}