You are here

function uc_product_menu in Ubercart 7.3

Same name and namespace in other branches
  1. 5 uc_product/uc_product.module \uc_product_menu()
  2. 6.2 uc_product/uc_product.module \uc_product_menu()

Implements hook_menu().

File

uc_product/uc_product.module, line 14
The product module for Ubercart.

Code

function uc_product_menu() {
  $items = array();
  $items['admin/store/products'] = array(
    'title' => 'Products',
    'description' => 'Administer products, classes, and more.',
    'page callback' => 'drupal_goto',
    'page arguments' => array(
      'admin/store/products/view',
    ),
    'access arguments' => array(
      'administer products',
    ),
    'weight' => -2,
    'position' => 'left',
  );

  // admin/store/products/view is provided by Views.
  $items['admin/store/products/classes'] = array(
    'title' => 'Manage classes',
    'description' => 'Create and edit product node types.',
    'access arguments' => array(
      'administer product classes',
    ),
    'page callback' => 'uc_product_class_default',
    'weight' => -2,
    'file' => 'uc_product.admin.inc',
  );
  $items['admin/store/settings/products'] = array(
    'title' => 'Products',
    'description' => 'Configure product settings.',
    'access arguments' => array(
      'administer products',
    ),
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'uc_product_settings_form',
    ),
    'file' => 'uc_product.admin.inc',
  );

  // Insert subitems into the edit node page for product types.
  $items['node/%node/edit/product'] = array(
    'title' => 'Product',
    'access callback' => 'uc_product_edit_access',
    'access arguments' => array(
      1,
    ),
    'weight' => -10,
    'type' => MENU_DEFAULT_LOCAL_TASK,
    'file' => 'uc_product.admin.inc',
  );
  $features = module_invoke_all('uc_product_feature');
  if (!empty($features)) {
    $items['node/%node/edit/features'] = array(
      'title' => 'Features',
      'page callback' => 'uc_product_features',
      'page arguments' => array(
        1,
      ),
      'access callback' => 'uc_product_feature_access',
      'access arguments' => array(
        1,
      ),
      'weight' => 10,
      'type' => MENU_LOCAL_TASK,
      'file' => 'uc_product.admin.inc',
    );
    $items['node/%node/edit/features/%/%'] = array(
      'page callback' => 'uc_product_feature_edit',
      'page arguments' => array(
        1,
        4,
        5,
      ),
      'access callback' => 'uc_product_feature_access',
      'access arguments' => array(
        1,
      ),
      'file' => 'uc_product.admin.inc',
    );
    $items['node/%node/edit/features/%/%uc_product_feature/delete'] = array(
      'title' => 'Delete feature',
      'page callback' => 'drupal_get_form',
      'page arguments' => array(
        'uc_product_feature_confirm_delete',
        1,
        4,
        5,
      ),
      'access callback' => 'uc_product_feature_access',
      'access arguments' => array(
        1,
      ),
      'file' => 'uc_product.admin.inc',
    );
  }
  $items['admin/store/settings/products/defaults'] = array(
    'access arguments' => array(
      'administer products',
    ),
    'page callback' => 'uc_product_image_defaults',
    'type' => MENU_CALLBACK,
    'file' => 'uc_product.admin.inc',
  );
  $items['admin/store/products/classes/%uc_product_class'] = array(
    'title' => 'Product class',
    'access arguments' => array(
      'administer product classes',
    ),
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'uc_product_class_form',
      4,
    ),
    'file' => 'uc_product.admin.inc',
  );
  $items['admin/store/products/classes/%uc_product_class/edit'] = array(
    'title' => 'Edit',
    'type' => MENU_DEFAULT_LOCAL_TASK,
    'weight' => -5,
    'file' => 'uc_product.admin.inc',
  );
  $items['admin/store/products/classes/%uc_product_class/delete'] = array(
    'access callback' => 'uc_product_class_delete_access',
    'access arguments' => array(
      4,
    ),
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'uc_product_class_delete_confirm',
      4,
    ),
    'file' => 'uc_product.admin.inc',
  );
  return $items;
}