You are here

public function StarsFormatter::settingsForm in Fivestar 8

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

src/Plugin/Field/FieldFormatter/StarsFormatter.php, line 37

Class

StarsFormatter
Plugin implementation of the 'fivestar_stars' formatter.

Namespace

Drupal\fivestar\Plugin\Field\FieldFormatter

Code

public function settingsForm(array $form, FormStateInterface $form_state) {
  $elements = parent::settingsForm($form, $form_state);
  $elements['fivestar_widget'] = [
    '#type' => 'radios',
    '#options' => $this->widgetManager
      ->getWidgetsOptionSet(),
    '#default_value' => $this
      ->getSetting('fivestar_widget'),
    '#attributes' => [
      'class' => [
        'fivestar-widgets',
        'clearfix',
      ],
    ],
    '#pre_render' => [
      [
        $this,
        'previewsExpand',
      ],
    ],
    '#attached' => [
      'library' => [
        'fivestar/fivestar.admin',
      ],
    ],
  ];
  $elements['display_format'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Value to display as stars'),
    '#options' => [
      'average' => $this
        ->t('Average vote'),
    ],
    '#default_value' => $this
      ->getSetting('display_format'),
  ];
  $elements['text_format'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Text to display under the stars'),
    '#options' => [
      'none' => $this
        ->t('No text'),
      'average' => $this
        ->t('Average vote'),
    ],
    '#default_value' => $this
      ->getSetting('text_format'),
  ];
  return $elements;
}