Установить значение по умолчанию для поля ввода drupal 7

Я начал проект, который использует регистрацию сущностей. Аутентифицированный пользователь может зарегистрироваться для него и некоторых других на событие. Я задал дополнительные поля при создании аккаунта (имя и фамилия).

Также я задаю имя и фамилию для регистрации на мероприятие. Я бы не хотел, чтобы авторизованный пользователь дважды заполнял форму одной и той же информацией.

Для этого я создал модуль с хуком, из которого я смог получить информацию о пользователе.

function mymodule_form_alter(&$form, $form_state, $form_id)  {
    // retrieve name & surname 
    global $user;
    $user_fields = user_load($user->uid);
    $name = $user_fields->field_user_name['und']['0']['value'];
    $surname = $user_fields->field_user_surname['und']['0']['value'];

    // check the form_id 
    if($form_id=='registration_form'){
        $form['field_new_name']= array('#default_value' => $name);
        $form['field_new_surname']= array('#default_value' => $surname);
        // $form['field_new_name']['#value'] = $name;
        // $form['field_new_name']['widget'][0]['value']['#default_value'] = "joe";
    }
}

Мне удалось получить данные, но я не могу настроить ввод для отображения этого значения в текстовом поле ввода...

У меня также есть меню выбора, чтобы определить, кто регистрируется:

<select id="edit-who-is-registering" name="who_is_registering" class="form-select required">
    <option value="" selected="selected">- Select -</option>
    <option value="registration_registrant_type_me">Myself</option>
    <option value="registration_registrant_type_user">Other account</option>
    <option value="registration_registrant_type_anon">Other person</option>
</select>

Здесь я не знаю, как я могу проверить, имеет ли вход select значение «registration_registrant_type_me» в хуке, который я пытаюсь создать. В идеале я хотел бы скрыть поле имени и фамилии с установленным значением...


person davidvera    schedule 05.04.2019    source источник


Ответы (1)


Для получения информации о пользователе:

$user_fields = user_load($user->uid);
$name = $user_fields->field_user_name['und']['0']['value'];
$surname = $user_fields->field_user_name['und']['0']['value'];

затем для отображения значения в поле (я был сохранен kint):

$form['field_new_name']['und'][0]['value']['#default_value'] = $name;
$form['field_new_surname']['und'][0]['value']['#default_value'] = $surname;
person davidvera    schedule 06.04.2019