You are here

function field_kaltura_field_widget_form in Kaltura 7.3

Same name and namespace in other branches
  1. 7.2 plugins/field_kaltura/field_kaltura.module \field_kaltura_field_widget_form()

Implements hook_field_widget_form().

File

plugins/field_kaltura/field_kaltura.module, line 296
Kaltura as a field primary module file.

Code

function field_kaltura_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
  $item = isset($items[$delta]) ? $items[$delta] : NULL;
  $name = $field['field_name'];
  $entry_val = isset($items[$delta]['entryid']) ? $items[$delta]['entryid'] : '';
  $mediat_val = isset($items[$delta]['mediatype']) ? $items[$delta]['mediatype'] : '';
  $custom_cw = $form_state['field'][$element['#field_name']][$element['#language']]['field']['settings']['custom_cw'];
  $add_existing = $form_state['field'][$element['#field_name']][$element['#language']]['field']['settings']['add_existing'];
  $button_text = !empty($form_state['field'][$element['#field_name']][$element['#language']]['field']['settings']['kcw_button_text']) ? $form_state['field'][$element['#field_name']][$element['#language']]['field']['settings']['kcw_button_text'] : t('Add media');
  $element += array(
    '#delta' => $delta,
  );
  switch ($instance['widget']['type']) {
    case 'field_kaltura_video':
      $instance['uiconf'] = $custom_cw ? $custom_cw : KALTURASETTINGS_CW_UICONF_ID_VIDEO;
      $widget = kaltura_widget_hendler($instance, $entry_val, $mediat_val, $name, $add_existing, $button_text);
      $element += $widget;
      break;
    case 'field_kaltura_audio':
      $instance['uiconf'] = $custom_cw ? $custom_cw : KALTURASETTINGS_CW_UICONF_ID_AUDIO;
      $widget = kaltura_widget_hendler($instance, $entry_val, $mediat_val, $name, $add_existing, $button_text);
      $element += $widget;
      break;
    case 'field_kaltura_image':
      $instance['uiconf'] = $custom_cw ? $custom_cw : KALTURASETTINGS_CW_UICONF_ID_IMAGE;
      $widget = kaltura_widget_hendler($instance, $entry_val, $mediat_val, $name, $add_existing, $button_text);
      $element += $widget;
      break;
    case 'field_kaltura_web_cam':
      $instance['uiconf'] = $custom_cw ? $custom_cw : KALTURASETTINGS_CW_COMMENTS_UICONF_ID;
      $widget = kaltura_widget_hendler($instance, $entry_val, $mediat_val, $name, $add_existing, $button_text);
      $element += $widget;
      break;
    case 'field_kaltura_all_media':
      $instance['uiconf'] = $custom_cw ? $custom_cw : KALTURASETTINGS_CW_UICONF_ID;
      $widget = kaltura_widget_hendler($instance, $entry_val, $mediat_val, $name, $add_existing, $button_text);
      $element += $widget;
      break;
  }
  if (!empty($instance['required'])) {
    $element['entryid']['#required'] = 1;
    $element['button']['#markup'] .= theme('form_required_marker', array());
  }
  $entity_info = entity_get_info($instance['entity_type']);
  $element['settings'] = array(
    '#type' => 'fieldset',
    '#title' => t('Override format settings'),
    '#description' => t('Format settings for this media can be overridden exclusively for this %bundle.', array(
      '%bundle' => $entity_info['bundles'][$instance['bundle']]['label'],
    )),
    '#collapsible' => TRUE,
    '#collapsed' => empty($item['settings']),
  );
  foreach (array_keys($instance['display']) as $mode_name) {
    $overridden_settings = !empty($item['settings'][$mode_name]['non_default']) ? $item['settings'][$mode_name]['settings'] : array();
    $element['settings'][$mode_name] = array(
      '#type' => 'fieldset',
      '#title' => $mode_name == 'default' ? t('Default view mode') : $entity_info['view modes'][$mode_name]['label'],
      '#collapsible' => TRUE,
      '#collapsed' => !$overridden_settings,
    );
    $element['settings'][$mode_name]['non_default'] = array(
      '#type' => 'checkbox',
      '#title' => t('Override settings for this view mode'),
      '#default_value' => !!$overridden_settings,
    );
    $element['settings'][$mode_name]['settings'] = array(
      '#type' => 'fieldset',
      '#states' => array(
        'invisible' => array(
          ':input[name="' . $element['#field_name'] . '[' . $langcode . '][' . $delta . '][settings][' . $mode_name . '][non_default]"]' => array(
            'checked' => FALSE,
          ),
        ),
      ),
    );
    $element['settings'][$mode_name]['settings'] += field_kaltura_field_formatter_settings_form($field, $instance, $mode_name, $form, $form_state);
    foreach ($overridden_settings as $name => $value) {
      $element['settings'][$mode_name]['settings'][$name]['#default_value'] = $value;
    }
  }
  return $element;
}