Chciałbym dodać dodatkowe pola do profilu użytkownika. Chciałbym, aby użytkownik mógł edytować prawie wszystkie informacje o nim przechowywane w bazie danych. Mam kilka pomysłów: może da się to zrobić za pomocą interfejsu API.
Chciałbym dodać dodatkowe pola do profilu użytkownika. Chciałbym, aby użytkownik mógł edytować prawie wszystkie informacje o nim przechowywane w bazie danych. Mam kilka pomysłów: może da się to zrobić za pomocą interfejsu API.
Odpowiedzi:
Sposób dodawania pól użytkowników według kodu, dzięki czemu można umieścić to w module.
Znalazłem to: field_create_field z w komentarzach sposób na utworzenie pola dla użytkownika po włączeniu modułu:
/**
* 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',
do tablicy widżetów w polu „ $instance
Dodaję” w mojej odpowiedzi.
/admin/config/people/accounts/fields
, a następnie użyć pola Inspector na /admin/config/development/field-inspector
eksportowanie pól i pól tablice definicji instancji do użycia w kodzie jak wyżej.
function MYMODULE_uninstall() {field_delete_field('field_myField');}
Znalazłem stronę trudną do znalezienia, ale w / admin / config / people / account / fields możesz dodawać pola do użytkowników.
users
. „Pola” tworzą nowe pola poza tabelą users
.
hook_form_alter(&$form, &$form_state, $form_id)
Profil w D7 jest trochę dziwny. Profile2 moduł może zrobić to, czego potrzebujesz.
W Drupal 7 użyj tego procesu, aby dodać nowe lub istniejące pole z różnymi typami pól (takimi jak Obraz, Pole znaczników itp.) Do profilu użytkownika:
Przejdź do „ Administrator → Konfiguracja → Ludzie: Ustawienia konta ” w menu administratora, a następnie do „ Zarządzaj polami ” (druga zakładka).
(Alternatywnie użyj bezpośredniej ścieżki w adresie URL:) /admin/config/people/accounts/fields
.
Jakie pola chcesz dodać?