You are here

function node_kaltura_mix_form in Kaltura 6.2

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

Implementation of hook_form().

Determine how the "add node" form, of mix node, will look like

We actually use a 2 steps form, the one for collecting basic data (needed in kaltura's API) about the mix the second step is to call the contibution wizard to add media to the mix.

The mix is being created b an API call to kaltura.

File

plugins/node_kaltura_mix/node_kaltura_mix.module, line 229

Code

function node_kaltura_mix_form(&$node, $form_state) {
  global $user;
  $kaltura_editor_URL = variable_get('kaltura_editor_URL', '') ? variable_get('kaltura_editor_URL', '') : KalturaSettings_SE_URL;
  $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;
  $type = node_get_types('type', $node);

  // if nid exists, it means we are in edit node mode
  if ($node->nid) {
    $form['title'] = array(
      '#type' => 'textfield',
      '#title' => check_plain($type->title_label),
      '#required' => TRUE,
      '#default_value' => $node->title,
      '#weight' => -5,
    );
    $form['body_filter']['body'] = array(
      '#type' => 'textarea',
      '#title' => check_plain($type->body_label),
      '#default_value' => $node->body,
      '#rows' => 20,
      '#required' => FALSE,
    );

    //NOTE CM: removed this and enabled player's edit button properly.  is this the right workflow, or should we disable kaltura editor on node edit page completely?
    $action_buttons = '<input type="button" value="Edit Mix" onclick=" kalturaInitModalBox(\'' . url($kaltura_editor_URL) . '\' + \'/' . $node->kaltura_entryId . '\' + \'/entry/empty_partner_data/no_refresh\', { width: ' . $kaltura_editor_width . ', height: ' . $kaltura_editor_height . ' });" />';
    $form['edit_mix'] = array(
      '#type' => 'item',
      '#value' => $action_buttons,
    );

    //-----------
    $form['kaltura_tags'] = array(
      '#type' => 'hidden',
      '#title' => 'Kaltura Tags',
      '#required' => FALSE,
      '#default_value' => $node->kaltura_tags,
      '#weight' => -4,
    );
    $form['kaltura_admin_tags'] = array(
      '#type' => 'hidden',
      '#title' => 'Kaltura Admin Tags',
      '#required' => FALSE,
      '#default_value' => $node->kaltura_admin_tags,
      '#weight' => -3,
    );
    $form['kaltura_entryId'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kaltura_entryId,
    );
    $form['media_preview'] = array(
      '#type' => 'item',
      '#title' => t('Media'),
      '#value' => kaltura_replace_tags(theme('node_kaltura_mix_entryId', $node, 0), false, false, true),
      '#weight' => 0,
    );
    $form['kstatus'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kstatus,
    );
    $form['kaltura_total_rank'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kaltura_total_rank,
    );
    $form['kaltura_rank'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kaltura_rank,
    );
    $form['kaltura_votes'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kaltura_votes,
    );
    $form['kaltura_plays'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kaltura_plays,
    );
    $form['kaltura_views'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kaltura_views,
    );
    $form['kaltura_media_date'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kaltura_media_date,
    );
    $form['kaltura_download_url'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kaltura_download_url,
    );
    $form['kaltura_height'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kaltura_height,
    );
    $form['kaltura_width'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kaltura_width,
    );
    $form['kaltura_source_link'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kaltura_source_link,
    );
    $form['kaltura_source_id'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kaltura_source_id,
    );
    $form['kaltura_source'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kaltura_source,
    );
    $form['kaltura_partner_data'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kaltura_partner_data,
    );
    $form['kaltura_thumbnail_url'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kaltura_thumbnail_url,
    );
    $form['kaltura_duration'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kaltura_duration,
    );
    $form['kaltura_media_type'] = array(
      '#type' => 'hidden',
      '#default_value' => $node->kaltura_media_type,
    );
  }
  else {
    $form['kaltura_tags'] = array(
      '#type' => 'hidden',
      '#title' => 'Kaltura Tags',
      '#required' => FALSE,
      '#default_value' => $node->kaltura_tags ? $node->kaltura_tags : $_REQUEST['kaltura_tags'],
    );
    $form['kaltura_admin_tags'] = array(
      '#type' => 'hidden',
      '#title' => 'Kaltura Admin Tags',
      '#required' => FALSE,
      '#default_value' => $node->kaltura_admin_tags ? $node->kaltura_admin_tags : $_REQUEST['kaltura_admin_tags'],
    );
    $form['title'] = array(
      '#type' => 'textfield',
      '#title' => check_plain($type->title_label),
      '#required' => TRUE,
      '#default_value' => $node->title ? $node->title : $_REQUEST['title'],
      '#weight' => -5,
    );
    $form['#multistep'] = TRUE;
    $form['#redirect'] = FALSE;
    $form['submit'] = array(
      '#type' => 'submit',
      '#value' => t('Continue'),
      '#weight' => 10,
    );

    // if form state have a continue attribute, it means we are on the
    // second step of the form so we create the mix using kaltura API
    // client, and then we start the contribution wizard to add media
    if ($_REQUEST['title'] && $form_state['storage']['continue']) {
      $partner_data = "user_id@" . $user->uid;
      $kaltura_client = KalturaHelpers::getKalturaClient(true);

      // in order to add admin tags, admin session must be established
      $session_user = KalturaHelpers::getSessionUser();
      if (WORK_WITH_KSHOW) {
        $result = kaltura_add_kshow($session_user, $kaltura_client, $partner_data);
        $partner_data .= "|kshow_exist@yes";
        $show_entry_id = $result['result']['kshow']['id'];
        $cw_vars = kaltura_format_cw_vars(array(
          'kshow_id' => $show_entry_id,
          'partner_data' => $partner_data,
        ));
        $prefix = "<div class=\"add_video_to_node\"><script>jQuery(document).ready(function(){\n             kalturaInitModalBox('" . url("kaltura/contribution_wizard/" . $cw_vars) . "/'+get_title()); \n        });</script>";
        kaltura_create_node_from_kshow($result['result']);
      }
      else {
        $result = kaltura_add_roughcut($session_user, $kaltura_client, $partner_data);
        $partner_data .= "|kshow_exist@yes";
        $show_entry_id = $result->id;
        $cw_vars = kaltura_format_cw_vars(array(
          'kshow_id' => $show_entry_id,
          'partner_data' => $partner_data,
          'type' => 'entry',
          'context' => 'kaltura_mix',
        ));
        $prefix = "<div class=\"add_video_to_node\"><script>jQuery(document).ready(function(){ \n          kalturaInitModalBox('" . url("kaltura/contribution_wizard/" . $cw_vars) . "/'+get_title()); \n        });</script>";

        // $prefix = "<div class=\"add_video_to_node\"><script>jQuery(document).ready(function(){ alert(get_title()); });</script>";
        kaltura_create_node_from_roughcut($result);
      }
      $form["add_kaltura"] = array(
        "#prefix" => $prefix,
        "#type" => "item",
        "#value" => "",
        "#suffix" => "</div>",
      );
    }
  }
  return $form;
}