#drupal-modules #drupal-8
#drupal-модули #drupal-8
Вопрос:
Я хочу подключить и записать для страницы моей учетной записи. поэтому, пожалуйста, предоставьте мне примерный пример или процедуру для написания модуля изменения формы подключения с файлом info и файлом модуля для drupal8.
Комментарии:
1. что вы хотите изменить? прежде чем делать это, знаете ли вы, что можете добавлять поля и многое другое в учетную запись с помощью бэк-офиса? /admin/config/people/accounts/поля
2. измените имя формы, например, адрес электронной почты, на Email. пример страницы пользователя / входа в систему: имя пользователя и пароль, но я хочу изменить имя пользователя или адрес электронной почты и пароль. Мне нужен пример кода hook. информация и хук.модуль
Ответ №1:
просто скопируйте и вставьте standard .info для создания модуля
в вашем .module добавьте форму hook alter
/**
* callback action on submit (custom method plus bas)
*
* @param $form
* @param DrupalCoreFormFormStateInterface $form_state
* @param $form_id
*/
function yourModuleName_form_alter(amp;$form, DrupalCoreFormFormStateInterface $form_state, $form_id) {
if ($form_id == 'user_login_form') {
//code to modify your form input
$form['actions']['submit']['#submit'][] = 'custom_submit_method';
//do something similar to create a custom validation handler
}
}
/**
* @param $form
* @param DrupalCoreFormFormStateInterface $form_state
* @param $form_id
*/
function custom_submit_method(amp;$form, DrupalCoreFormFormStateInterface $form_state, $form_id) {
//code to modify the submit if needed
}
Комментарии:
1. Спасибо, я получил ответ. Но я использовал в качестве модуля имя_формы_user_login_form_alter и применил заполнитель атрибутов $form[‘name’][‘#attributes’][‘placeholder’] = t(‘имя пользователя или электронная почта’); . Я хочу больше потренироваться для изменения заголовка и пользовательской отправки. Если что-то столкнется с проблемой, я прокомментирую. Почему вы используете block_generator_form_alter.
2. я отредактировал ответ, генератор блоков был частью имени, которое я дал своему модулю
3. да, эта пользовательская функция отправки работает нормально, но как получить значения post в этой функции. Я использовал подобное ($ cuser = $form_state [‘значения’][‘имя’]), но это не работает.
4. $form_state->GetValue(‘name_of_your_value’))
5. Я получаю значение, но при использовании hook_user_login ($cuser, $ cpass) просто в качестве входных данных (admin, администратор) он не входит в систему. Не предложите мне идеи в этом hooks