Commit ad861e63 authored by John Ross's avatar John Ross Committed by David Eggertsen
Browse files

Issue #2524470 by johnrosswvsu: Menus are duplicating for Manage Fields and Displays

parent eaf1a06d
Loading
Loading
Loading
Loading
+46 −0
Changes for commerce_recurring_ui/commerce_recurring_ui.admin.inc: 46 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -4,6 +4,52 @@
 * Admin UI for recurring entities.
 */

/**
 * Menu callback: display an overview of available types.
 */
function commerce_recurring_ui_types_overview() {
  $header = array(
    t('Entity Type'),
    t('Operations'),
  );

  $rows = array();

  // Loop through all defined recurring entity types.
  foreach (commerce_recurring_types() as $type) {
    $recurring_entity_type = ucfirst(strtr($type, '_', ' '));
    // Build the operation links for the current recurring entity type.
    $links = menu_contextual_links('commerce-recurring-entity-type', 'admin/commerce/recurring-entities/types', array(strtr($type, array('_' => '-'))));

    // Add the recurring entity type's row to the table's rows array.
    $rows[] = array(
      t('@recurring_entity_type', array('@recurring_entity_type' => $recurring_entity_type)),
      theme('links', array('links' => $links, 'attributes' => array('class' => 'links inline operations'))),
    );
  }

  // If no recurring entity types are defined...
  if (empty($rows)) {
    // Add a standard empty row with a link to add a new recurring
    // entity type.
    $rows[] = array(
      array(
        'data' => t('There are no recurring entity types yet.'),
        'colspan' => 2,
      )
    );
  }

  return theme('table', array('header' => $header, 'rows' => $rows));
}

/**
 * Redirects a recurring entity type URL to its fields management page.
 */
function commerce_recurring_ui_entity_type_redirect($type) {
  drupal_goto('admin/commerce/recurring-entities/types/' . strtr($type, '_', '-') . '/fields');
}

/**
* Generates the recurring entity editing form.
*/
+1 −1
Changes for commerce_recurring_ui/commerce_recurring_ui.info: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@ core = 7.x
dependencies[] = commerce_recurring
dependencies[] = views

configure = admin/commerce/recurring-entities
configure = admin/commerce/recurring-entities/types

files[] = includes/views/handlers/commerce_recurring_handler_field_order_operations.inc
files[] = includes/views/handlers/commerce_recurring_ui_handler_field_operations_dropbutton.inc
+42 −10
Changes for commerce_recurring_ui/commerce_recurring_ui.module: 42 added lines, 10 removed lines.
Original line number Diff line number Diff line
@@ -6,6 +6,29 @@
function commerce_recurring_ui_menu() {
  $items = array();

  $items['admin/commerce/recurring-entities/types'] = array(
    'title' => 'Recurring entity types',
    'description' => 'Manage recurring entity types for your store.',
    'page callback' => 'commerce_recurring_ui_types_overview',
    'access arguments' => array('administer commerce_recurring entities'),
    'type' => MENU_LOCAL_TASK,
    'weight' => 0,
    'file' => 'commerce_recurring_ui.admin.inc',
  );
  foreach (commerce_recurring_types() as $type) {
    // Convert underscores to hyphens for the menu item argument.
    $type_arg = strtr($type, '_', '-');
    $title = ucfirst(strtr($type, '_', ' '));

    $items['admin/commerce/recurring-entities/types/' . $type_arg] = array(
      'title' => $title,
      'page callback' => 'commerce_recurring_ui_entity_type_redirect',
      'page arguments' => array($type),
      'access arguments' => array('administer commerce_recurring entities'),
      'file' => 'commerce_recurring_ui.admin.inc',
    );
  }

  $items['admin/commerce/recurring-entities/%commerce_recurring/edit'] = array(
    'title' => 'Edit',
    'page callback' => 'entity_ui_get_form',
@@ -39,6 +62,20 @@ function commerce_recurring_ui_menu() {
  return $items;
}

/**
 * Implements hook_menu_alter().
 */
function commerce_recurring_ui_menu_alter(&$items) {
  // Transform the field UI tabs into contextual links.
  foreach (commerce_recurring_types() as $type) {
    // Convert underscores to hyphens for the menu item argument.
    $type_arg = strtr($type, '_', '-');

    $items['admin/commerce/recurring-entities/types/' . $type_arg . '/fields']['context'] = MENU_CONTEXT_PAGE | MENU_CONTEXT_INLINE;
    $items['admin/commerce/recurring-entities/types/' . $type_arg . '/display']['context'] = MENU_CONTEXT_PAGE | MENU_CONTEXT_INLINE;
  }
}

/**
 * Implements hook_permission().
 */
@@ -56,19 +93,14 @@ function commerce_recurring_ui_permission() {
 * Implements hook_entity_info_alter().
 */
function commerce_recurring_ui_entity_info_alter(&$entity_info) {
  // @TODO Needs an improvement so it shows up in a different page (no tabs).
  foreach (commerce_recurring_types() as $type) {
    $entity_info['commerce_recurring']['bundles'][$type]['admin'] = array(
      'path' => "admin/commerce/recurring-entities/$type",
  // Expose the admin UI for commerce_recurring fields.
  foreach ($entity_info['commerce_recurring']['bundles'] as $type => &$bundle) {
    $bundle['admin'] = array(
      'path' => 'admin/commerce/recurring-entities/types/' . strtr($type, '_', '-'),
      'real path' => 'admin/commerce/recurring-entities/types/' . strtr($type, '_', '-'),
      'access arguments' => array('administer commerce_recurring entities'),
    );
  }

  // Enable the entity API's admin UI.
  $entity_info['commerce_recurring']['admin ui'] = array(
    'path' => 'admin/commerce/recurring-entities',
    'file' => 'commerce_recurring_ui.admin.inc',
  );
}

/**