如何在表格API中覆盖drupal 7中的默认用户配置文件字段?

时间:2011-08-11 16:15:18

标签: forms override drupal-7 user-profile

我想知道如何覆盖/更改用户个人资料中的默认字段,例如:按钮保存,名称,时区等。 我想改变,删除(因为我不需要它们)其中一些。 要更改用户配置文件,我使用钩子:hook_form_alter使用它我设法将我自己的fieldds添加到用户配置文件。但现在我想改变默认字段。我该怎么办?

1 个答案:

答案 0 :(得分:3)

可以使用hook_form_alter,但最好使用hook_form_FORM_ID_alter

为了能够改变表格,你需要知道数组的结构,最简单的方法是通过安装Devel模块。然后,您可以通过将dpm($form);放在alter function中来查看结构。

您可以在自定义模块主题template.php文件中)中使用此功能。

通常用户个人资料form_id是user_profile_form。一个简单的例子是:

    function mymodule_form_user_profile_form_alter(&$form,$form_state,$form_id){
      $form['timezone']['#access'] = FALSE; //remove the "timezone" field from the form (default value is still saved)
      $form['field_somefield']['#weight'] = -50; //move the field up
      $form['actions']['submit']['#value'] = t('Add this content now'); //change the submit button text
    }

有关一个好的教程,请参阅Lullabot教程here(适用于drupal 6,但d7的工作方式相同!)。

API:hook_form_FORM_ID_alter