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