public function AdminSettingsForm::buildForm in Commerce Add To Cart Link 8
Same name and namespace in other branches
- 2.x src/Form/AdminSettingsForm.php \Drupal\commerce_add_to_cart_link\Form\AdminSettingsForm::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 ConfigFormBase::buildForm
File
- src/
Form/ AdminSettingsForm.php, line 65
Class
- AdminSettingsForm
- Provides the admin form for editing module settings.
Namespace
Drupal\commerce_add_to_cart_link\FormCode
public function buildForm(array $form, FormStateInterface $form_state) {
$config = $this
->config('commerce_add_to_cart_link.settings');
$form['csrf_token'] = [
'#type' => 'details',
'#title' => $this
->t('CSRF token'),
'#open' => TRUE,
'#tree' => TRUE,
];
/** @var \Drupal\user\RoleInterface[] $roles */
$roles = $this->roleStorage
->loadMultiple();
usort($roles, function ($a, $b) {
/**
* @var \Drupal\user\RoleInterface $a
* @var \Drupal\user\RoleInterface $b
*/
return $a
->getWeight() - $b
->getWeight();
});
$role_options = array_reduce($roles, function ($result, $item) {
/** @var \Drupal\user\RoleInterface $item */
$result[$item
->id()] = $item
->label();
return $result;
}, []);
$form['csrf_token']['roles'] = [
'#type' => 'checkboxes',
'#title' => $this
->t('Roles'),
'#description' => $this
->t('Add to cart and add to wishlist links will be protected with a session based CSRF token for users having at least one role checked here. Enabling CSRF tokens for anonymous user role can cause problems with static page cache and reverse proxies, as the tokens vary by user session.'),
'#options' => $role_options,
'#default_value' => $config
->get('csrf_token.roles'),
];
return parent::buildForm($form, $form_state);
}