MenuLinkContent::baseFieldDefinitions

public static MenuLinkContent::baseFieldDefinitions(EntityTypeInterface $entity_type)

Provides base field definitions for an entity type.

Implementations typically use the class \Drupal\Core\Field\BaseFieldDefinition for creating the field definitions; for example a 'name' field could be defined as the following:

1
2
$fields['name'] = BaseFieldDefinition::create('string')
  ->setLabel(t('Name'));

By definition, base fields are fields that exist for every bundle. To provide definitions for fields that should only exist on some bundles, use \Drupal\Core\Entity\FieldableEntityInterface::bundleFieldDefinitions().

The definitions returned by this function can be overridden for all bundles by hook_entity_base_field_info_alter() or overridden on a per-bundle basis via 'base_field_override' configuration entities.

Parameters

\Drupal\Core\Entity\EntityTypeInterface $entity_type: The entity type definition. Useful when a single class is used for multiple, possibly dynamic entity types.

Return value

\Drupal\Core\Field\FieldDefinitionInterface[] An array of base field definitions for the entity type, keyed by field name.

Overrides ContentEntityBase::baseFieldDefinitions

See also

\Drupal\Core\Entity\EntityManagerInterface::getFieldDefinitions()

\Drupal\Core\Entity\FieldableEntityInterface::bundleFieldDefinitions()

File

core/modules/menu_link_content/src/Entity/MenuLinkContent.php, line 237

Class

MenuLinkContent
Defines the menu link content entity class.

Namespace

Drupal\menu_link_content\Entity

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
  /** @var \Drupal\Core\Field\BaseFieldDefinition[] $fields */
  $fields = parent::baseFieldDefinitions($entity_type);
 
  $fields['id']->setLabel(t('Entity ID'))
    ->setDescription(t('The entity ID for this menu link content entity.'));
 
  $fields['uuid']->setDescription(t('The content menu link UUID.'));
 
  $fields['langcode']->setDescription(t('The menu link language code.'));
 
  $fields['bundle']
  ->setDescription(t('The content menu link bundle.'))
    ->setSetting('max_length', EntityTypeInterface::BUNDLE_MAX_LENGTH)
    ->setSetting('is_ascii', TRUE);
 
  $fields['title'] = BaseFieldDefinition::create('string')
    ->setLabel(t('Menu link title'))
    ->setDescription(t('The text to be used for this link in the menu.'))
    ->setRequired(TRUE)
    ->setTranslatable(TRUE)
    ->setSetting('max_length', 255)
    ->setDisplayOptions('view', array(
      'label' => 'hidden',
      'type' => 'string',
      'weight' => -5,
    ))
    ->setDisplayOptions('form', array(
      'type' => 'string_textfield',
      'weight' => -5,
    ))
    ->setDisplayConfigurable('form', TRUE);
 
  $fields['description'] = BaseFieldDefinition::create('string')
    ->setLabel(t('Description'))
    ->setDescription(t('Shown when hovering over the menu link.'))
    ->setTranslatable(TRUE)
    ->setSetting('max_length', 255)
    ->setDisplayOptions('view', array(
      'label' => 'hidden',
      'type' => 'string',
      'weight' => 0,
    ))
    ->setDisplayOptions('form', array(
      'type' => 'string_textfield',
      'weight' => 0,
    ));
 
  $fields['menu_name'] = BaseFieldDefinition::create('string')
    ->setLabel(t('Menu name'))
    ->setDescription(t('The menu name. All links with the same menu name (such as "tools") are part of the same menu.'))
    ->setDefaultValue('tools')
    ->setSetting('is_ascii', TRUE);
 
  $fields['link'] = BaseFieldDefinition::create('link')
    ->setLabel(t('Link'))
    ->setDescription(t('The location this menu link points to.'))
    ->setRequired(TRUE)
    ->setSettings(array(
      'link_type' => LinkItemInterface::LINK_GENERIC,
      'title' => DRUPAL_DISABLED,
    ))
    ->setDisplayOptions('form', array(
      'type' => 'link_default',
      'weight' => -2,
    ));
 
  $fields['external'] = BaseFieldDefinition::create('boolean')
    ->setLabel(t('External'))
    ->setDescription(t('A flag to indicate if the link points to a full URL starting with a protocol, like http:// (1 = external, 0 = internal).'))
    ->setDefaultValue(FALSE);
 
  $fields['rediscover'] = BaseFieldDefinition::create('boolean')
    ->setLabel(t('Indicates whether the menu link should be rediscovered'))
    ->setDefaultValue(FALSE);
 
  $fields['weight'] = BaseFieldDefinition::create('integer')
    ->setLabel(t('Weight'))
    ->setDescription(t('Link weight among links in the same menu at the same depth. In the menu, the links with high weight will sink and links with a low weight will be positioned nearer the top.'))
    ->setDefaultValue(0)
    ->setDisplayOptions('view', array(
      'label' => 'hidden',
      'type' => 'integer',
      'weight' => 0,
    ))
    ->setDisplayOptions('form', array(
      'type' => 'number',
      'weight' => 20,
    ));
 
  $fields['expanded'] = BaseFieldDefinition::create('boolean')
    ->setLabel(t('Show as expanded'))
    ->setDescription(t('If selected and this menu link has children, the menu will always appear expanded.'))
    ->setDefaultValue(FALSE)
    ->setDisplayOptions('view', array(
      'label' => 'hidden',
      'type' => 'boolean',
      'weight' => 0,
    ))
    ->setDisplayOptions('form', array(
      'settings' => array('display_label' => TRUE),
      'weight' => 0,
    ));
 
  $fields['enabled'] = BaseFieldDefinition::create('boolean')
    ->setLabel(t('Enabled'))
    ->setDescription(t('A flag for whether the link should be enabled in menus or hidden.'))
    ->setDefaultValue(TRUE)
    ->setDisplayOptions('view', array(
      'label' => 'hidden',
      'type' => 'boolean',
      'weight' => 0,
    ))
    ->setDisplayOptions('form', array(
      'settings' => array('display_label' => TRUE),
      'weight' => -1,
    ));
 
  $fields['parent'] = BaseFieldDefinition::create('string')
    ->setLabel(t('Parent plugin ID'))
    ->setDescription(t('The ID of the parent menu link plugin, or empty string when at the top level of the hierarchy.'));
 
  $fields['changed'] = BaseFieldDefinition::create('changed')
    ->setLabel(t('Changed'))
    ->setDescription(t('The time that the menu link was last edited.'))
    ->setTranslatable(TRUE);
 
  return $fields;
}
doc_Drupal
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.