You are here

function defaultconfig_disable_fields in Default config 7

1 string reference to 'defaultconfig_disable_fields'
defaultconfig_defaultconfig_components in ./defaultconfig.module
Implements hook_defaultconfig_components().

File

./defaultconfig.module, line 223
main module file.

Code

function defaultconfig_disable_fields($component, $default_fields, $module = FALSE) {
  field_info_cache_clear();

  // We need to know what fields are defined by features.
  module_load_include('inc', 'features', 'features.export');
  features_include();
  features_include_defaults(array(
    'field',
  ));
  $features_fields = features_get_default('field');
  if (isset($default_fields)) {
    foreach ($default_fields as $name => $field) {

      // Do not interfere with fields exported by features.
      if (!isset($features_fields[$name])) {

        // We only care about fields that are already created.
        $field_config = $field['field_config'];
        if ($existing_field = field_info_field($field_config['field_name'])) {

          // Only a field can be marked as inactive, so we can't do anything
          // about the instances unfortunately.
          $field_config['active'] = 0;
          field_update_field($field_config);
        }
        variable_set('menu_rebuild_needed', TRUE);
      }
    }
  }
}