function field_default_token_field_config_presave in Field default token 8
Implements hook_ENTITY_TYPE_presave() for field configuration.
File
- ./
field_default_token.module, line 22 - Enables to use tokens as field default values.
Code
function field_default_token_field_config_presave(FieldConfigInterface $field_config) {
// See https://www.drupal.org/node/2818877.
/** @var \Drupal\field\FieldConfigInterface|\Drupal\Core\Field\FieldConfigInterface $field_config */
$has_tokens = FALSE;
foreach ($field_config
->getDefaultValueLiteral() as $item) {
foreach ($item as $property_value) {
if (is_array($property_value)) {
continue;
}
elseif (strpos($property_value, '[') !== FALSE) {
$has_tokens = TRUE;
}
}
}
$callback = $field_config
->getDefaultValueCallback();
if (!$callback && $has_tokens) {
$field_config
->setDefaultValueCallback('field_default_token_default_value_callback');
}
elseif ($callback === 'field_default_token_default_value_callback' && !$has_tokens) {
$field_config
->setDefaultValueCallback(NULL);
}
}