You are here

function nodequeue_menu in Nodequeue 5

Same name and namespace in other branches
  1. 5.2 nodequeue.module \nodequeue_menu()
  2. 6.2 nodequeue.module \nodequeue_menu()
  3. 7.3 nodequeue.module \nodequeue_menu()
  4. 7.2 nodequeue.module \nodequeue_menu()

Implementation of hook_menu

File

./nodequeue.module, line 16

Code

function nodequeue_menu($may_cache) {
  $items = array();
  global $user;
  if ($may_cache) {

    // administrative items
    $access = user_access('administer nodequeue');
    $items[] = array(
      'path' => 'admin/content/nodequeue',
      'title' => t('Node queue'),
      'access' => $access,
      'callback' => 'nodequeue_admin_page',
      'description' => t('Create and maintain simple node queues.'),
      'type' => MENU_NORMAL_ITEM,
    );
    $items[] = array(
      'path' => 'admin/content/nodequeue/list',
      'title' => t('List'),
      'access' => $access,
      'callback' => 'nodequeue_admin_page',
      'weight' => -1,
      'type' => MENU_DEFAULT_LOCAL_TASK,
    );
    $items[] = array(
      'path' => 'admin/content/nodequeue/add',
      'title' => t('Add'),
      'access' => $access,
      'callback' => 'drupal_get_form',
      'callback arguments' => array(
        'nodequeue_queue_form',
      ),
      'type' => MENU_LOCAL_TASK,
    );
  }
  else {
    if ($user && arg(0) == 'node' && is_numeric(arg(1)) && arg(1) > 0 && ($access = user_access('manipulate queues'))) {
      $node = node_load(arg(1));
      if (nodequeue_node_access($node->type)) {
        $items[] = array(
          'path' => 'node/' . arg(1) . '/nodequeue',
          'title' => t('Node queue'),
          'access' => $access,
          'callback' => 'nodequeue_page',
          'callback arguments' => array(
            arg(1),
          ),
          'type' => MENU_LOCAL_TASK,
          'weight' => 5,
        );
      }
    }
    if ($access = user_access('administer nodequeue') && arg(0) == 'admin' && arg(1) == 'content' && arg(2) == 'nodequeue' && is_numeric(arg(3)) && ($queue = nodequeue_load(arg(3)))) {
      drupal_set_title("Nodequeue '{$queue->title}'");
      $items[] = array(
        'path' => 'admin/content/nodequeue/' . arg(3),
        'title' => t('View'),
        'access' => $access,
        'callback' => 'nodequeue_admin_view',
        'callback arguments' => array(
          $queue,
        ),
        'type' => MENU_CALLBACK,
      );
      $items[] = array(
        'path' => 'admin/content/nodequeue/' . arg(3) . '/view',
        'title' => t('View'),
        'access' => $access,
        'callback' => 'nodequeue_admin_view',
        'callback arguments' => array(
          $queue,
        ),
        'weight' => -10,
        'type' => MENU_DEFAULT_LOCAL_TASK,
      );
      $items[] = array(
        'path' => 'admin/content/nodequeue/' . arg(3) . '/edit',
        'title' => t('Edit'),
        'access' => $access,
        'callback' => 'drupal_get_form',
        'callback arguments' => array(
          'nodequeue_queue_form',
          $queue,
        ),
        'type' => MENU_LOCAL_TASK,
      );
      $items[] = array(
        'path' => 'admin/content/nodequeue/' . arg(3) . '/delete',
        'title' => t('Delete'),
        'access' => $access,
        'callback' => 'drupal_get_form',
        'callback arguments' => array(
          'nodequeue_admin_delete',
          $queue,
        ),
        'weight' => 5,
        'type' => MENU_CALLBACK,
      );
      $items[] = array(
        'path' => 'admin/content/nodequeue/' . arg(3) . '/clear',
        'title' => t('Clear'),
        'access' => $access,
        'callback' => 'drupal_get_form',
        'callback arguments' => array(
          'nodequeue_clear_confirm',
          $queue,
        ),
        'type' => MENU_CALLBACK,
      );
      $items[] = array(
        'path' => 'admin/content/nodequeue/' . arg(3) . '/oper',
        'title' => t('Operate'),
        'access' => $access,
        'callback' => 'nodequeue_admin_operate',
        'callback arguments' => array(
          $queue,
        ),
        'type' => MENU_CALLBACK,
      );
    }
  }
  return $items;
}