function availability_calendars_admin_settings_submit in Availability Calendars 6.2
Same name and namespace in other branches
- 7.2 availability_calendars.admin.inc \availability_calendars_admin_settings_submit()
Form submit callback for the admin_settings form
Processes the submitted form. The states are non system settings, and are handled here. Other values are handled by the default system settings form handling.
1 string reference to 'availability_calendars_admin_settings_submit'
- availability_calendars_admin_settings in ./
availability_calendars.admin.inc - Retrieve form callback for the admin/settings/availability-calendars/settings page.
File
- ./
availability_calendars.admin.inc, line 246
Code
function availability_calendars_admin_settings_submit($form, &$form_state) {
$op = isset($form_state['values']['op']) ? $form_state['values']['op'] : '';
if ($op == t('Save configuration')) {
// Process the state settings here and do not pass them to the default submit handler for system settings forms
$element = $form_state['values']['states'];
unset($form_state['values']['states']);
// Extract the states
$states = array();
foreach ($element as $i => $state_fields) {
// Only add non-empty labels
if (!empty($state_fields['label'])) {
if (empty($state_fields['class'])) {
$state_fields['class'] = availability_calendars_string_to_safe_id($state_fields['label']);
}
$states[$state_fields['class']] = array(
'class' => $state_fields['class'],
'label' => $state_fields['label'],
'weight' => $state_fields['weight'],
'is_available' => $state_fields['is_available'],
);
}
}
$default = $form_state['values']['defaultstatus'];
if (!empty($element[$default]['class'])) {
$form_state['values']['availability_calendars_settings_system']['defaultstatus'] = $element[$default]['class'];
}
// finally, save the states
availability_calendars_update_states($states);
// Remove all per node settings if the setting changes from yes to no
if ($form_state['values']['availability_calendars_settings_system_pernodeoverride'] == 0) {
$settings = availability_calendars_get_settings();
if ($settings->pernodeoverride) {
availability_calendars_delete_node_settings();
}
}
// Clean-up the representation of supported content types before storing it as a variable.
$form_state['values']['availability_calendars_settings_content_types'] = array_keys(array_filter($form_state['values']['availability_calendars_settings_content_types']));
}
}