function eck_revision_menu in ECK Revision 7
Implements hook_menu().
File
- ./
eck_revision.module, line 69 - ECK Revision module.
Code
function eck_revision_menu() {
module_load_include('inc', 'eck', 'eck.entity_type');
module_load_include('inc', 'eck', 'eck.bundle');
$items = array();
foreach (EntityType::loadAll() as $entity_type) {
$entity_type_info = entity_get_info($entity_type->name);
// Verify if revision are enabled.
if (isset($entity_type_info['revision table']) && !empty($entity_type_info['revision table'])) {
foreach (Bundle::loadByEntityType($entity_type) as $bundle) {
$crud_info = get_bundle_crud_info($entity_type->name, $bundle->name);
if (isset($crud_info['view']) && !empty($crud_info['view'])) {
$info = $crud_info['view'];
$arg_ref = isset($info['entity_id']) ? $info['entity_id'] : 2;
$items[$info['path'] . '/revisions'] = array(
'title' => 'Revisions',
'page callback' => 'eck_revision_revision_overview',
'page arguments' => array(
$entity_type->name,
$arg_ref,
),
'access callback' => '_eck_revision_revision_access',
'access arguments' => array(
'view',
$entity_type->name,
$bundle->name,
),
'weight' => 2,
'type' => MENU_LOCAL_TASK,
'file' => 'eck_revision.pages.inc',
);
$items[$info['path'] . '/revisions/%/view'] = array(
'title' => 'Revisions',
'page callback' => 'eck_revision_revision_view',
'page arguments' => array(
$entity_type->name,
$arg_ref + 2,
),
'access callback' => '_eck_revision_revision_access',
'access arguments' => array(
'view',
$entity_type->name,
$bundle->name,
),
);
$items[$info['path'] . '/revisions/%/revert'] = array(
'title' => 'Revert to earlier revision',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'eck_revision_revision_revert_confirm',
$entity_type->name,
$arg_ref,
$arg_ref + 2,
),
'access callback' => '_eck_revision_revision_access',
'access arguments' => array(
'update',
$entity_type->name,
$bundle->name,
),
'file' => 'eck_revision.pages.inc',
);
$items[$info['path'] . '/revisions/%/delete'] = array(
'title' => 'Delete earlier revision',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'eck_revision_revision_delete_confirm',
$entity_type->name,
$arg_ref,
$arg_ref + 2,
),
'access callback' => '_eck_revision_revision_access',
'access arguments' => array(
'delete',
$entity_type->name,
$bundle->name,
),
'file' => 'eck_revision.pages.inc',
);
}
}
}
}
return $items;
}