2009-12-14 75 views
1

当用户登录时,用户将重定向到设置了我的帐户字段的用户个人资料页面。更改user_profile_form表单字段顺序

该字段集有2个字段,“用户名:”,“电子邮件地址:”。这两个字段是由drupal生成的。

这些2字段包含在具有id(“user_profile_form”)的表单中。我想改变这两个字段的顺序。

我试图拦截hook_form_alter中的'user_profile_form'。 代码如下: $form['account']['name']['#weight'] = 1;

,但没有成功,Drupal的甚至没有渲染的“名称”字段,所以没有用户名:显示在浏览器中。

回答

2

你所做的是绝对正确的,可能确实有效。您可以使用上述方法更改字段的权重。

用户名字段并不总是呈现。原因是需要执行任务:change own username。如果这个烫发没有设置,你不会被允许改变你的用户名和字段不会被显示。

有关调试的信息。
您的信息不足以进行调试。从你所描述的,你做的是正确的事情,但其他模块可能会让你有点棘手。 devel模块是相当不错的,当涉及到调试,TI定义了两个功能调试的时候我用了很多:

  • dpm()漂亮打印变量使用krumo消息区域。
  • dd()打印/保存变量到日志文件。当您无法在屏幕上查看消息时很有用。

我建议你看看$form变量之前,你改变它之后。

东西可以使它出错:

  • 你记得参照使用&符号传递$form变量?
  • 另一个模块是在你之后改变你的形式吗?
  • 您是否正在检查正确的表单ID,以便更改正确的表单?

这些是一些指针,在你带来更多信息之前,我所能做的就是猜测你的问题到底是什么。前几天我做了这样的事情,所以我知道你所描述的不应该是一个问题。

+0

我正在管理员帐户 – anru 2009-12-15 21:13:39

+0

@googletorp - 你可能想修复“你记得通过...”的错字:你输入$而不是&! :)另一层:关于dpm和dd的提示。我通常使用drupalforfirebug,它提供了类似的功能,但可以自动在firebug区域中转储,比如表单数组,用户对象等等。它也有类似的功能来转储附加变量。 +1 – mac 2009-12-16 18:05:33