function hook_entity_extra_field_info in Drupal 9
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Entity/entity.api.php \hook_entity_extra_field_info()
- 10 core/lib/Drupal/Core/Entity/entity.api.php \hook_entity_extra_field_info()
Exposes "pseudo-field" components on content entities.
Field UI's "Manage fields" and "Manage display" pages let users re-order fields, but also non-field components. For nodes, these include elements exposed by modules through hook_form_alter(), for instance.
Content entities or modules that want to have their components supported should expose them using this hook. The user-defined settings (weight, visible) are automatically applied when entities or entity forms are rendered.
Return value
array The array structure is identical to that of the return value of \Drupal\Core\Entity\EntityFieldManagerInterface::getExtraFields().
See also
hook_entity_extra_field_info_alter()
Related topics
10 functions implement hook_entity_extra_field_info()
Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.
- aggregator_entity_extra_field_info in core/
modules/ aggregator/ aggregator.module - Implements hook_entity_extra_field_info().
- comment_entity_extra_field_info in core/
modules/ comment/ comment.module - Implements hook_entity_extra_field_info().
- contact_entity_extra_field_info in core/
modules/ contact/ contact.module - Implements hook_entity_extra_field_info().
- content_moderation_entity_extra_field_info in core/
modules/ content_moderation/ content_moderation.module - Implements hook_entity_extra_field_info().
- content_translation_entity_extra_field_info in core/
modules/ content_translation/ content_translation.module - Implements hook_entity_extra_field_info().
1 invocation of hook_entity_extra_field_info()
- EntityFieldManager::getExtraFields in core/
lib/ Drupal/ Core/ Entity/ EntityFieldManager.php - Gets the "extra fields" for a bundle.
File
- core/
lib/ Drupal/ Core/ Entity/ entity.api.php, line 2199 - Hooks and documentation related to entities.
Code
function hook_entity_extra_field_info() {
$extra = [];
$module_language_enabled = \Drupal::moduleHandler()
->moduleExists('language');
$description = t('Node module element');
foreach (NodeType::loadMultiple() as $bundle) {
// Add also the 'language' select if Language module is enabled and the
// bundle has multilingual support.
// Visibility of the ordering of the language selector is the same as on the
// node/add form.
if ($module_language_enabled) {
$configuration = ContentLanguageSettings::loadByEntityTypeBundle('node', $bundle
->id());
if ($configuration
->isLanguageAlterable()) {
$extra['node'][$bundle
->id()]['form']['language'] = [
'label' => t('Language'),
'description' => $description,
'weight' => 0,
];
}
}
$extra['node'][$bundle
->id()]['display']['language'] = [
'label' => t('Language'),
'description' => $description,
'weight' => 0,
'visible' => FALSE,
];
}
return $extra;
}