Me gustaría agregar campos adicionales al perfil de usuario. Me gustaría que el usuario pueda editar casi toda la información que almaceno en la base de datos sobre él. Tengo algunas ideas: tal vez sea posible hacerlo usando el formulario api.
Me gustaría agregar campos adicionales al perfil de usuario. Me gustaría que el usuario pueda editar casi toda la información que almaceno en la base de datos sobre él. Tengo algunas ideas: tal vez sea posible hacerlo usando el formulario api.
Respuestas:
Una forma de agregar campos de usuario por código para que pueda poner esto en su módulo.
He encontrado esto: field_create_field con en los comentarios una forma de crear un campo para su usuario al habilitar su módulo:
/**
* 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);
}
}
'weight' => '1',
a la matriz de widgets en la $instance
agregaré en mi respuesta.
/admin/config/people/accounts/fields
, a continuación, utilizar el inspector de campo en /admin/config/development/field-inspector
exportar el campo y en el campo matrices instancia de definición para su uso en código como el anterior.
function MYMODULE_uninstall() {field_delete_field('field_myField');}
Encontré la página difícil de encontrar, pero en / admin / config / people / accounts / fields puedes agregar campos a los usuarios.
users
. Los "campos" crean nuevos campos fuera de la tabla users
.
hook_form_alter(&$form, &$form_state, $form_id)
El perfil en D7 es un poco extraño. El módulo profile2 puede hacer lo que necesita.
En Drupal 7, use este proceso para agregar un campo nuevo o existente con diferentes tipos de campo (como Imagen, campo Etiquetas, etc.) al perfil del usuario:
Vaya a " Admin → Configuración → Personas: Configuración de la cuenta " en el menú de administración, y luego a " Administrar campos " (la segunda pestaña).
(Alternativamente, use la ruta directa en la URL:) /admin/config/people/accounts/fields
.
¿Qué tipo de campos quieres agregar?