node_add_body_field(NodeTypeInterface $type, $label = 'Body')
Adds the default body field to a node type.
Parameters
\Drupal\node\NodeTypeInterface $type: A node type object.
string $label: (optional) The label for the body instance.
Return value
\Drupal\field\Entity\FieldConfig A Body field object.
File
- core/modules/node/node.module, line 322
- The core module that allows content to be submitted to the site.
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 | function node_add_body_field(NodeTypeInterface $type , $label = 'Body' ) { // Add or remove the body field, as needed. $field_storage = FieldStorageConfig::loadByName( 'node' , 'body' ); $field = FieldConfig::loadByName( 'node' , $type ->id(), 'body' ); if ( empty ( $field )) { $field = FieldConfig::create([ 'field_storage' => $field_storage , 'bundle' => $type ->id(), 'label' => $label , 'settings' => array ( 'display_summary' => TRUE), ]); $field ->save(); // Assign widget settings for the 'default' form mode. entity_get_form_display( 'node' , $type ->id(), 'default' ) ->setComponent( 'body' , array ( 'type' => 'text_textarea_with_summary' , )) ->save(); // Assign display settings for the 'default' and 'teaser' view modes. entity_get_display( 'node' , $type ->id(), 'default' ) ->setComponent( 'body' , array ( 'label' => 'hidden' , 'type' => 'text_default' , )) ->save(); // The teaser view mode is created by the Standard profile and therefore // might not exist. $view_modes = \Drupal::entityManager()->getViewModes( 'node' ); if (isset( $view_modes [ 'teaser' ])) { entity_get_display( 'node' , $type ->id(), 'teaser' ) ->setComponent( 'body' , array ( 'label' => 'hidden' , 'type' => 'text_summary_or_trimmed' , )) ->save(); } } return $field ; } |
Please login to continue.