diff --git a/src/functions.php b/src/functions.php index 6a5e250..9dc85ca 100644 --- a/src/functions.php +++ b/src/functions.php @@ -6,6 +6,7 @@ require_once __DIR__ . '/functions/cache.php'; require_once __DIR__ . '/functions/common.php'; require_once __DIR__ . '/functions/db.php'; +require_once __DIR__ . '/functions/field.php'; require_once __DIR__ . '/functions/file.php'; require_once __DIR__ . '/functions/form.php'; require_once __DIR__ . '/functions/lock.php'; diff --git a/src/functions/field.php b/src/functions/field.php new file mode 100644 index 0000000..024d77c --- /dev/null +++ b/src/functions/field.php @@ -0,0 +1,53 @@ +getDefinitions(); + $field['type'] = match ($field['type']) { + 'datestamp' => 'datetime', + 'list_text' => 'list_string', + default => isset($info["retrofit_field:$field[type]"]) ? "retrofit_field:$field[type]" : $field['type'], + }; + $field_storage = FieldStorageConfig::create($field + ['entity_type' => 'node']); + $field_storage->save(); + return $field_storage; +} + +/** + * @param array{ + * field_name: string, + * entity_type: string, + * bundle: string + * } $instance + */ +function field_create_instance(array $instance): FieldConfigInterface +{ + $field = FieldConfig::create($instance); + $field->save(); + return $field; +} + +function field_info_field(string $field_name): ?FieldStorageConfigInterface +{ + return FieldStorageConfig::loadByName('node', $field_name); +} + +function field_info_instance(string $entity_type, string $field_name, string $bundle_name): ?FieldConfigInterface +{ + return FieldConfig::loadByName($entity_type, $bundle_name, $field_name); +}