You are here

public function BlazyAdminBase::mediaSwitchForm in Blazy 8.2

Same name and namespace in other branches
  1. 8 src/Form/BlazyAdminBase.php \Drupal\blazy\Form\BlazyAdminBase::mediaSwitchForm()
  2. 7 src/Form/BlazyAdminBase.php \Drupal\blazy\Form\BlazyAdminBase::mediaSwitchForm()

Returns re-usable media switch form elements.

1 call to BlazyAdminBase::mediaSwitchForm()
BlazyAdminFormatterBase::basicImageForm in src/Form/BlazyAdminFormatterBase.php
Defines re-usable basic form elements.

File

src/Form/BlazyAdminBase.php, line 443

Class

BlazyAdminBase
A base for blazy admin integration to have re-usable methods in one place.

Namespace

Drupal\blazy\Form

Code

public function mediaSwitchForm(array &$form, $definition = []) {
  $settings = isset($definition['settings']) ? $definition['settings'] : [];
  $lightboxes = $this->blazyManager
    ->getLightboxes();
  $is_token = $this->blazyManager
    ->getModuleHandler()
    ->moduleExists('token');
  if (isset($settings['media_switch'])) {
    $form['media_switch'] = $this
      ->baseForm($definition)['media_switch'];
    $form['media_switch']['#prefix'] = '<h3 class="form__title form__title--media-switch">' . $this
      ->t('Media switcher') . '</h3>';
    if (empty($definition['no_ratio'])) {
      $form['ratio'] = $this
        ->baseForm($definition)['ratio'];
    }
  }

  // Optional lightbox integration.
  if (!empty($lightboxes) && isset($settings['media_switch'])) {
    $form['box_style'] = $this
      ->baseForm($definition)['box_style'];
    if (!empty($definition['multimedia'])) {
      $form['box_media_style'] = $this
        ->baseForm($definition)['box_media_style'];
    }
    if (!empty($definition['box_captions'])) {
      $form['box_caption'] = [
        '#type' => 'select',
        '#title' => $this
          ->t('Lightbox caption'),
        '#options' => $this
          ->getLightboxCaptionOptions(),
        '#weight' => -95,
        '#states' => $this
          ->getState(static::STATE_LIGHTBOX_ENABLED, $definition),
        '#description' => $this
          ->t('Automatic will search for Alt text first, then Title text. Try selecting <strong>- None -</strong> first when changing if trouble with form states.'),
      ];
      $form['box_caption_custom'] = [
        '#title' => $this
          ->t('Lightbox custom caption'),
        '#type' => 'textfield',
        '#weight' => -94,
        '#states' => $this
          ->getState(static::STATE_LIGHTBOX_CUSTOM, $definition),
        '#description' => $this
          ->t('Multi-value rich text field will be mapped to each image by its delta.'),
      ];
      if ($is_token) {
        $types = isset($definition['entity_type']) ? [
          $definition['entity_type'],
        ] : [];
        $types = isset($definition['target_type']) ? array_merge($types, [
          $definition['target_type'],
        ]) : $types;
        $form['box_caption_custom']['#field_suffix'] = [
          '#theme' => 'token_tree_link',
          '#text' => $this
            ->t('Tokens'),
          '#token_types' => $types,
        ];
      }
    }
  }
  $this->blazyManager
    ->getModuleHandler()
    ->alter('blazy_media_switch_form_element', $form, $definition);
}