You are here

public function RulesUIController::config_menu in Rules 7.2

Generates menu items to manipulate rules configurations.

Parameters

string $base_path: The path to the overview page from where the configurations are edited.

File

ui/ui.controller.inc, line 23
Contains the UI controller for Rules.

Class

RulesUIController
Controller class for the Rules UI.

Code

public function config_menu($base_path) {
  $items = array();
  $base_count = count(explode('/', $base_path));
  $items[$base_path . '/manage/%rules_config'] = array(
    'title callback' => 'rules_get_title',
    'title arguments' => array(
      'Editing !plugin "!label"',
      $base_count + 1,
    ),
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'rules_ui_form_edit_rules_config',
      $base_count + 1,
      $base_path,
    ),
    'access callback' => 'rules_config_access',
    'access arguments' => array(
      'update',
      $base_count + 1,
    ),
    'type' => MENU_VISIBLE_IN_BREADCRUMB,
    'file' => 'ui/ui.forms.inc',
    'file path' => drupal_get_path('module', 'rules'),
  );
  $items[$base_path . '/manage/%rules_config/add/%rules_element'] = array(
    // Adding another part to the path would hit the menu path-part-limit
    // for base paths like admin/config/workflow/rules. Therefore we have to
    // use this ugly way for setting the title.
    'title callback' => 'rules_menu_add_element_title',
    // Wrap the integer in an array, so it is passed as is.
    'title arguments' => array(
      array(
        $base_count + 4,
      ),
    ),
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'rules_ui_add_element',
      $base_count + 1,
      $base_count + 4,
      $base_count + 3,
      $base_path,
    ),
    'access callback' => 'rules_config_access',
    'access arguments' => array(
      'update',
      $base_count + 1,
    ),
    'load arguments' => array(
      $base_count + 1,
    ),
    'file' => 'ui/ui.forms.inc',
    'file path' => drupal_get_path('module', 'rules'),
  );
  $items[$base_path . '/manage/%rules_config/add/event'] = array(
    'title callback' => 'rules_get_title',
    'title arguments' => array(
      'Adding event to !plugin "!label"',
      $base_count + 1,
    ),
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'rules_ui_add_event_page',
      $base_count + 1,
      $base_path,
    ),
    'access callback' => 'rules_config_access',
    'access arguments' => array(
      'update',
      $base_count + 1,
    ),
    'load arguments' => array(
      $base_count + 1,
    ),
    'file' => 'ui/ui.forms.inc',
    'file path' => drupal_get_path('module', 'rules'),
  );
  $items[$base_path . '/manage/%rules_config/delete/event'] = array(
    // @todo Improve title.
    'title' => 'Remove event',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'rules_ui_remove_event',
      $base_count + 1,
      $base_count + 4,
      $base_path,
    ),
    'access callback' => 'rules_config_access',
    'access arguments' => array(
      'update',
      $base_count + 1,
    ),
    'description' => 'Remove an event from a reaction rule.',
    'file' => 'ui/ui.forms.inc',
    'file path' => drupal_get_path('module', 'rules'),
  );
  $items[$base_path . '/manage/%rules_config/edit/%rules_element'] = array(
    'title callback' => 'rules_get_title',
    'title arguments' => array(
      'Editing !plugin "!label"',
      $base_count + 3,
    ),
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'rules_ui_edit_element',
      $base_count + 1,
      $base_count + 3,
      $base_path,
    ),
    'access callback' => 'rules_config_access',
    'access arguments' => array(
      'update',
      $base_count + 1,
    ),
    'load arguments' => array(
      $base_count + 1,
    ),
    'file' => 'ui/ui.forms.inc',
    'file path' => drupal_get_path('module', 'rules'),
  );
  $items[$base_path . '/manage/%rules_config/autocomplete'] = array(
    'page callback' => 'rules_ui_form_data_selection_auto_completion',
    'page arguments' => array(
      $base_count + 3,
      $base_count + 4,
      $base_count + 5,
    ),
    'access callback' => 'rules_config_access',
    'access arguments' => array(
      'update',
      $base_count + 1,
    ),
    'type' => MENU_CALLBACK,
    'file' => 'ui/ui.forms.inc',
    'file path' => drupal_get_path('module', 'rules'),
  );
  $items[$base_path . '/manage/%rules_config/delete/%rules_element'] = array(
    'title callback' => 'rules_get_title',
    'title arguments' => array(
      'Editing !plugin "!label"',
      $base_count + 3,
    ),
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'rules_ui_delete_element',
      $base_count + 1,
      $base_count + 3,
      $base_path,
    ),
    'access callback' => 'rules_config_access',
    'access arguments' => array(
      'update',
      $base_count + 1,
    ),
    'load arguments' => array(
      $base_count + 1,
    ),
    'file' => 'ui/ui.forms.inc',
    'file path' => drupal_get_path('module', 'rules'),
  );
  $items[$base_path . '/manage/%rules_config/%'] = array(
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'rules_ui_form_rules_config_confirm_op',
      $base_count + 1,
      $base_count + 2,
      $base_path,
    ),
    'access callback' => 'rules_config_access',
    'access arguments' => array(
      'update',
      $base_count + 1,
    ),
    'file' => 'ui/ui.forms.inc',
    'file path' => drupal_get_path('module', 'rules'),
  );
  $items[$base_path . '/manage/%rules_config/clone'] = array(
    'title callback' => 'rules_get_title',
    'title arguments' => array(
      'Cloning !plugin "!label"',
      $base_count + 1,
    ),
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'rules_ui_form_clone_rules_config',
      $base_count + 1,
      $base_path,
    ),
    'access callback' => 'rules_config_access',
    'access arguments' => array(
      'update',
      $base_count + 1,
    ),
    'file' => 'ui/ui.forms.inc',
    'file path' => drupal_get_path('module', 'rules'),
  );
  $items[$base_path . '/manage/%rules_config/export'] = array(
    'title callback' => 'rules_get_title',
    'title arguments' => array(
      'Export of !plugin "!label"',
      $base_count + 1,
    ),
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'rules_ui_form_export_rules_config',
      $base_count + 1,
      $base_path,
    ),
    'access callback' => 'rules_config_access',
    'access arguments' => array(
      'view',
      $base_count + 1,
    ),
    'file' => 'ui/ui.forms.inc',
    'file path' => drupal_get_path('module', 'rules'),
  );
  $items[$base_path . '/manage/%rules_config/execute'] = array(
    'title callback' => 'rules_get_title',
    'title arguments' => array(
      'Executing !plugin "!label"',
      $base_count + 1,
    ),
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'rules_ui_form_execute_rules_config',
      $base_count + 1,
      $base_path,
    ),
    'access callback' => 'rules_config_access',
    'access arguments' => array(
      'update',
      $base_count + 1,
    ),
    'file' => 'ui/ui.forms.inc',
    'file path' => drupal_get_path('module', 'rules'),
  );
  drupal_alter('rules_ui_menu', $items, $base_path, $base_count);
  if (module_exists('rules_scheduler')) {
    $items[$base_path . '/manage/%rules_config/schedule'] = array(
      'title callback' => 'rules_get_title',
      'title arguments' => array(
        'Schedule !plugin "!label"',
        $base_count + 1,
      ),
      'page callback' => 'drupal_get_form',
      'page arguments' => array(
        'rules_scheduler_schedule_form',
        $base_count + 1,
        $base_path,
      ),
      'access callback' => 'rules_config_access',
      'access arguments' => array(
        'update',
        $base_count + 1,
      ),
      'file' => 'rules_scheduler.admin.inc',
      'file path' => drupal_get_path('module', 'rules_scheduler'),
    );
  }
  return $items;
}