You are here

public function ClientsHandlerEntityUIController::hook_menu in Web Service Clients 7.3

Provides definitions for implementing hook_menu().

Overrides EntityDefaultUIController::hook_menu

2 calls to ClientsHandlerEntityUIController::hook_menu()
ClientsConnectionEntityUIController::hook_menu in includes/clients.ui.inc
Provides definitions for implementing hook_menu().
ClientsResourceEntityUIController::hook_menu in includes/clients.ui.inc
Provides definitions for implementing hook_menu().
2 methods override ClientsHandlerEntityUIController::hook_menu()
ClientsConnectionEntityUIController::hook_menu in includes/clients.ui.inc
Provides definitions for implementing hook_menu().
ClientsResourceEntityUIController::hook_menu in includes/clients.ui.inc
Provides definitions for implementing hook_menu().

File

includes/clients.ui.inc, line 20
Provides a controller for building an entity overview form.

Class

ClientsHandlerEntityUIController
Default controller for providing handler UI.

Code

public function hook_menu() {

  // Start with what EntityAPI gives us, then doctor it.
  $items = parent::hook_menu();

  // Change the EntityAPI to deal with multiple handler types.
  $items[$this->path . '/add']['title'] = 'Add TODO';
  $items[$this->path . '/add']['page callback'] = 'clients_handler_add_page';
  $items[$this->path . '/add']['page arguments'] = array(
    $this->entityType,
  );

  // Add links. Follow same pattern as node.
  $handler_types_callback = $this->entityInfo['admin ui']['types callback'];
  $handler_types = $handler_types_callback();
  foreach ($handler_types as $type => $type_info) {
    $items[$this->path . '/add/' . $type] = array(
      'title' => 'Create !name',
      'title arguments' => array(
        '!name' => $type_info['label'],
      ),
      'page callback' => 'clients_handler_get_add_form',
      'page arguments' => array(
        $this->entityType,
        $type,
      ),
      'file' => $this->entityInfo['admin ui']['file'],
      // Need to specify file path as this gets used in entity_menu().
      'file path' => drupal_get_path('module', $this->entityInfo['module']),
    );
  }

  // All menu items for handlers have the same access.
  // This means we don't need an access callback.
  foreach ($items as $path => $item) {
    $items[$path]['access callback'] = 'user_access';
    $items[$path]['access arguments'] = array(
      $this->entityInfo['admin ui']['access permission'],
    );
  }
  return $items;
}