You are here

function opigno_live_meetings_form_create_live_meeting_submit in Opigno Moxtra App 7

Form submit handler for the moxtra video conference node add form.

_state

Parameters

array $form:

1 string reference to 'opigno_live_meetings_form_create_live_meeting_submit'
opigno_live_meetings_form_node_form_alter in modules/opigno_live_meetings/includes/opigno_live_meetings.form.inc
Implements hook_form_FORM_ID_alter().

File

modules/opigno_live_meetings/includes/opigno_live_meetings.form.inc, line 80

Code

function opigno_live_meetings_form_create_live_meeting_submit($form, &$form_state) {
  $form_values = $form_state['values'];
  $title = $form_values['title'];

  //Create new moxtra video conference node for all the dates and schedule the meeting
  foreach ($form_values['meeting_dates'][LANGUAGE_NONE] as $index => $meeting_date) {

    //Drupal add "add_more" key in array for whatever reason => skip string keys
    if (!is_numeric($index)) {
      continue;
    }

    //Generate random unique_id (used to have access permissions on the meeting)
    $unique_id = $form['#node']->uid;
    $start_time = opigno_live_meetings_form_format_date_value_to_iso8601($meeting_date['value'], $meeting_date['timezone']);
    if ($meeting_date['value'] <= $meeting_date['value2']) {
      $end_time = '';
    }
    else {
      $end_time = opigno_live_meetings_form_format_date_value_to_iso8601($meeting_date['value2'], $meeting_date['timezone']);
    }
    $response = opigno_live_meetings_api_create_live_meeting($unique_id, $title, $start_time, $end_time);
    $session_key = $response->data->session_key;
    $schedule_binder_id = $response->data->schedule_binder_id;
    if ($index == 0) {

      //Use current form to create the first node with first date
      $form_state['values']['opigno_calendar_date'][LANGUAGE_NONE][0] = $meeting_date;
      $form_state['values']['schedule_binder_id'][LANGUAGE_NONE][0]['value'] = $schedule_binder_id;
      $form_state['values']['session_key'][LANGUAGE_NONE][0]['value'] = $session_key;
    }
    else {

      //Create new nodes for all following dates
      $values = array(
        'title' => $form_values['title'],
        'type' => 'live_meeting',
        'uid' => $unique_id,
        'status' => 1,
        'comment' => 1,
        'promote' => 0,
      );
      $entity = entity_create('node', $values);
      $wrapper = entity_metadata_wrapper('node', $entity);
      $wrapper->unique_id
        ->set($unique_id);
      $wrapper->schedule_binder_id
        ->set($schedule_binder_id);
      $wrapper->session_key
        ->set($session_key);
      $wrapper->opigno_calendar_date
        ->set($meeting_date);
      $wrapper
        ->save();
    }
  }
}