function pm_field_instance_create_if_required in Drupal PM (Project Management) 7.3
Same name and namespace in other branches
- 8 includes/pm.field.inc \pm_field_instance_create_if_required()
- 7.2 includes/pm.field.inc \pm_field_instance_create_if_required()
Create specific field instance if not present.
1 call to pm_field_instance_create_if_required()
- pm_field_instances_create_if_required in includes/
pm.field.inc - Iterate through an array of field instances, creating if not present.
File
- includes/
pm.field.inc, line 132 - Field creation functions.
Code
function pm_field_instance_create_if_required($field_name, $field_instance) {
$field_name = $field_instance['field_name'];
$entity_type = $field_instance['entity_type'];
$bundle_name = $field_instance['bundle'];
$field = field_info_field($field_name);
$entity_type = $field_instance['entity_type'];
// Create only if field is defined.
try {
if ($field) {
// Try to load field_instance if present.
$instance_info = field_info_instance($entity_type, $field_name, $bundle_name);
// Create ony if instance is not present.
if (empty($instance_info)) {
field_create_instance($field_instance);
return PM_FIELD_INSTANCE_CREATE_SUCCESS;
}
else {
// Update field_instance if already present.
$merged_settings = $field_instance + $instance_info;
field_update_instance($merged_settings);
return PM_FIELD_INSTANCE_UPDATE_SUCCESS;
}
}
} catch (Exception $e) {
watchdog('pm', 'See ' . __FUNCTION__ . '() ' . $e
->getTraceAsString(), NULL, WATCHDOG_ERROR);
}
return PM_FIELD_INSTANCE_CREATE_FAILURE;
}