You are here

function commerce_extra_settings_submit in Commerce Extra 7

Form submission callback for module settings.

File

./commerce_extra.admin.inc, line 65
Commerce Extra settings for admins.

Code

function commerce_extra_settings_submit($form, &$form_state) {

  // We need this for finding out which submodules are enabled/disabled
  $module_list = module_list();
  $enable = array();
  $disable = array();

  // Loop thru
  foreach (_commerce_extra_features() as $feature => $info) {

    // If module was enabled
    // TODO: Should probably call for features which are going to be enabled
    // but aren't currently enabled yet.
    if (isset($module_list[$feature])) {

      // Invoke submission callback
      $function = $feature . '_commerce_extra_configure_submit';
      if (function_exists($function)) {
        $function($form, $form_state);
      }
    }

    // If new settings differs from current state
    if ($form_state['values'][$feature . '_enable'] != isset($module_list[$feature])) {
      if ($form_state['values'][$feature . '_enable']) {

        // We want enable the submodule
        $enable[] = $feature;
      }
      else {

        // We want disable the submodule
        $disable[] = $feature;
      }
    }
  }

  // Enable/disable possible modules
  if (count($enable) > 0) {
    module_enable($enable);
  }
  if (count($disable) > 0) {
    module_disable($disable);
  }
}