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
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.