function tools_admin_form_submit in Tools 7
Submit handler for the 'manage features' form
File
- ./
tools.admin.inc, line 163
Code
function tools_admin_form_submit($form, &$form_state) {
// Compare submitted values to enabled modules
$confirmation = false;
$features = tools_get_features();
$enabled_features = array();
foreach ($features as $feature) {
if ($feature->status == 1) {
$enabled_features[] = $feature->name;
}
}
foreach ($form_state['values']['status'] as $feature_name => $feature_status) {
// Are we disabling a feature?
if ($feature_status == 0 && in_array($feature_name, $enabled_features)) {
$confirmation = true;
}
}
// Only show confirmation form if a feature is being disabled
if (!isset($form_state['storage']['confirm']) && $confirmation) {
$form_state['storage']['confirm'] = TRUE;
$form_state['rebuild'] = TRUE;
}
else {
// Process the form
// Increase memory limits
ini_set('memory_limit', '512M');
ini_set('max_execution_time', '60');
$status = $form_state['values']['status'];
$install = array_keys(array_filter($status));
$disable = array_diff(array_keys($status), $install);
// Disable first. If there are any features that are disabled that are
// dependencies of features that have been queued for install, they will
// be re-enabled.
module_disable($disable);
features_install_modules($install);
if (module_exists('views')) {
ctools_include('export');
ctools_export_load_object_reset('views_view');
}
menu_rebuild();
menu_cache_clear_all();
drupal_flush_all_caches();
drupal_set_message(t('The configuration options have been saved.'));
}
}