对于有洁癖的人来说,eck的添加路径是不完美的,一般是如下形式:
admin/structure/entity-type/ENTITY_TYPE/BUNDLE/add
这种形式的菜单,一般会调用默认的后台主题进行渲染。
下面的代码,对eck生成的entity,使用自定义的路径,这会带来诸多好处。
代码比较短,复制粘贴到自定义模块即可。
ENTITY_TYPE/BUNDLE/add
/**
* Implements hook_menu().
* define custom path for eck entity add form.
*/
function HOOK_menu() {
$items = array();
foreach (EntityType::loadAll() as $entity_type) {
foreach (Bundle::loadByEntityType($entity_type) as $bundle) {
$items[$entity_type->name . '/' . $bundle->name .'/add'] = array(
'title' => 'Add ' . $bundle->label,
'page callback' => 'eck__entity__add',
'page arguments' => array($entity_type->name, $bundle->name),
'load arguments' => array($entity_type->name),
'access callback' => 'eck__entity_menu_access',
'access arguments' => array('add', $entity_type->name, $bundle->name),
'file path' => drupal_get_path('module', 'eck'),
'file' => 'eck.entity.inc',
);
}
}
return $items;
}