You are here

public function CommentItem::fieldSettingsForm in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/comment/src/Plugin/Field/FieldType/CommentItem.php \Drupal\comment\Plugin\Field\FieldType\CommentItem::fieldSettingsForm()
  2. 9 core/modules/comment/src/Plugin/Field/FieldType/CommentItem.php \Drupal\comment\Plugin\Field\FieldType\CommentItem::fieldSettingsForm()

Returns a form for the field-level settings.

Invoked from \Drupal\field_ui\Form\FieldConfigEditForm to allow administrators to configure field-level settings.

Parameters

array $form: The form where the settings form is being included in.

\Drupal\Core\Form\FormStateInterface $form_state: The form state of the (entire) configuration form.

Return value

array The form definition for the field settings.

Overrides FieldItemBase::fieldSettingsForm

File

core/modules/comment/src/Plugin/Field/FieldType/CommentItem.php, line 102

Class

CommentItem
Plugin implementation of the 'comment' field type.

Namespace

Drupal\comment\Plugin\Field\FieldType

Code

public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
  $element = [];
  $settings = $this
    ->getSettings();
  $anonymous_user = new AnonymousUserSession();
  $element['default_mode'] = [
    '#type' => 'checkbox',
    '#title' => t('Threading'),
    '#default_value' => $settings['default_mode'],
    '#description' => t('Show comment replies in a threaded list.'),
  ];
  $element['per_page'] = [
    '#type' => 'number',
    '#title' => t('Comments per page'),
    '#default_value' => $settings['per_page'],
    '#required' => TRUE,
    '#min' => 1,
    '#max' => 1000,
  ];
  $element['anonymous'] = [
    '#type' => 'select',
    '#title' => t('Anonymous commenting'),
    '#default_value' => $settings['anonymous'],
    '#options' => [
      CommentInterface::ANONYMOUS_MAYNOT_CONTACT => t('Anonymous posters may not enter their contact information'),
      CommentInterface::ANONYMOUS_MAY_CONTACT => t('Anonymous posters may leave their contact information'),
      CommentInterface::ANONYMOUS_MUST_CONTACT => t('Anonymous posters must leave their contact information'),
    ],
    '#access' => $anonymous_user
      ->hasPermission('post comments'),
  ];
  $element['form_location'] = [
    '#type' => 'checkbox',
    '#title' => t('Show reply form on the same page as comments'),
    '#default_value' => $settings['form_location'],
  ];
  $element['preview'] = [
    '#type' => 'radios',
    '#title' => t('Preview comment'),
    '#default_value' => $settings['preview'],
    '#options' => [
      DRUPAL_DISABLED => t('Disabled'),
      DRUPAL_OPTIONAL => t('Optional'),
      DRUPAL_REQUIRED => t('Required'),
    ],
  ];
  return $element;
}