public function ParagraphsSliderPlugin::buildConfigurationForm

Overrides ParagraphsBehaviorBase::buildConfigurationForm

File

paragraphs_collection/modules/paragraphs_collection_demo/src/Plugin/paragraphs/Behavior/ParagraphsSliderPlugin.php, line 110

Class

ParagraphsSliderPlugin
Provides Slider plugin.

Namespace

Drupal\paragraphs_collection_demo\Plugin\paragraphs\Behavior

Code

public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
  $paragraphs_type = $form_state
    ->getFormObject()
    ->getEntity();
  if ($paragraphs_type
    ->isNew()) {
    return [];
  }
  $field_name_options = $this
    ->getFieldsByCardinalityGreaterOne($paragraphs_type);

  // Show field mapping select form only if this entity has at least
  // one mappable field.
  if ($field_name_options) {
    $form['field_name'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Slider field'),
      '#description' => $this
        ->t('Choose the field to be used as slider items.'),
      '#options' => $field_name_options,
      '#default_value' => $this->configuration['field_name'],
    ];
  }
  else {
    $form['message'] = [
      '#type' => 'container',
      '#markup' => $this
        ->t('There are no fields available with the cardinality greater than one. Please add at least one in the <a href=":link">Manage fields</a> page.', [
        ':link' => Url::fromRoute("entity.{$paragraphs_type->getEntityType()->getBundleOf()}.field_ui_fields", [
          $paragraphs_type
            ->getEntityTypeId() => $paragraphs_type
            ->id(),
        ])
          ->toString(),
      ]),
      '#attributes' => [
        'class' => [
          'messages messages--error',
        ],
      ],
    ];
  }
  $form['slick_slider'] = [
    '#type' => 'checkboxes',
    '#title' => $this
      ->t('Slick Optionsets'),
    '#description' => $this
      ->getOptionsetDescription($this
      ->getAllOptionSet()),
    '#options' => $this
      ->getAllOptionSet(),
    '#default_value' => $this->configuration['slick_slider'],
  ];
  return $form;
}