Установить значение по умолчанию для поля ввода drupal 7 - PullRequest
0 голосов
/ 05 апреля 2019

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

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

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

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>

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

1 Ответ

0 голосов
/ 06 апреля 2019

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

$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;
...