2010-08-30 30 views
0

我有一个从另一个模块创建的表单。我想添加2个字段到这种形式:1.电子邮件,2.密码。我想我可以用hook_form_alter做到这一点。然后,我想创建一个用户帐户并在点击提交按钮时登录用户,然后继续执行由表单定义的操作。在提交其他表单时静静地创建用户帐户

原始表单没有#submit属性...它只是拥有#action属性。我添加#submit属性是这样的:$ form ['#submit'] = array('accesscustom_submit');

但accesscustom_submit似乎没有被调用。我认为表单只是被重定向到已经定义的#action网址。有任何想法吗?

回答

1

您是否正在编辑评论表单? $ form ['#action']是一个非常罕见的属性...评论形式是我能想到的唯一一个使用它的评论形式。

在任何情况下,您都可以通过设置用户数组($account = array('name' => $username, 'pass' => $pass))并将其发送到user_save来轻松创建帐户。有关更多详细信息,请参阅http://api.drupal.org/api/function/user_save/6

一旦该帐户被创建,您可以拨打user_external_login登录他们(http://api.drupal.org/api/function/user_external_login/6

+0

你好谢谢。我创建了用户帐户,并很好地工作。现在的问题是'#action'属性。它被调用,而不是提交(我能够通过删除'#action'来创建用户帐户 - 只是测试,但最终我需要把它放回去)。所以'#action'被调用而不是'#submit'。无论如何,我可以改变顺序,所以'#submit'先被调用,然后'#action'?谢谢! – berto77 2010-08-31 03:00:14

+0

您需要编辑#action指向的页面,或者使用自己的页面覆盖#action,并执行相同的操作,并添加自定义代码。你想修改什么样的表单?可能有一个更简单的方法。 – anschauung 2010-08-31 03:24:22

+0

我正在尝试修改捐款表单。它有这样的网址:donate /%(其中%被替换为捐献对象的nodeid)。 so donate/20 is donating to person 20.它是一个简单的字段:货币和金额。我添加了用户名/密码/名字/姓氏/电子邮件...所以我可以收集捐助者的一些信息。我尝试在'#submit'内放置'#action',但那不起作用。谢谢你的帮助。 – berto77 2010-08-31 03:49:06

相关问题