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\FormCode
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();
}
}