Я хотел бы добавить дополнительные поля в профиль пользователя. Я бы хотел, чтобы пользователь мог редактировать почти всю информацию о нем, которую я храню в базе данных. У меня есть несколько идей: возможно, это можно сделать с помощью формы API.
Я хотел бы добавить дополнительные поля в профиль пользователя. Я бы хотел, чтобы пользователь мог редактировать почти всю информацию о нем, которую я храню в базе данных. У меня есть несколько идей: возможно, это можно сделать с помощью формы API.
Ответы:
Способ добавления пользовательских полей по коду, чтобы вы могли поместить это в свой модуль.
Я нашел это: 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);
}
}
'weight' => '1',
в массив виджетов в $instance
Я добавлю его в моем ответе.
/admin/config/people/accounts/fields
, а затем использовать полевой инспектор по /admin/config/development/field-inspector
экспортировать массивы определения экземпляра поля и поля для использования в коде , как выше.
function MYMODULE_uninstall() {field_delete_field('field_myField');}
Мне было трудно найти страницу, но в / admin / config / people / account / fields вы можете добавлять поля пользователям.
users
. «Поля» создают новые поля вне таблицы users
.
hook_form_alter(&$form, &$form_state, $form_id)
Профиль в D7 немного странный. Модуль profile2 может делать то, что вам нужно.
В Drupal 7 используйте этот процесс для добавления нового или существующего поля с различными типами полей (например, «Изображение», «Теги» и т. Д.) В профиль пользователя:
Перейдите в « Администрирование → Конфигурация → Люди: Настройки учетной записи » в меню администратора, а затем в « Управление полями » (вторая вкладка).
(В качестве альтернативы используйте прямой путь в URL:) /admin/config/people/accounts/fields
.
Какие поля вы хотите добавить?