You are here

public function CommentDefaultFormatter::settingsForm in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/comment/src/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php \Drupal\comment\Plugin\Field\FieldFormatter\CommentDefaultFormatter::settingsForm()

Returns a form to configure settings for the formatter.

Invoked from \Drupal\field_ui\Form\EntityDisplayFormBase to allow administrators to configure the formatter. The field_ui module takes care of handling submitted form values.

Parameters

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

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array The form elements for the formatter settings.

Overrides FormatterBase::settingsForm

File

core/modules/comment/src/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php, line 226

Class

CommentDefaultFormatter
Provides a default comment formatter.

Namespace

Drupal\comment\Plugin\Field\FieldFormatter

Code

public function settingsForm(array $form, FormStateInterface $form_state) {
  $element = [];
  $view_modes = $this
    ->getViewModes();
  $element['view_mode'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Comments view mode'),
    '#description' => $this
      ->t('Select the view mode used to show the list of comments.'),
    '#default_value' => $this
      ->getSetting('view_mode'),
    '#options' => $view_modes,
    // Only show the select element when there are more than one options.
    '#access' => count($view_modes) > 1,
  ];
  $element['pager_id'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Pager ID'),
    '#options' => range(0, 10),
    '#default_value' => $this
      ->getSetting('pager_id'),
    '#description' => $this
      ->t("Unless you're experiencing problems with pagers related to this field, you should leave this at 0. If using multiple pagers on one page you may need to set this number to a higher value so as not to conflict within the ?page= array. Large values will add a lot of commas to your URLs, so avoid if possible."),
  ];
  return $element;
}