You are here

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

Parameters

array $form:

FormStateInterface $form_state:

type $rl_id:

Return value

string

Overrides FormInterface::buildForm

File

src/Form/RoleLoginPageSettingsEdit.php, line 46
�* �* Contains \Drupal\role_login_page\Form\RoleLoginPageSettingsEdit. �

Class

RoleLoginPageSettingsEdit
Edit login page form.

Namespace

Drupal\role_login_page\Form

Code

public function buildForm(array $form, FormStateInterface $form_state, $rl_id = NULL) {
  $login_menu_data = $this->connection
    ->select('role_login_page_settings', 'rlps')
    ->fields('rlps')
    ->condition('rl_id', $rl_id)
    ->execute()
    ->fetchObject();
  $roles_arr = Role::loadMultiple();
  foreach ($roles_arr as $role => $rolesObj) {
    $roles[$role] = $rolesObj
      ->get('label');
  }
  if ($login_menu_data) {
    $form['login_page_menu'] = [
      '#type' => 'fieldset',
      '#title' => t('Edit login page'),
      '#collapsible' => FALSE,
    ];
    $form['login_page_menu']['loginmenu_url'] = [
      '#type' => 'textfield',
      '#title' => 'Login page url',
      '#required' => TRUE,
      '#default_value' => $login_menu_data->url,
      '#description' => t('URL should exclude the basepath, i.e, "http://example.com". Add the path that should be used after base path, i.e, "user or admin/newconfig"'),
    ];
    $form['login_page_menu']['username_label'] = [
      '#type' => 'textfield',
      '#title' => 'Username label',
      '#default_value' => $login_menu_data->username_label,
    ];
    $form['login_page_menu']['password_label'] = [
      '#type' => 'textfield',
      '#title' => 'Password label',
      '#default_value' => $login_menu_data->password_label,
    ];
    $form['login_page_menu']['submit_text'] = [
      '#type' => 'textfield',
      '#title' => 'Submit button text',
      '#default_value' => $login_menu_data->submit_text,
    ];
    $form['login_page_menu']['page_title'] = [
      '#type' => 'textfield',
      '#title' => 'Page title',
      '#default_value' => $login_menu_data->page_title,
    ];
    $form['login_page_menu']['redirect_path'] = [
      '#type' => 'textfield',
      '#title' => 'Redirect path',
      '#default_value' => $login_menu_data->redirect_path,
      '#description' => t('Path should exclude the basepath, i.e, "http://example.com". Add the path that should be used after base path, i.e, "user or admin/newconfig"'),
    ];
    $form['login_page_menu']['roles'] = [
      '#type' => 'select',
      '#title' => 'Select the user roles allowed to login through this page : ',
      '#options' => $roles,
      '#multiple' => TRUE,
      '#required' => TRUE,
      '#default_value' => explode(',', $login_menu_data->roles),
    ];
    $form['login_page_menu']['parent_class'] = [
      '#type' => 'textfield',
      '#title' => 'Form parent class',
      '#description' => t('This class will be added to the form element.'),
      '#default_value' => $login_menu_data->parent_class,
    ];
    $form['login_page_menu']['role_mismatch_error_text'] = [
      '#type' => 'textarea',
      '#title' => 'Role mismatch error text',
      '#default_value' => $login_menu_data->role_mismatch_error_text,
    ];
    $form['login_page_menu']['invalid_credentials_error_text'] = [
      '#type' => 'textarea',
      '#title' => 'Invalid credentials error text',
      '#default_value' => $login_menu_data->invalid_credentials_error_text,
    ];
    $this->rlid = $login_menu_data->rl_id;
    $form['login_page_menu']['submit'] = [
      '#type' => 'submit',
      '#value' => 'Update login page',
    ];
    return $form;
  }
  else {
    $this
      ->messenger()
      ->addWarning(t('Invalid login page ID'));
    $redirect = new RedirectResponse(Url::fromUserInput('/admin/config/login/role_login_settings/list')
      ->toString());
    $redirect
      ->send();
  }
}