public function SettingsForm::buildForm in Commerce Wishlist 8.3
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/ SettingsForm.php, line 66
Class
- SettingsForm
- Defines the wishlist settings form.
Namespace
Drupal\commerce_wishlist\FormCode
public function buildForm(array $form, FormStateInterface $form_state) {
$form = parent::buildForm($form, $form_state);
$config = $this
->config('commerce_wishlist.settings');
$form['wishlist'] = [
'#type' => 'details',
'#title' => 'Wishlist settings',
'#open' => TRUE,
];
$form['wishlist']['allow_multiple'] = [
'#type' => 'checkbox',
'#default_value' => $config
->get('allow_multiple'),
'#title' => $this
->t('Allow multiple wishlists'),
'#description' => $this
->t('Determines whether multiple wishlists are allowed.'),
];
$wishlist_types = WishlistType::loadMultiple();
$options = EntityHelper::extractLabels($wishlist_types);
$form['wishlist']['default_type'] = [
'#type' => 'select',
'#options' => $options,
'#default_value' => $config
->get('default_type'),
'#title' => $this
->t('Default wishlist type'),
'#description' => $this
->t('The default wishlist type to use when creating a new wishlist.'),
];
$form['view_modes'] = [
'#type' => 'details',
'#title' => 'View modes',
'#description' => $this
->t('The view mode to use when rendering wishlist items.'),
'#open' => TRUE,
'#tree' => TRUE,
];
foreach (commerce_wishlist_get_purchasable_entity_types() as $entity_type_id => $entity_type) {
$view_modes = $this->entityDisplayRepository
->getViewModes($entity_type_id);
$view_mode_labels = array_map(function ($view_mode) {
return $view_mode['label'];
}, $view_modes);
$default_view_mode = $config
->get('view_modes.' . $entity_type_id);
$default_view_mode = $default_view_mode ?: 'cart';
$form['view_modes'][$entity_type_id] = [
'#type' => 'select',
'#title' => $entity_type
->getLabel(),
'#options' => $view_mode_labels,
'#default_value' => $default_view_mode,
'#required' => TRUE,
];
}
return $form;
}