You are here

function field_kaltura_remix_textfield_process in Kaltura 6.2

Same name and namespace in other branches
  1. 5 plugins/field_kaltura/field_kaltura.module \field_kaltura_remix_textfield_process()
  2. 6 plugins/field_kaltura/field_kaltura.module \field_kaltura_remix_textfield_process()

Process an individual element.

Build the form element. When creating a form using FAPI #process, note that $element['#value'] is already set.

The $fields array is in $form['#field_info'][$element['#field_name']].

1 string reference to 'field_kaltura_remix_textfield_process'
field_kaltura_elements in plugins/field_kaltura/field_kaltura.module
Implementation of FAPI hook_elements().

File

plugins/field_kaltura/field_kaltura.module, line 723
kaltura integration module - functions to provide kaltura as CCK field

Code

function field_kaltura_remix_textfield_process($element, $edit, $form_state, $form) {
  global $_kaltura_thumbnail_base_url;
  $field = $form['#field_info'][$element['#field_name']];
  $field_key = $element['#columns'][0];
  $delta = $element['#delta'];
  $custom_name = 'edit-' . str_replace('_', '-', $element['#field_name']) . '-' . $delta . '-' . $field_key;
  $element['data'] = array(
    '#tree' => 'true',
  );
  $kaltura_editor_width = variable_get('kaltura_editor_width', '') ? variable_get('kaltura_editor_width', '') : KalturaSettings_SE_WIDTH;
  $kaltura_editor_height = variable_get('kaltura_editor_height', '') ? variable_get('kaltura_editor_height', '') : KalturaSettings_SE_HEIGHT;
  $kaltura_editor_URL = variable_get('kaltura_editor_URL', '') ? variable_get('kaltura_editor_URL', '') : KalturaSettings_SE_URL;

  //Allow passing of Kaltura entry ID as URL argument (mostly to facilitate cloning)
  $entry_id = arg(3);

  //Does this user have access to update the node associated with this entry? If so, it's ok to add it via URL parameter
  if (isset($entry_id)) {
    $entry_metadata = kaltura_get_metadata_for_mix($entry_id);
    $entry_access = node_access('update', node_load($entry_metadata->nid));

    //If the user has access to edit this node OR this entry has no node associated with it (and hence no owner)
    if ($entry_access || !$entry_metadata) {
      $element['#value'][value] = isset($entry_id) ? $entry_id : NULL;
    }
    else {
      $entry_id = null;
    }
  }
  $cw_vars = kaltura_format_cw_vars(array(
    'kshow_id' => 0,
    'partner_data' => '',
    'type' => 'entry',
    'context' => 'field_mix',
    'field_id' => $custom_name,
    'add_filter' => 6,
  ));
  $action_buttons = '<input type="button" value="Add Kaltura Remix" onclick="kalturaInitModalBox(\'' . url('kaltura/contribution_wizard/' . $cw_vars) . '/\'+ get_title(), {width:680, height:380});" /><input type="button" value="Clear" onclick="remove_items_from_field(\'' . $custom_name . '\');" />';
  $action_buttons .= '<input type="button" value="Edit Mix" onclick="if(document.getElementById(\'' . $custom_name . '\').value) { kalturaInitModalBox(\'' . url($kaltura_editor_URL) . '/\' + document.getElementById(\'' . $custom_name . '\').value +\'/entry/empty_partner_data/no_refresh\', {width: ' . $kaltura_editor_width . ', height: ' . $kaltura_editor_height . '}); }" />';
  $field_thumbs = kaltura_get_field_thumbs($element['#value'][$field_key], $custom_name, 'Remix', $element['#required']);
  $element['data'][$custom_name . '_thumbs'] = array(
    '#type' => 'item',
    '#value' => '<div id="' . $custom_name . '_thumbs_div">' . $field_thumbs . '</div>',
  );
  $element['data']['add_video'] = array(
    '#type' => 'item',
    '#description' => $element['#description'],
    '#value' => $action_buttons,
  );
  $element[$field_key] = array(
    '#type' => 'hidden',
    '#default_value' => isset($element['#value'][$field_key]) ? $element['#value'][$field_key] : NULL,
    '#autocomplete_path' => $element['#autocomplete_path'],
    '#size' => !empty($field['widget']['size']) ? $field['widget']['size'] : 60,
    '#attributes' => array(
      'class' => 'text',
      'readonly' => 'readonly',
    ),
    '#readonly' => 'readonly',
    // The following values were set by the content module and need
    // to be passed down to the nested element.
    '#title' => $element['#title'],
    '#description' => $element['#description'],
    '#required' => $element['#required'],
    '#field_name' => $element['#field_name'],
    '#type_name' => $element['#type_name'],
    '#delta' => $element['#delta'],
    '#columns' => $element['#columns'],
  );

  // Used so that hook_field('validate') knows where to flag an error.
  $element['_error_element'] = array(
    '#type' => 'value',
    '#value' => implode('][', array_merge($element['#parents'], array(
      $field_key,
    ))),
  );
  return $element;
}