function node_add_body_field in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/node/node.module \node_add_body_field()
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.
12 calls to node_add_body_field()
- ConfigImportRecreateTest::testRecreateEntity in core/
modules/ config/ src/ Tests/ ConfigImportRecreateTest.php - EditorAdminTest::testDisableFormatWithEditor in core/
modules/ editor/ src/ Tests/ EditorAdminTest.php - Tests format disabling.
- EditorFileUsageTest::setUp in core/
modules/ editor/ src/ Tests/ EditorFileUsageTest.php - Performs setup tasks before each individual test method is run.
- EditorImageDialogTest::setUp in core/
modules/ editor/ src/ Tests/ EditorImageDialogTest.php - Sets up the test.
- EntityDisplayTest::testDeleteBundle in core/
modules/ field_ui/ src/ Tests/ EntityDisplayTest.php - Tests deleting a bundle.
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 = entity_create('field_config', array(
'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;
}