我正在尝试向主页>管理>配置页面添加一个部分,然后打开一个包含2个标签的新表单(create_team和create_game)。
我的代码(不起作用):
function guild_management_core_menu()
{
$items['admin/config/guild_management_core/create_game'] = array
(
'title' => 'Create Game',
'description' => 'Create Game',
'page callback' => 'drupal_get_form',
'page arguments' => array('guild_management_core_create_game'),
'access arguments' => array('access administration pages'),
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => 0,
);
$items['admin/config/guild_management_core/create_team'] = array
(
'title' => 'Create Team',
'description' => 'Create Team',
'page callback' => 'drupal_get_form',
'page arguments' => array('guild_management_core_create_team'),
'access arguments' => array('access administration pages'),
'type' => MENU_LOCAL_TASK,
'weight' => 0,
);
return $items;
}
我尝试了下面的链接,但它们也不起作用: drupal--hook_menu Drupal hook_menu from module for admin menu
我也禁用了模块并再次启用它,然后我清除了缓存但仍然没有结果。
编辑: 这有效:
$items['admin/config/annotate'] = array(
'title' => 'Guild Management',
'description' => 'Guild Management',
'position' => 'right',
'weight' => -5,
'page callback' => 'system_admin_menu_block_page',
'access arguments' => array('administer site configuration'),
'file' => 'system.admin.inc',
'file path' => drupal_get_path('module', 'system'),
);
当我用“admin / config / guild_management_core”替换“admin / config / annotate”时再次出错...
答案 0 :(得分:4)
<强>已更新强>
这应该适合你:
function tbff_promo_menu() {
$items['admin/config/guild_management'] = array(
'title' => 'Create Game',
'description' => 'Create Game.',
'position' => 'right',
'weight' => -20,
'page callback' => 'system_admin_menu_block_page',
'access arguments' => array('access administration pages'),
'file' => 'system.admin.inc',
);
$items['admin/config/guild_management/core'] = array(
'title' => 'Create Game',
'description' => 'Create Game',
'page callback' => 'drupal_get_form',
'page arguments' => array('search_block_form'),
'access arguments' => array('access administration pages'),
'type' => MENU_NORMAL_ITEM
);
$items['admin/config/guild_management/core/create_game'] = array(
'title' => 'Create Game',
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => 0
);
$items['admin/config/guild_management/core/create_team'] = array(
'title' => 'Create Team',
'description' => 'Create Team',
'page callback' => 'drupal_get_form',
'page arguments' => array('search_block_form'),
'access arguments' => array('access administration pages'),
'type' => MENU_LOCAL_TASK,
'weight' => 0,
);
return $items;
}
答案 1 :(得分:3)
要使本地任务起作用,路径必须直接位于父路径下。目前您有一个额外的级别/content/
,这将阻止标签显示。
您的两个本地任务路径应为:
admin/config/guild_management_core/create_game
admin/config/guild_management_core/create_team
一旦你做了这个改变,清楚了Drupal的缓存,如果你仍然没有得到快乐,请转到模块页面,禁用你的模块,单击'卸载'选项卡,然后实际卸载你的模块。重新安装后,它应该可以正常工作。
<强>更新强>
我想我知道问题所在:您希望admin/config/guild_management_core
下的链接在admin/config
页面上的某个区块中显示为链接...为了完成第一个菜单item的页面回调需要:
system_admin_menu_block_page()
如果不是,Drupal将不知道将您的配置页放在主管理配置页面上(这也是所有核心/贡献模块也是如此)。
我不确定您是否可以直接在主配置页面下使用本地任务链接,因为我不确定Drupal是否有意义,但请尝试一下。
您可以在核心system_admin_menu_block_page
模块中查看如何使用system
的示例。