function bundle_clone_clone in bundle clone 7
1 call to bundle_clone_clone()
File
- ./
bundle_clone.clone.inc, line 71
Code
function bundle_clone_clone($config, $fields) {
$instances = field_info_instances($config->entity_type, $config->source);
if (!$fields) {
$fields = array_keys($instances);
}
$target_instances = field_info_instances($config->entity_type, $config->target);
foreach ($fields as $field) {
$source = $instances[$field];
if (isset($target_instances[$field])) {
$target = $target_instances[$field];
drupal_set_message(t('Updating @instance', array(
'@instance' => $field,
)));
foreach (array(
'widget',
'settings',
'display',
) as $component) {
$target[$component] = $source[$component] + $target[$component];
}
field_update_instance($target);
}
else {
drupal_set_message(t('Creating @instance', array(
'@instance' => $field,
)));
unset($source['id']);
$source['bundle'] = $config->target;
field_create_instance($source);
}
}
}