function terms_of_use_form_user_register_form_alter in Terms of Use 8.2
Same name and namespace in other branches
- 8 terms_of_use.module \terms_of_use_form_user_register_form_alter()
- 7 terms_of_use.module \terms_of_use_form_user_register_form_alter()
Implements hook_form_FORM_ID_alter().
File
- ./
terms_of_use.module, line 15 - Main module file of the terms of use module.
Code
function terms_of_use_form_user_register_form_alter(&$form, &$form_state) {
// Administrative users can skip this. So admin/user/user/create won't show
// the terms of use.
if (\Drupal::currentUser()
->hasPermission('administer users')) {
return;
}
$config = \Drupal::config('terms_of_use.settings');
$title = $config
->get('terms_of_use_label_name');
$form['terms_of_use'] = [
'#type' => 'details',
'#title' => !empty($title) ? $title : t('Terms of Use'),
'#weight' => 10,
];
// Set the details tag open/close based on the configuration.
$t_and_c_collapsed = $config
->get('terms_of_use_collapsed') ? $config
->get('terms_of_use_collapsed') : 0;
$t_and_c_collapsed = $t_and_c_collapsed ? 0 : 1;
$form['terms_of_use']['#open'] = $t_and_c_collapsed;
$nid = $config
->get('terms_of_use_node');
$node = '';
if (isset($nid)) {
$node = \Drupal::entityTypeManager()
->getStorage('node')
->load($nid);
$language = \Drupal::languageManager()
->getCurrentLanguage();
if ($node
->hasTranslation($language
->getId())) {
$node = $node
->getTranslation($language
->getId());
}
}
$data = '';
$checkbox_title = $config
->get('terms_of_use_label_checkbox');
if (!empty($node)) {
if (!empty($checkbox_title) && strpos($checkbox_title, '@link') !== FALSE) {
$replace = $node
->toLink($node
->label())
->getUrl();
if ($config
->get('terms_of_use_open_link_in_new_window')) {
$attributes = $replace
->getOption('attributes');
$attributes['target'] = '_blank';
$replace
->setOption('attributes', $attributes);
}
$checkbox_title = str_replace('@link', Link::fromTextAndUrl($node
->label(), $replace)
->toString(), $checkbox_title);
}
else {
$node_data = $node
->toArray();
if (!empty($node_data['body'])) {
$data = $node_data['body'][0]['value'];
}
}
}
$form['terms_of_use']['terms_of_use_data'] = [
'#type' => 'markup',
'#markup' => !empty($data) ? $data : '',
];
$form['terms_of_use']['terms_of_use_checkbox'] = [
'#type' => 'checkbox',
'#title' => !empty($checkbox_title) ? $checkbox_title : t('I agree with these terms'),
'#required' => TRUE,
];
}