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
- Hooks
- Define functions that alter the behavior of Drupal core.
File
- core/lib/Drupal/Core/Entity/entity.api.php, line 1969
- Hooks and documentation related to entities.
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 | function hook_entity_extra_field_info() { $extra = array (); $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' ] = array ( 'label' => t( 'Language' ), 'description' => $description , 'weight' => 0, ); } } $extra [ 'node' ][ $bundle ->id()][ 'display' ][ 'language' ] = array ( 'label' => t( 'Language' ), 'description' => $description , 'weight' => 0, 'visible' => FALSE, ); } return $extra ; } |
Please login to continue.