You are here

public function RoleLoginForm::buildForm in Multiple role login pages 8

Parameters

array $form:

FormStateInterface $form_state:

type $data:

Return value

type New dynamic login form.

Overrides FormInterface::buildForm

File

src/Form/RoleLoginForm.php, line 40
Contains \Drupal\role_login_page\Form\RoleLoginForm.

Class

RoleLoginForm
Login form.

Namespace

Drupal\role_login_page\Form

Code

public function buildForm(array $form, FormStateInterface $form_state, $data = NULL) {
  if ($data) {
    $this->login_settings_data = $data;
    $username_label = $data->username_label ? Html::escape($data->username_label) : 'User Name or Email';
    $password_label = $data->password_label ? Html::escape($data->password_label) : 'Password';
    $submit_btn_label = $data->submit_text ? Html::escape($data->submit_text) : 'Login';
    $parent_class = $data->parent_class ? Html::escape($data->parent_class) : '';
    if ($parent_class) {
      $form['#attributes']['class'][] = $parent_class;
    }
    $form['name'] = [
      '#type' => 'textfield',
      '#title' => t($username_label),
      '#required' => TRUE,
    ];
    $form['pass'] = [
      '#type' => 'password',
      '#title' => t($password_label),
      '#required' => TRUE,
    ];
    $form['submit'] = [
      '#type' => 'submit',
      '#value' => t($submit_btn_label),
    ];
    return $form;
  }
  else {
    $this
      ->messenger()
      ->addWarning(t('Invalid login page ID'));
  }
}