get("field_test.widget_alter_test")) { if ($alter_info['widget'] === 'test_field_widget_multiple_single_value') { $info['test_field_widget_multiple_single_value']['field_types'][] = 'test_field'; } } } /** * Implements hook_field_storage_config_update_forbid(). */ function field_test_field_storage_config_update_forbid(FieldStorageConfigInterface $field_storage, FieldStorageConfigInterface $prior_field_storage) { if ($field_storage->getType() == 'test_field' && $field_storage->getSetting('unchangeable') != $prior_field_storage->getSetting('unchangeable')) { throw new FieldStorageDefinitionUpdateForbiddenException("field_test 'unchangeable' setting cannot be changed'"); } } /** * Sample 'default value' callback. */ function field_test_default_value(FieldableEntityInterface $entity, FieldDefinitionInterface $definition) { return [['value' => 99]]; } /** * Implements hook_entity_field_access(). */ function field_test_entity_field_access($operation, FieldDefinitionInterface $field_definition, AccountInterface $account, FieldItemListInterface $items = NULL) { if ($field_definition->getName() == "field_no_{$operation}_access") { return AccessResult::forbidden(); } // Only grant view access to test_view_field fields when the user has // 'view test_view_field content' permission. if ($field_definition->getName() == 'test_view_field' && $operation == 'view') { return AccessResult::forbiddenIf(!$account->hasPermission('view test_view_field content'))->cachePerPermissions(); } return AccessResult::allowed(); }