You are here

function brightcove_field_formatter_settings_form in Brightcove Video Connect 7.7

Same name and namespace in other branches
  1. 7.6 brightcove.module \brightcove_field_formatter_settings_form()

Impelements hook_field_formatter_settings_form().

_state

Parameters

$field:

$instance:

$view_mode:

$form:

Return value

array

File

./brightcove.module, line 587
Brightcove module is an integration layer between any modules using Brightcove API. It makes all necessary checks for the API and makes settings available to the user.

Code

function brightcove_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) {
  $display = $instance['display'][$view_mode];
  $settings = $display['settings'];
  $element = [];
  if ($display['type'] == 'brightcove_default') {
    $element['width'] = [
      '#title' => t('Width'),
      '#type' => 'textfield',
      '#default_value' => $settings['width'],
      '#required' => TRUE,
      '#element_validate' => [
        'brightcove_field_formatter_width_validate',
      ],
      '#formatter_type' => $display['type'],
    ];
    $element['height'] = [
      '#title' => t('Height'),
      '#type' => 'textfield',
      '#default_value' => $settings['height'],
      '#required' => TRUE,
      '#element_validate' => [
        'brightcove_field_formatter_height_validate',
      ],
      '#formatter_type' => $display['type'],
    ];
  }
  if ($display['type'] == 'brightcove_image') {
    $image_styles = image_style_options(FALSE);
    $element['brightcove_image_style'] = [
      '#title' => t('Image style'),
      '#type' => 'select',
      '#default_value' => $settings['brightcove_image_style'],
      '#empty_option' => t('None (original image)'),
      '#options' => $image_styles,
    ];
    $link_types = [
      'entity' => t('Entity'),
      'dialog' => t('Dialog'),
    ];
    $element['brightcove_image_link'] = [
      '#title' => t('Link image to'),
      '#type' => 'select',
      '#default_value' => $settings['brightcove_image_link'],
      '#empty_option' => t('Nothing'),
      '#options' => $link_types,
      '#attributes' => [
        'class' => [
          'brightcove-image-link',
        ],
      ],
    ];
    $element['width'] = [
      '#title' => t('Width'),
      '#type' => 'textfield',
      '#default_value' => $settings['width'],
      '#element_validate' => [
        'brightcove_field_formatter_width_validate',
      ],
      '#formatter_type' => $display['type'],
      '#states' => [
        'visible' => [
          ':input[class="brightcove-image-link"]' => [
            'value' => 'dialog',
          ],
        ],
      ],
    ];
    $element['height'] = [
      '#title' => t('Height'),
      '#type' => 'textfield',
      '#default_value' => $settings['height'],
      '#element_validate' => [
        'brightcove_field_formatter_height_validate',
      ],
      '#formatter_type' => $display['type'],
      '#states' => [
        'visible' => [
          ':input[name="brightcove-image-link"]' => [
            'value' => 'dialog',
          ],
        ],
      ],
    ];
    if ($instance['widget']['type'] == BRIGHTCOVE_VIDEO_WIDGET) {
      $image_types = [
        'thumbnail' => t('Thumbnail'),
        'poster' => t('Poster'),
      ];
      $element['brightcove_image_type'] = [
        '#title' => t('Image type'),
        '#type' => 'select',
        '#default_value' => $settings['brightcove_image_type'],
        '#empty_option' => t('Default'),
        '#options' => $image_types,
      ];
    }
    else {
      $element['brightcove_image_type'] = [
        '#type' => 'value',
        '#value' => 'thumbnail',
      ];
    }
  }
  if ($display['type'] == 'brightcove_metadata') {
    $type = $instance['widget']['type'] == BRIGHTCOVE_VIDEO_WIDGET ? 'video' : 'playlist';
    $metadata_options = _brightcove_field_get_object_formatter_keys($type);
    $element['brightcove_metadata_type'] = [
      '#title' => t('Metadata type'),
      '#type' => 'select',
      '#default_value' => $settings['brightcove_metadata_type'],
      '#options' => $metadata_options,
    ];
  }
  return $element;
}