function dynamic_entity_reference_entity_test_entity_base_field_info in Dynamic Entity Reference 8.2
Same name and namespace in other branches
- 8 tests/modules/dynamic_entity_reference_entity_test/dynamic_entity_reference_entity_test.module \dynamic_entity_reference_entity_test_entity_base_field_info()
Implements hook_entity_base_field_info().
3 calls to dynamic_entity_reference_entity_test_entity_base_field_info()
- DynamicEntityReferenceBaseFieldTest::testMultipleEntityReference in tests/
src/ Kernel/ DynamicEntityReferenceBaseFieldTest.php - Tests the der field type for referencing multiple content entities.
- DynamicEntityReferenceConfigEntityBaseFieldTest::testMixedRevisionableBaseField in tests/
src/ Kernel/ DynamicEntityReferenceConfigEntityBaseFieldTest.php - Content entity and config entity revisionable base DER field.
- DynamicEntityReferenceConfigEntityBaseFieldTest::testRevisionableBaseField in tests/
src/ Kernel/ DynamicEntityReferenceConfigEntityBaseFieldTest.php - Config entity only revisionable base DER field.
File
- tests/
modules/ dynamic_entity_reference_entity_test/ dynamic_entity_reference_entity_test.module, line 15 - Module file for dynamic_entity_reference_entity_test.
Code
function dynamic_entity_reference_entity_test_entity_base_field_info(EntityTypeInterface $entity_type) {
$fields = [];
// 'entity_test' with no data table and 'entity_test_mul' is with data table.
$test_entities = \Drupal::state()
->get('dynamic_entity_reference_entity_test_entities', [
'entity_test',
'entity_test_mul',
]);
$excluded_entity = \Drupal::state()
->get('dynamic_entity_reference_entity_test_exclude', []);
if (in_array($entity_type
->id(), $test_entities)) {
$allowed_entities = array_diff($test_entities, $excluded_entity);
$settings = [
'exclude_entity_types' => FALSE,
'entity_type_ids' => array_combine($allowed_entities, $allowed_entities),
];
foreach ($test_entities as $entity_type_id) {
if (!in_array($entity_type_id, $excluded_entity)) {
$settings += [
$entity_type_id => [
'handler' => "default:{$entity_type_id}",
'handler_settings' => [
'target_bundles' => NULL,
],
],
];
}
}
$fields['dynamic_references'] = BaseFieldDefinition::create('dynamic_entity_reference')
->setName('dynamic_references')
->setLabel((string) new TranslatableMarkup('References'))
->setDescription((string) new TranslatableMarkup('Reference another entity.'))
->setRequired(FALSE)
->setRevisionable(\Drupal::state()
->get('dynamic_entity_reference_entity_test_revisionable', FALSE))
->setCardinality(\Drupal::state()
->get('dynamic_entity_reference_entity_test_cardinality', 1))
->setDisplayOptions('form', [
'type' => 'dynamic_entity_reference_default',
'weight' => 10,
])
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'dynamic_entity_reference_label',
'weight' => 10,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayConfigurable('view', TRUE)
->setSettings($settings);
if (\Drupal::state()
->get('dynamic_entity_reference_entity_test_with_two_base_fields', FALSE)) {
$fields['der'] = BaseFieldDefinition::createFromFieldStorageDefinition($fields['dynamic_references'])
->setName('der');
}
// Adds a normal entity reference field if set to do so.
if (\Drupal::state()
->get('dynamic_entity_reference_entity_test_with_normal', FALSE)) {
$fields['normal_reference'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Entity ID'))
->setDescription(t('The referenced ID of the entity.'))
->setRequired(TRUE);
}
}
return $fields;
}