function google_appliance_menu in Google Search Appliance 6.2
Same name and namespace in other branches
- 5 google_appliance.module \google_appliance_menu()
- 7 google_appliance.module \google_appliance_menu()
Implementation of hook_menu().
File
- ./
google_appliance.module, line 86 - Google Search Appliance (GSA) / Google Mini integration
Code
function google_appliance_menu() {
// Get settings.
$settings = google_appliance_get_settings();
$google_appliance_name = $settings['google_appliance_name'];
$default_client = $settings['default_client'];
$default_collection = $settings['default_collection'];
$tabs_array = $settings['tabs_array'];
$default_tab = $settings['default_tab'];
$default_search_path = $settings['default_search_path'];
$search_module_disabled = !array_key_exists('search', module_list());
$items = array();
$items['admin/settings/google-appliance'] = array(
'title' => t('Google Appliance Settings'),
'description' => t('Configuration for the @name search', array(
'@name' => $google_appliance_name,
)),
'page callback' => 'drupal_get_form',
'page arguments' => array(
'google_appliance_admin_settings',
),
'access arguments' => array(
'administer google appliance search',
),
'type' => MENU_NORMAL_ITEM,
);
// If the search module is not enabled, duplicate its base menu item.
if ($search_module_disabled) {
$items['search'] = array(
'title' => t('Search'),
'load arguments' => array(
'%map',
'%index',
),
'page callback' => 'google_appliance_search_view',
'page arguments' => array(
'search/' . $default_search_path,
$default_client,
$default_collection,
NULL,
),
'access arguments' => array(
'search google appliance',
),
'type' => MENU_CALLBACK,
);
}
// Base callback for the "google-appliance/*" search tabs.
$items['google-appliance'] = array(
'title' => t($google_appliance_name),
'load arguments' => array(
'%map',
'%index',
),
'page callback' => 'google_appliance_search_view',
'page arguments' => array(
'google-appliance',
$default_client,
$default_collection,
1,
),
'access arguments' => array(
'search google appliance',
),
'type' => MENU_CALLBACK,
);
// Support arbitrary client/collection combinations.
$items['google-appliance/%google_appliance_client/%google_appliance_collection/%google_appliance_menu_tail'] = array(
'title callback' => 'google_appliance_catch_all_task_title',
'title arguments' => array(
2,
),
// Use the collection as a title
'load arguments' => array(
'%map',
'%index',
),
'page callback' => 'google_appliance_search_view',
'page arguments' => array(
'google-appliance',
1,
2,
3,
),
'access callback' => 'google_appliance_catch_all_task_access',
'access arguments' => array(
'search any google appliance client/collection',
1,
2,
),
'type' => MENU_LOCAL_TASK,
);
// Add the (optional) additional search tabs.
foreach ($tabs_array as $this_tab) {
$tab = _google_appliance_explode_tab($this_tab);
// Google Appliance module tabs.
$is_default = $tab['client'] == $default_client && $tab['collection'] == $default_collection;
$client_arg = google_appliance_client_to_arg($tab['client']);
$collection_arg = google_appliance_collection_to_arg($tab['collection']);
$path_base = 'google-appliance/' . $client_arg . '/' . $collection_arg;
$item = array(
'title' => t($tab['title']),
'load arguments' => array(
'%map',
'%index',
),
'page callback' => 'google_appliance_search_view',
'page arguments' => array(
$path_base,
$tab['client'],
$tab['collection'],
3,
),
'access arguments' => array(
'search google appliance',
),
'type' => MENU_LOCAL_TASK,
'parent' => 'google-appliance',
);
google_appliance_local_task($items, $path_base, 'google-appliance', $item);
// Search module (or our equivalent) tabs.
$path_base = 'search/' . $tab['path'];
$item = array(
'title' => t($tab['title']),
'load arguments' => array(
'%map',
'%index',
),
'page callback' => 'google_appliance_search_view',
'page arguments' => array(
$path_base,
$tab['client'],
$tab['collection'],
2,
),
'access arguments' => array(
'search google appliance',
),
'type' => MENU_LOCAL_TASK,
);
google_appliance_local_task($items, $path_base, 'search', $item);
}
return $items;
}