public function CommentManager::addBodyField in Drupal 9
Same name and namespace in other branches
- 8 core/modules/comment/src/CommentManager.php \Drupal\comment\CommentManager::addBodyField()
Creates a comment_body field.
Parameters
string $comment_type: The comment bundle.
Overrides CommentManagerInterface::addBodyField
File
- core/
modules/ comment/ src/ CommentManager.php, line 121
Class
- CommentManager
- Comment manager contains common functions to manage comment fields.
Namespace
Drupal\commentCode
public function addBodyField($comment_type_id) {
if (!FieldConfig::loadByName('comment', $comment_type_id, 'comment_body')) {
// Attaches the body field by default.
$field = $this->entityTypeManager
->getStorage('field_config')
->create([
'label' => 'Comment',
'bundle' => $comment_type_id,
'required' => TRUE,
'field_storage' => FieldStorageConfig::loadByName('comment', 'comment_body'),
]);
$field
->save();
// Assign widget settings for the default form mode.
$this->entityDisplayRepository
->getFormDisplay('comment', $comment_type_id)
->setComponent('comment_body', [
'type' => 'text_textarea',
])
->save();
// Assign display settings for the default view mode.
$this->entityDisplayRepository
->getViewDisplay('comment', $comment_type_id)
->setComponent('comment_body', [
'label' => 'hidden',
'type' => 'text_default',
'weight' => 0,
])
->save();
}
}