function file_entity_menu in File Entity (fieldable files) 7.3
Same name and namespace in other branches
- 7 file_entity.module \file_entity_menu()
- 7.2 file_entity.module \file_entity_menu()
Implements hook_menu().
File
- ./
file_entity.module, line 118 - Extends Drupal file entities to be fieldable and viewable.
Code
function file_entity_menu() {
// File Configuration
// @todo Move this back to admin/config/media/file-types in Drupal 8 if
// MENU_MAX_DEPTH is increased to a value higher than 9.
$items['admin/structure/file-types'] = array(
'title' => 'File types',
'description' => 'Manage settings for the type of files used on your site.',
'page callback' => 'file_entity_list_types_page',
'access arguments' => array(
'administer file types',
),
'file' => 'file_entity.admin.inc',
);
$items['admin/structure/file-types/add'] = array(
'title' => 'Add file type',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'file_entity_file_type_form',
),
'access arguments' => array(
'administer file types',
),
'type' => MENU_LOCAL_ACTION,
'file' => 'file_entity.admin.inc',
);
$items['admin/structure/file-types/manage/%file_type'] = array(
'title' => 'Manage file types',
'description' => 'Manage settings for the type of files used on your site.',
);
$items['admin/structure/file-types/manage/%file_type/enable'] = array(
'title' => 'Enable',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'file_entity_type_enable_confirm',
4,
),
'access arguments' => array(
'administer file types',
),
'file' => 'file_entity.admin.inc',
'type' => MENU_CALLBACK,
);
$items['admin/structure/file-types/manage/%file_type/disable'] = array(
'title' => 'Disable',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'file_entity_type_disable_confirm',
4,
),
'access arguments' => array(
'administer file types',
),
'file' => 'file_entity.admin.inc',
'type' => MENU_CALLBACK,
);
$items['admin/structure/file-types/manage/%file_type/revert'] = array(
'title' => 'Revert',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'file_entity_type_revert_confirm',
4,
),
'access arguments' => array(
'administer file types',
),
'file' => 'file_entity.admin.inc',
'type' => MENU_CALLBACK,
);
$items['admin/structure/file-types/manage/%file_type/delete'] = array(
'title' => 'Delete',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'file_entity_type_delete_confirm',
4,
),
'access arguments' => array(
'administer file types',
),
'file' => 'file_entity.admin.inc',
'type' => MENU_CALLBACK,
);
$items['admin/content/file'] = array(
'title' => 'Files',
'description' => 'Manage files used on your site.',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'file_entity_admin_file',
),
'access arguments' => array(
'administer files',
),
'type' => MENU_LOCAL_TASK | MENU_NORMAL_ITEM,
'file' => 'file_entity.admin.inc',
);
$items['admin/content/file/list'] = array(
'title' => 'List',
'type' => MENU_DEFAULT_LOCAL_TASK,
);
// general view, edit, delete for files
$items['file/add'] = array(
'title' => 'Add file',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'file_entity_add_upload',
array(),
),
'access callback' => 'file_entity_access',
'access arguments' => array(
'create',
),
'file' => 'file_entity.pages.inc',
);
if (module_exists('plupload') && module_exists('multiform')) {
$items['file/add']['page arguments'] = array(
'file_entity_add_upload_multiple',
);
}
$items['file/add/upload'] = array(
'title' => 'Upload',
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => -10,
);
$items['file/add/upload/file'] = array(
'title' => 'File',
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => -10,
);
$items['file/add/upload/archive'] = array(
'title' => 'Archive',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'file_entity_upload_archive_form',
),
'access arguments' => array(
'administer files',
),
'file' => 'file_entity.pages.inc',
'type' => MENU_LOCAL_TASK,
'weight' => -5,
);
$items['file/%file'] = array(
'title callback' => 'entity_label',
'title arguments' => array(
'file',
1,
),
// The page callback also invokes drupal_set_title() in case
// the menu router's title is overridden by a menu link.
'page callback' => 'file_entity_view_page',
'page arguments' => array(
1,
),
'access callback' => 'file_entity_access',
'access arguments' => array(
'view',
1,
),
'file' => 'file_entity.pages.inc',
);
$items['file/%file/view'] = array(
'title' => 'View',
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => -10,
);
$items['file/%file/usage'] = array(
'title' => 'Usage',
'page callback' => 'file_entity_usage_page',
'page arguments' => array(
1,
),
'access callback' => 'file_entity_access',
'access arguments' => array(
'update',
1,
),
'type' => MENU_LOCAL_TASK,
'context' => MENU_CONTEXT_PAGE,
'file' => 'file_entity.pages.inc',
);
$items['file/%file/download'] = array(
'title' => 'Download',
'page callback' => 'file_entity_download_page',
'page arguments' => array(
1,
),
'access callback' => 'file_entity_access',
'access arguments' => array(
'download',
1,
),
'file' => 'file_entity.pages.inc',
'type' => MENU_CALLBACK,
);
$items['file/%file/edit'] = array(
'title' => 'Edit',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'file_entity_edit',
1,
),
'access callback' => 'file_entity_access',
'access arguments' => array(
'update',
1,
),
'weight' => 0,
'type' => MENU_LOCAL_TASK,
'context' => MENU_CONTEXT_PAGE | MENU_CONTEXT_INLINE,
'file' => 'file_entity.pages.inc',
);
$items['file/%file/delete'] = array(
'title' => 'Delete',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'file_entity_delete_form',
1,
),
'access callback' => 'file_entity_access',
'access arguments' => array(
'delete',
1,
),
'weight' => 1,
'type' => MENU_LOCAL_TASK,
'context' => MENU_CONTEXT_PAGE | MENU_CONTEXT_INLINE,
'file' => 'file_entity.pages.inc',
);
// Attach a "Manage file display" tab to each file type in the same way that
// Field UI attaches "Manage fields" and "Manage display" tabs. Note that
// Field UI does not have to be enabled; we're just using the same IA pattern
// here for attaching the "Manage file display" page.
$entity_info = entity_get_info('file');
foreach ($entity_info['bundles'] as $file_type => $bundle_info) {
if (isset($bundle_info['admin'])) {
// Get the base path and access.
$path = $bundle_info['admin']['path'];
$access = array_intersect_key($bundle_info['admin'], drupal_map_assoc(array(
'access callback',
'access arguments',
)));
$access += array(
'access callback' => 'user_access',
'access arguments' => array(
'administer file types',
),
);
// The file type must be passed to the page callbacks. It might be
// configured as a wildcard (multiple file types sharing the same menu
// router path).
$file_type_argument = isset($bundle_info['admin']['bundle argument']) ? $bundle_info['admin']['bundle argument'] : $file_type;
$items[$path] = array(
'title' => 'Edit file type',
'title callback' => 'file_entity_type_get_name',
'title arguments' => array(
4,
),
'page callback' => 'drupal_get_form',
'page arguments' => array(
'file_entity_file_type_form',
$file_type_argument,
),
'file' => 'file_entity.admin.inc',
) + $access;
// Add the 'File type settings' tab.
$items["{$path}/edit"] = array(
'title' => 'Edit',
'type' => MENU_DEFAULT_LOCAL_TASK,
);
// Add the 'Manage file display' tab.
$items["{$path}/file-display"] = array(
'title' => 'Manage file display',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'file_entity_file_display_form',
$file_type_argument,
'default',
),
'type' => MENU_LOCAL_TASK,
'weight' => 3,
'file' => 'file_entity.admin.inc',
) + $access;
// Add a secondary tab for each view mode.
$weight = 0;
$view_modes = array(
'default' => array(
'label' => t('Default'),
),
) + $entity_info['view modes'];
foreach ($view_modes as $view_mode => $view_mode_info) {
$items["{$path}/file-display/{$view_mode}"] = array(
'title' => $view_mode_info['label'],
'page arguments' => array(
'file_entity_file_display_form',
$file_type_argument,
$view_mode,
),
'type' => $view_mode == 'default' ? MENU_DEFAULT_LOCAL_TASK : MENU_LOCAL_TASK,
'weight' => $view_mode == 'default' ? -10 : $weight++,
'file' => 'file_entity.admin.inc',
// View modes for which the 'custom settings' flag isn't TRUE are
// disabled via this access callback. This needs to extend, rather
// than override normal $access rules.
'access callback' => '_file_entity_view_mode_menu_access',
'access arguments' => array_merge(array(
$file_type_argument,
$view_mode,
$access['access callback'],
), $access['access arguments']),
);
}
}
}
$items['admin/config/media/file-settings'] = array(
'title' => 'File settings',
'description' => 'Configure allowed file extensions, default alt and title sources, and the file upload wizard.',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'file_entity_settings_form',
),
'access arguments' => array(
'administer site configuration',
),
'file' => 'file_entity.admin.inc',
);
// Optional devel module integration
if (module_exists('devel')) {
$items['file/%file/devel'] = array(
'title' => 'Devel',
'page callback' => 'devel_load_object',
'page arguments' => array(
'file',
1,
),
'access arguments' => array(
'access devel information',
),
'type' => MENU_LOCAL_TASK,
'file' => 'devel.pages.inc',
'file path' => drupal_get_path('module', 'devel'),
'weight' => 100,
);
$items['file/%file/devel/load'] = array(
'title' => 'Load',
'type' => MENU_DEFAULT_LOCAL_TASK,
);
$items['file/%file/devel/render'] = array(
'title' => 'Render',
'page callback' => 'devel_render_object',
'page arguments' => array(
'file',
1,
),
'access arguments' => array(
'access devel information',
),
'file' => 'devel.pages.inc',
'file path' => drupal_get_path('module', 'devel'),
'type' => MENU_LOCAL_TASK,
'weight' => 100,
);
if (module_exists('token')) {
$items['file/%file/devel/token'] = array(
'title' => 'Tokens',
'page callback' => 'token_devel_token_object',
'page arguments' => array(
'file',
1,
),
'access arguments' => array(
'access devel information',
),
'type' => MENU_LOCAL_TASK,
'file' => 'token.pages.inc',
'file path' => drupal_get_path('module', 'token'),
'weight' => 5,
);
}
}
// Devel generate integration.
if (module_exists('devel_generate')) {
$items['admin/config/development/generate/file'] = array(
'title' => 'Generate files',
'description' => 'Generate a given number of files. Optionally delete current files.',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'file_entity_generate_file_form',
),
'access arguments' => array(
'administer files',
),
'file' => 'file_entity.devel_generate.inc',
);
$items['admin/content/file/generate'] = $items['admin/config/development/generate/file'];
$items['admin/content/file/generate']['type'] = MENU_LOCAL_ACTION;
$items['file/add/generate'] = $items['admin/config/development/generate/file'];
$items['file/add/generate']['title'] = 'Generate';
$items['file/add/generate']['type'] = MENU_LOCAL_TASK;
$items['file/add/generate']['weight'] = 50;
}
return $items;
}