function defaultconfig_optional_admin_submit in Default config 7
File
- ./
defaultconfig.admin.inc, line 123 - Main administration page for default config.
Code
function defaultconfig_optional_admin_submit($form, &$form_state) {
$components = defaultconfig_get_components();
$enabled_optionals = array();
defaultconfig_include();
foreach ($form_state['values']['components'] as $type => $optionals) {
$optional_values = array();
if (isset($components[$type])) {
defaultconfig_component_include($components[$type]);
$defaults = module_invoke_all($components[$type]['hook']);
$selected_defaults = array();
$not_selected = array();
foreach ($optionals as $name => $status) {
if (!empty($defaults[$name]) && $status) {
$selected_defaults[$name] = $defaults[$name];
}
else {
$not_selected[$name] = $defaults[$name];
}
$optional_values[$name] = $status;
}
// Save enabled stuff.
$components[$type]['rebuild callback']($components[$type], $selected_defaults);
// Disable the rest.
if (isset($components[$type]['disable callback'])) {
$components[$type]['disable callback']($components[$type], $not_selected);
}
foreach ($optional_values as $name => $optional_status) {
$name = $type . ':' . $name;
if (isset($form_state['optional_settings'][$name])) {
$optional = $form_state['optional_settings'][$name];
}
else {
$optional = new stdClass();
$optional->export_type = 0;
}
$enabled_optionals[] = $name;
$optional->name = $name;
$optional->status = $optional_status;
ctools_export_crud_save('defaultconfig_optionals', $optional);
}
}
}
}