对于有洁癖的人来说,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; }