如何在Drupal 7中添加表单作为菜单项?



我正在使用OpenID Connect模块将Drupal 7站点与OpenID提供程序作为客户端连接。到目前为止,我设法启动并运行了该模块,只需使用开箱即用的功能和提供的登录块即可向我的提供商注册和记录用户。

我现在要实现的是将模块提供的块呈现为链接的形式放在我的主菜单中。

我已经能够通过更改模块的hook_menu来在我的菜单中添加一个链接,如下所示:

$items[''] = array(
'title' => 'OpenID Connect',
'page callback' => 'drupal_get_form',
'page arguments' => array('openid_connect_login_form'),
'access callback' => TRUE,
'type' => MENU_NORMAL_ITEM,
);

但这并没有按预期工作。

我想要的是将模块在块中呈现的表单插入菜单项中,或者生成一个链接,该链接的工作方式与在块中创建的表单一样。

或者,我可以在隐藏表单的情况下呈现块,并创建一个菜单链接,该链接不会重定向到页面,而只是通过 JS 查找并提交表单,但我也不知道如何去做。

我对Drupal比较陌生,读完后会头晕目眩,所以我来找你们的网友寻求帮助;欢迎任何和所有的建议和指导。

提前谢谢。

hook_menu允许定义菜单项和页面回调。 您必须在$items中添加页面路径,如下所示:$items['路径']。 然后清除缓存以使更改生效并访问您应有的此路径。

您需要在模块中实现hook_menu。例:

<?php
function mymodule_menu() {
$items['mymodule/links'] = array(
'title' => 'OpenID Connect', 
'page callback' => 'drupal_get_form', 
'access arguments' => array('openid_connect_login_form'),
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
?>

请在 drupal 代码或设置发生任何更改后清除缓存。

最新更新