public function LegalLogin::buildForm in Legal 8
Same name and namespace in other branches
- 2.0.x src/Form/LegalLogin.php \Drupal\legal\Form\LegalLogin::buildForm()
Form constructor.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
array The form structure.
Overrides FormInterface::buildForm
File
- src/
Form/ LegalLogin.php, line 60
Class
- LegalLogin
- After login display new T&Cs to user and require that they are agreed to.
Namespace
Drupal\legal\FormCode
public function buildForm(array $form, FormStateInterface $form_state) {
$config = $this
->config('legal.settings');
$language = \Drupal::languageManager()
->getCurrentLanguage();
$id_hash = $_COOKIE['Drupal_visitor_legal_hash'];
$uid = $_COOKIE['Drupal_visitor_legal_id'];
$token = $_GET['token'];
// Get last accepted version for this account.
$legal_account = legal_get_accept($uid);
// If no version accepted, get version with current language revision.
if (empty($legal_account['version'])) {
$conditions = legal_get_conditions($language
->getId());
// No conditions set yet.
if (empty($conditions['conditions'])) {
return;
}
}
else {
// Get version / revision of last accepted language.
$conditions = legal_get_conditions($legal_account['language']);
// No conditions set yet.
if (empty($conditions['conditions'])) {
return;
}
// Check latest version of T&C has been accepted.
$accepted = legal_version_check($uid, $conditions['version'], $conditions['revision'], $legal_account);
if ($accepted) {
if ($config
->get('accept_every_login') == 0) {
return;
}
else {
$request = \Drupal::request();
$session = $request
->getSession();
$newly_accepted = $session
->get('legal_login', FALSE);
if ($newly_accepted) {
return;
}
}
}
}
legal_display_fields($form, $conditions, 'login');
$form['uid'] = [
'#type' => 'value',
'#value' => $uid,
];
$form['token'] = [
'#type' => 'value',
'#value' => $token,
];
$form['hash'] = [
'#type' => 'value',
'#value' => $id_hash,
];
$form['tc_id'] = [
'#type' => 'value',
'#value' => $conditions['tc_id'],
];
$form['version'] = [
'#type' => 'value',
'#value' => $conditions['version'],
];
$form['revision'] = [
'#type' => 'value',
'#value' => $conditions['revision'],
];
$form['language'] = [
'#type' => 'value',
'#value' => $conditions['language'],
];
$form = legal_display_changes($form, $uid);
$form['save'] = [
'#type' => 'submit',
'#value' => t('Confirm'),
'#weight' => 100,
];
// Prevent this page from being cached.
\Drupal::service('page_cache_kill_switch')
->trigger();
return $form;
}