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();
}
}
}