You are here

public function CreditMessaging::buildOptionsForm in Commerce PayPal 8

Provide a form to edit options for this plugin.

Overrides AreaPluginBase::buildOptionsForm

File

src/Plugin/views/area/CreditMessaging.php, line 79

Class

CreditMessaging
Defines a PayPal Credit messaging area handler.

Namespace

Drupal\commerce_paypal\Plugin\views\area

Code

public function buildOptionsForm(&$form, FormStateInterface $form_state) {
  parent::buildOptionsForm($form, $form_state);
  $form['empty']['#description'] = $this
    ->t("Even if selected, this area handler will never render if a valid order cannot be found in the View's arguments.");
  $form['placement'] = [
    '#type' => 'radios',
    '#title' => $this
      ->t('Placement type'),
    '#options' => [
      'cart' => $this
        ->t('Cart'),
      'payment' => $this
        ->t('Payment'),
    ],
    '#default_value' => $this->options['placement'] ?? 'cart',
  ];
  $form['style'] = [
    '#type' => 'radios',
    '#title' => $this
      ->t('Style'),
    '#default_value' => $this->options['style'],
    '#options' => [
      'flex' => $this
        ->t('Banner'),
      'text' => $this
        ->t('Text'),
    ],
  ];
  $states = [
    'visible' => [
      ':input[name="settings[style]"]' => [
        'value' => 'flex',
      ],
    ],
  ];
  $form['color'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Color'),
    '#default_value' => $this->options['color'],
    '#options' => [
      'blue' => $this
        ->t('Blue'),
      'black' => $this
        ->t('Black'),
      'white' => $this
        ->t('White'),
      'white-no-border' => $this
        ->t('White with no border'),
      'gray' => $this
        ->t('Gray'),
      'monochrome' => $this
        ->t('Monochrome'),
      'grayscale' => $this
        ->t('Grayscale'),
    ],
    '#states' => $states,
  ];
  $form['ratio'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Ratio'),
    '#default_value' => $this->options['ratio'],
    '#options' => [
      '1x1' => $this
        ->t('Square (1x1)'),
      '1x4' => $this
        ->t('Tall (1x4)'),
      '8x1' => $this
        ->t('Wide (8x1)'),
      '20x1' => $this
        ->t('Wide and narrow (20x1)'),
    ],
    '#states' => $states,
  ];
  $states = [
    'visible' => [
      ':input[name="settings[style]"]' => [
        'value' => 'text',
      ],
    ],
  ];
  $form['logo_type'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Logo type'),
    '#description' => $this
      ->t('See examples of these options in the <a href="https://developer.paypal.com/docs/limited-release/sdk-credit-messaging/reference/reference-tables/#logo-type" target="_blank">PayPal documentation</a>.'),
    '#default_value' => $this->options['logo_type'],
    '#options' => [
      'primary' => $this
        ->t('Stacked PayPal Credit logo'),
      'alternative' => $this
        ->t('Single line PayPal Credit logo'),
      'inline' => $this
        ->t('Single line PayPal Credit logo without monogram'),
      'none' => $this
        ->t('No logo, only text'),
    ],
    '#states' => $states,
  ];
  $form['logo_position'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Logo position'),
    '#default_value' => $this->options['logo_position'],
    '#options' => [
      'left' => $this
        ->t('Left'),
      'right' => $this
        ->t('Right'),
      'top' => $this
        ->t('Top'),
    ],
    '#states' => $states,
  ];
  $form['text_size'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Text size'),
    '#default_value' => $this->options['text_size'],
    '#options' => [
      '10' => $this
        ->t('10'),
      '11' => $this
        ->t('11'),
      '12' => $this
        ->t('12'),
      '13' => $this
        ->t('13'),
      '14' => $this
        ->t('14'),
      '15' => $this
        ->t('15'),
      '16' => $this
        ->t('16'),
    ],
    '#states' => $states,
  ];
  $form['text_color'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Text color'),
    '#default_value' => $this->options['text_color'],
    '#options' => [
      'black' => $this
        ->t('Black'),
      'white' => $this
        ->t('White'),
      'monochrome' => $this
        ->t('Monochrome'),
      'grayscale' => $this
        ->t('Grayscale'),
    ],
    '#states' => $states,
  ];
}