【问题标题】:change user_profile_form form fields order更改 user_profile_form 表单字段顺序
【发布时间】:2009-12-14 23:54:18
【问题描述】:

当用户登录时,用户将被重定向到用户个人资料页面,其中设置了我的帐户字段。

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

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

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

但这没有成功,drupal 甚至没有渲染“名称”字段,所以没有 username: 显示在浏览器上。

【问题讨论】:

    标签: drupal drupal-6


    【解决方案1】:

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

    用户名字段并不总是呈现。原因是需要权限:change own username。如果未设置该权限,您将无法更改您的用户名,并且该字段将不会显示。

    调试信息。
    仅您的信息不足以进行调试。根据您的描述,您正在做正确的事情,但其他模块可能会让您觉得有些棘手。 devel 模块在调试方面相当不错,ti 定义了两个我在调试时经常使用的函数:

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

    我建议您在更改之前和之后查看 $form 变量。

    可能会出错的事情:

    • 您是否记得使用& 表示法通过引用传递$form 变量?
    • 是否有其他模块在您之后更改您的表单?
    • 您是否检查了正确的表单 ID,因此您更改了正确的表单?

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

    【讨论】:

    • @googletorp - 您可能想修正“您是否记得通过...”中的错字:您输入的是 $ 而不是 &! :) 在另一个层面上:关于 dpm 和 dd 的好提示。我通常使用 drupalforfirebug,它提供类似的功能,但会自动转储到 firebug 区域中的内容,如表单数组、用户对象等……它也有类似的功能来转储其他变量。 +1
    猜你喜欢
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 2015-10-21
    • 1970-01-01
    相关资源
    最近更新 更多