You are here

function advanced_menu_core_overview_page in Advanced Menu 7

Same name and namespace in other branches
  1. 6.x core/advanced_menu_core.admin.inc \advanced_menu_core_overview_page()

Menu callback which shows an overview page of all the custom menus and their descriptions.

1 string reference to 'advanced_menu_core_overview_page'
advanced_menu_core_menu_alter in core/advanced_menu_core.module
Implementation of hook_menu_alter().

File

core/advanced_menu_core.admin.inc, line 12
Administrative page callbacks for advanced_menu_core module.

Code

function advanced_menu_core_overview_page() {
  global $user;
  $header = array(
    t('Title'),
    array(
      'data' => t('Operations'),
      'colspan' => '3',
    ),
  );
  if (module_exists('advanced_menu_submenu') && user_access('use sub menus')) {
    $header = array(
      t('Title'),
      array(
        'data' => t('Operations'),
        'colspan' => '4',
      ),
    );
  }
  $rows = array();

  // User #1 has all privileges as does the 'administer menu' permission
  if ($user->uid == 1 || user_access('administer menu')) {
    $result = db_select('menu_custom')
      ->fields('menu_custom')
      ->orderBy('title', 'ASC')
      ->execute();
  }
  else {
    if (module_exists('advanced_menu_menu_admin')) {

      //Build the SELECT conditions based on the current user roles
      $role_ids = array();
      foreach ($user->roles as $key => $value) {
        $role_ids[] = $key;
      }
      $menu_select = db_select('menu_custom', 'c')
        ->fields('c')
        ->condition('r.rid', $role_ids, 'IN')
        ->orderBy('c.title', 'ASC');
      $menu_select
        ->join('advanced_menu_menu_admin_roles', 'r', 'r.menu_name = c.menu_name');
      $result = $menu_select
        ->execute();
    }
  }
  foreach ($result as $menu) {
    $row = array(
      theme('menu_admin_overview', array(
        'title' => $menu->title,
        'name' => $menu->menu_name,
        'description' => $menu->description,
      )),
    );
    $row[] = array(
      'data' => l(t('list links'), 'admin/structure/menu/manage/' . $menu->menu_name),
    );
    $row[] = array(
      'data' => l(t('edit menu'), 'admin/structure/menu/manage/' . $menu->menu_name . '/edit'),
    );
    $row[] = array(
      'data' => l(t('add link'), 'admin/structure/menu/manage/' . $menu->menu_name . '/add'),
    );
    if (module_exists('advanced_menu_submenu') && user_access('use sub menus')) {
      $row[] = array(
        'data' => l(t('add submenu'), 'admin/structure/menu/manage/' . $menu->menu_name . '/add-submenu'),
      );
    }
    $rows[] = $row;
  }
  return theme('table', array(
    'header' => $header,
    'rows' => $rows,
  ));
}