function eck__entity__menu in Entity Construction Kit (ECK) 7.2
Same name and namespace in other branches
- 7.3 eck.entity.inc \eck__entity__menu()
- 7 eck.entity.inc \eck__entity__menu()
Entity related menu items.
1 call to eck__entity__menu()
- eck__bundle__menu in ./
eck.bundle.inc - This function creates the menu items relevant to bundle administration.
File
- ./
eck.entity.inc, line 10 - All the menus, pages, and functionality related to administering entities.
Code
function eck__entity__menu($entity_type, $bundle) {
$path = eck__entity_type__path();
$menu = array();
// DELETE Bundles.
$menu["{$path}/{$entity_type->name}/{$bundle->name}/delete"] = array(
'title' => "Delete",
'page callback' => "drupal_get_form",
'page arguments' => array(
'eck__bundle__delete_form',
3,
4,
),
'access callback' => 'eck__multiple_access_check',
'access arguments' => array(
array(
'eck administer bundles',
'eck delete bundles',
"eck administer {$entity_type->name} bundles",
"eck delete {$entity_type->name} bundles",
),
),
'file' => 'eck.bundle.inc',
'type' => MENU_LOCAL_TASK,
);
// EDIT Bundles.
$menu["{$path}/{$entity_type->name}/{$bundle->name}/edit"] = array(
'title' => 'Edit',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'eck__bundle__edit_form',
$entity_type->name,
$bundle->name,
),
'access callback' => 'eck__multiple_access_check',
'access arguments' => array(
array(
'eck administer bundles',
'eck edit bundles',
"eck administer {$entity_type->name} bundles",
"eck edit {$entity_type->name} bundles",
),
),
'file' => 'eck.bundle.inc',
'type' => MENU_LOCAL_TASK,
);
$admin_info = get_bundle_admin_info($entity_type->name, $bundle->name);
// LIST Entities.
$menu[$admin_info['path']] = array(
'title' => "{$bundle->label}",
'description' => "View all entites of type {$entity_type->label} with bundle {$bundle->label}",
'page callback' => "eck__entity__list",
'page arguments' => array(
$entity_type->name,
$bundle->name,
),
'access callback' => 'eck__multiple_access_check',
'access arguments' => array(
array(
'eck administer entities',
"eck list entities",
"eck administer {$entity_type->name} {$bundle->name} entities",
"eck list {$entity_type->name} {$bundle->name} entities",
),
),
'weight' => 0,
'file' => 'eck.entity.inc',
);
$menu[$admin_info['path'] . "/list"] = array(
'title' => "Entity List",
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => 100,
);
$crud_info = get_bundle_crud_info($entity_type->name, $bundle->name);
foreach ($crud_info as $action => $info) {
$action_label = ucfirst($action);
$args = array();
if (array_key_exists('entity_id', $info)) {
$args[] = $info['entity_id'];
}
$args = array_merge(array(
$entity_type->name,
$bundle->name,
), $args);
$access_args = array_merge(array(
$action,
), $args);
$menu[$info['path']] = array(
'title' => "{$action_label} {$bundle->label}",
'description' => "{$action_label} an entity of type {$entity_type->label} with bundle {$bundle->label}",
'page callback' => "eck__entity__{$action}",
'page arguments' => $args,
'load arguments' => array(
$entity_type->name,
),
'access callback' => 'eck__entity_menu_access',
'access arguments' => $access_args,
'file' => 'eck.entity.inc',
);
if ($action == 'view') {
$menu[$info['path'] . "/view"] = array(
'title' => "View",
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => 0,
);
$weight = 1;
foreach ($crud_info as $a => $i) {
if ($a != 'view' && $a != 'add' && $a != "list") {
$al = ucfirst($a);
$view_path = $info['path'] . "/{$a}";
$access_args = array_merge(array(
$a,
), $args);
$menu[$view_path] = array(
'title' => "{$al}",
'description' => "{$action_label} an entity of type {$entity_type->label} with bundle {$bundle->label}",
'page callback' => "eck__entity__{$a}",
'page arguments' => $args,
'access callback' => 'eck__entity_menu_access',
'access arguments' => $access_args,
'file' => 'eck.entity.inc',
'type' => MENU_LOCAL_TASK,
'context' => MENU_CONTEXT_PAGE | MENU_CONTEXT_INLINE,
'weight' => $weight,
);
$weight++;
}
}
}
}
return $menu;
}