You are here

function brightcove_field_browser_process in Brightcove Video Connect 7.6

Same name and namespace in other branches
  1. 7.7 brightcove.module \brightcove_field_browser_process()
  2. 7.2 brightcove_field/brightcove_field.module \brightcove_field_browser_process()
  3. 7.3 brightcove_field/brightcove_field.module \brightcove_field_browser_process()
  4. 7.4 brightcove_field/brightcove_field.module \brightcove_field_browser_process()
  5. 7.5 brightcove_field/brightcove_field.module \brightcove_field_browser_process()

Brightcove field form that returns the actual field to the user. Parts of this and subsequent JS taken from Nodereference Explorer. Thanks!

1 string reference to 'brightcove_field_browser_process'
brightcove_element_info in ./brightcove.module
Implements hook_element_info().

File

./brightcove.module, line 766
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_browser_process($element, $form_state, $form) {
  $field_key = $element['#columns'][0];
  $entity_type = $form['#entity_type'];
  $entity_info = entity_get_info($entity_type);
  $eid = $form[$entity_info['entity keys']['id']]['#value'];
  $field_info = field_info_field($element['#field_name']);
  $element[$field_key] = [
    '#type' => 'textfield',
    '#default_value' => isset($element['#value'][$field_key]) ? $element['#value'][$field_key] : '',
    '#autocomplete_path' => 'brightcove_field/autocomplete/' . $element['#field_name'] . '/' . $element['#entity_type'] . '/' . $eid,
    '#maxlength' => 256,
    // The following values were set by the content module and need
    // to be passed down to the nested element.
    '#title' => $element['#title'],
    '#required' => $element['#required'],
    '#description' => $element['#description'],
    '#field_name' => $element['#field_name'],
    '#delta' => $element['#delta'],
    '#columns' => $element['#columns'],
    '#attributes' => [
      'rel' => $element['#field_name'],
      'class' => [
        'brightcove-video-field',
      ],
    ],
  ];
  if (user_access('browse videos')) {

    // Button to browse videos.
    $element['actions']['browse'] = [
      '#type' => 'brightcove_field_browse_button',
      '#id' => $element['#id'] . '-browse',
      '#attributes' => [
        'class' => [
          'brightcove-field-browse-button',
        ],
        'rel' => $element['#id'] . '-video-id',
      ],
      '#value' => t('Browse'),
    ];
  }
  if (user_access('upload videos')) {
    $element['actions']['upload'] = [
      '#type' => 'brightcove_field_browse_button',
      '#id' => $element['#id'] . '-upload',
      '#attributes' => [
        'class' => [
          'brightcove-field-upload-button',
        ],
        'rel' => $element['#id'] . '-video-id',
      ],
      '#value' => t('Upload'),
    ];
  }
  $element['actions']['remove'] = [
    '#type' => 'brightcove_field_browse_button',
    '#id' => $element['#id'] . '-remove',
    '#attributes' => [
      'class' => [
        'brightcove-field-remove-button',
      ],
      'rel' => $element['#id'] . '-video-id',
    ],
    '#value' => t('Remove'),
  ];
  if (!isset($element['#default_value'][$field_key])) {
    $element['actions']['remove']['#attributes']['disabled'] = 'disabled';
  }
  if (empty($brightcove_field_settings[$element['#field_name']])) {
    $brightcove_field_settings[$element['#field_name']] = [
      'brightcove_field' => [
        $element['#field_name'] => [
          'entity_type' => $entity_type,
          'field_name' => $element['#field_name'],
          'entity_id' => $eid,
        ],
      ],
    ];
    drupal_add_js($brightcove_field_settings[$element['#field_name']], [
      'type' => 'setting',
    ]);
  }
  if (empty($element[$field_key]['#element_validate'])) {
    $element[$field_key]['#element_validate'] = [];
  }
  array_unshift($element[$field_key]['#element_validate'], 'brightcove_field_browser_video_validate');
  return $element;
}