function defaultconfig_component_rebuild_fields in Default config 7
1 string reference to 'defaultconfig_component_rebuild_fields'
- defaultconfig_defaultconfig_components in ./
defaultconfig.module - Implements hook_defaultconfig_components().
File
- ./
defaultconfig.module, line 182 - main module file.
Code
function defaultconfig_component_rebuild_fields(array $info, $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])) {
// Create or update field.
$field_config = $field['field_config'];
if ($existing_field = field_read_field($field_config['field_name'], array(
'include_inactive' => TRUE,
))) {
// If this field is inactive, we need to activate it first.
if (!$existing_field['active']) {
db_update('field_config')
->fields(array(
'active' => 1,
))
->condition('field_name', $field_config['field_name'])
->execute();
}
field_update_field($field_config);
}
else {
field_create_field($field_config);
}
// Create or update field instance.
$field_instance = $field['field_instance'];
$existing_instance = field_info_instance($field_instance['entity_type'], $field_instance['field_name'], $field_instance['bundle']);
if ($existing_instance) {
field_update_instance($field_instance);
}
else {
field_create_instance($field_instance);
}
variable_set('menu_rebuild_needed', TRUE);
}
}
}
}