function commons_events_node_form_submit in Drupal Commons 7.3
Custom node form submit handler.
1 string reference to 'commons_events_node_form_submit'
- commons_events_form_node_form_alter in modules/
commons/ commons_events/ commons_events.module - Implements hook_form_BASE_FORM_ID_alter().
File
- modules/
commons/ commons_events/ commons_events.module, line 359
Code
function commons_events_node_form_submit($form, $form_state) {
$node = $form_state['node'];
$language = isset($form_state['language']) ? $form_state['language'] : LANGUAGE_NONE;
if (isset($node->nid)) {
$settings = registration_entity_settings('node', $node->nid);
$settings['status'] = (int) $form_state['values']['field_status'];
if ($form_state['values']['field_registration_type'][$language]['0']['value'] == 'external') {
$settings['status'] = 0;
}
if (!empty($form_state['values']['field_number_of_attendees'][$language]['0']['value']) && is_numeric($form_state['values']['field_number_of_attendees'][$language]['0']['value'])) {
$settings['capacity'] = (int) $form_state['values']['field_number_of_attendees'][$language]['0']['value'];
}
$settings['settings'] = serialize($settings['settings']);
registration_update_entity_settings('node', $node->nid, $settings);
// Automatically register the node creator for the event.
$registration_type = registration_get_entity_registration_type('node', $node);
$values = array(
'entity_type' => 'node',
'entity_id' => $node->nid,
'type' => $registration_type,
);
$registration = entity_create('registration', $values);
if (!isset($node->uid)) {
global $user;
$uid = $user->uid;
}
else {
$uid = $node->uid;
}
if ($settings['status'] == 1 && !registration_is_registered($registration, NULL, $uid)) {
$registration->user_uid = $uid;
$registration->author_uid = $uid;
$registration->state = NULL;
$registration->count = 1;
registration_save($registration);
}
}
}