You are here

public function PaymentReference::fieldSettingsForm in Payment 8.2

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 EntityReferenceItem::fieldSettingsForm

File

modules/payment_reference/src/Plugin/Field/FieldType/PaymentReference.php, line 75

Class

PaymentReference
Provides a configurable payment reference field.

Namespace

Drupal\payment_reference\Plugin\Field\FieldType

Code

public function fieldSettingsForm(array $form, FormStateInterface $form_state) {

  /** @var \Drupal\currency\FormHelperInterface $form_helper */
  $form_helper = \Drupal::service('currency.form_helper');
  $element['#element_validate'] = [
    get_class() . '::fieldSettingsFormValidate',
  ];
  $element['currency_code'] = [
    '#empty_value' => '',
    '#type' => 'select',
    '#title' => $this
      ->t('Payment currency'),
    '#options' => $form_helper
      ->getCurrencyOptions(),
    '#default_value' => $this
      ->getSetting('currency_code'),
    '#required' => TRUE,
  ];
  $line_items = [];
  foreach ($this
    ->getSetting('line_items_data') as $line_item_data) {
    $line_items[] = Payment::lineItemManager()
      ->createInstance($line_item_data['plugin_id'], $line_item_data['plugin_configuration']);
  }
  $element['line_items'] = [
    '#type' => 'payment_line_items_input',
    '#title' => $this
      ->t('Line items'),
    '#default_value' => $line_items,
    '#required' => TRUE,
    '#currency_code' => '',
  ];
  return $element;
}