如何在用户个人资料中添加其他字段?


22

我想在用户个人资料中添加其他字段。我希望用户能够编辑存储在数据库中的有关他的几乎所有信息。我有一些想法:也许可以使用Form API。


详细博客在这里:goo.gl/zxBTBY
Suresh Kamrushi

Answers:


23

通过代码添加用户字段的一种方法,因此可以将其放入模块中。

我发现了这一点:field_create_field在注释中带有一种在启用模块后为用户创建字段的方法:

/**
 * Implementation of hook_enable().
 */
function MYMODULE_enable() {
  // Check if our field is not already created.
  if (!field_info_field('field_myField')) {
    $field = array(
        'field_name' => 'field_myField', 
        'type' => 'text', 
    );
    field_create_field($field);

    // Create the instance on the bundle.
    $instance = array(
        'field_name' => 'field_myField', 
        'entity_type' => 'user', 
        'label' => 'My Field Name', 
        'bundle' => 'user', 
        // If you don't set the "required" property then the field wont be required by default.
        'required' => TRUE,
        'settings' => array(
           // Here you inform either or not you want this field showing up on the registration form.
            'user_register_form' => 1,
        ),
        'widget' => array(
            'type' => 'textfield',
            'weight' => '1',
        ), 
    );
    field_create_instance($instance);
  }
}

1
我发现此页面非常有用,该页面解释了如何导出使用UI创建的字段。然后可以将此导出与field_create_field和field_create_instance一起使用,以编程方式进行所有操作
威士忌酒

谢谢,这非常有用-知道如何自动分配权重吗?
惯性

您可以将其添加'weight' => '1',到小部件数组中,然后$instance将其添加到答案中。
FLY

对于复杂的情况下,有用的是首先添加手动场上/admin/config/people/accounts/fields,然后使用现场检查员/admin/config/development/field-inspector导出的字段和字段实例定义阵列以用于代码像上面。
tanius '16

为了保持数据库干净,您可能还想实现一个hook_uninstall来删除该字段。function MYMODULE_uninstall() {field_delete_field('field_myField');}
dxvargas

35

我发现该页面很难找到,但是在/ admin / config / people / accounts / fields中,您可以向用户添加字段。


2
谢谢,但是我可以使用Form API吗?我需要更多功能。
Alexey

您想做什么,而字段则无法做到?
Attiks'Aug

我已经在Drupal表中创建了自己的字段users。“字段”在表外创建新字段users
Alexey

这就是drupal的工作方式,为什么要将字段存储在users表中?
Attiks 2011年

我认为这是更方便的方法。顺便说一句,为了添加额外的字段,我使用了hook_form_alter(&$form, &$form_state, $form_id)
Alexey,


4

在Drupal 7中,使用以下过程向用户配置文件添加具有不同字段类型(例如Image,Tags字段等)的新字段或现有字段:

  1. 启用Field UI模块。
  2. 转到管理菜单中的“ 管理→配置→人员:帐户设置 ”,然后转到“ 管理字段 ”(第二个标签)。

    (或者,使用URL中的直接路径:)/admin/config/people/accounts/fields

  3. 填写表单底部的“添加新字段”或“添加现有字段”行,然后单击“保存”。

1

您要添加哪种字段?

  • 如果这是一个社交网站,并且您要添加隐私设置字段,请使用“ 每用户隐私”模块。
  • 如果要添加选项卡或手风琴字段,请使用field_group模块在用户帐户字段(URL:/ admin / config / people / accounts / fields)上添加新的组。
  • 并且,如果您想为不同的角色使用不同的字段,请使用profile2模块。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.