function FieldConfigListBuilder::buildRow
Builds a row for an entity in the entity listing.
Parameters
\Drupal\Core\Entity\EntityInterface $entity: The entity for this row of the list.
Return value
array A render array structure of fields for this entity.
Overrides EntityListBuilder::buildRow
File
-
core/
modules/ field_ui/ src/ FieldConfigListBuilder.php, line 131
Class
- FieldConfigListBuilder
- Provides lists of field config entities.
Namespace
Drupal\field_uiCode
public function buildRow(EntityInterface $field_config) {
/** @var \Drupal\field\FieldConfigInterface $field_config */
$field_storage = $field_config->getFieldStorageDefinition();
$storage_summary = $this->fieldTypeManager
->getStorageSettingsSummary($field_storage);
$instance_summary = $this->fieldTypeManager
->getFieldSettingsSummary($field_config);
$summary_list = [
$storage_summary,
$instance_summary,
];
$secondary_summary_items = [];
foreach ($summary_list as $item) {
$secondary_summary_items[] = [
'#type' => 'html_tag',
'#tag' => 'div',
'#value' => $item,
'#attributes' => [
'class' => [
'field-ui-secondary-text',
],
],
];
}
$settings_summary = [
'data' => [
'#type' => 'container',
'#attributes' => [
'class' => [
'field-settings-summary-container',
],
],
'field_type' => [
'#type' => 'html_tag',
'#tag' => 'div',
'#value' => $this->fieldTypeManager
->getDefinitions()[$field_storage->getType()]['label'],
'#attributes' => [
'class' => [
'field-type-label',
],
],
],
'summary_items' => [
'#type' => 'container',
'#attributes' => [
'class' => [
'field-settings-summary-items',
],
],
$secondary_summary_items,
],
],
'class' => [
'field-settings-summary-cell',
],
];
$cardinality = $field_storage->getCardinality();
if ($cardinality === -1) {
$cardinality_text = $this->t('Unlimited');
}
else {
$cardinality_text = $this->formatPlural($cardinality, 'Single', 'Limited to @count');
}
$label_data = [
'data' => [
'#type' => 'container',
'#attributes' => [
'class' => [
'field-label-container',
],
],
'label_wrapper' => [
'#type' => 'container',
'#attributes' => [
'class' => [
'field-label-wrapper',
],
],
'label' => [
'#type' => 'html_tag',
'#tag' => 'span',
'#plain_text' => $field_config->getLabel(),
'#attributes' => [
'class' => [
'field-label-text',
],
],
],
'machine_name' => [
'#type' => 'html_tag',
'#tag' => 'span',
'#plain_text' => ' ' . $field_config->getName(),
'#attributes' => [
'class' => [
'field-ui-secondary-text',
'field-machine-name',
],
],
],
],
'details' => [
'#type' => 'container',
'#attributes' => [
'class' => [
'field-details-container',
],
],
'cardinality_pill' => [
'#type' => 'html_tag',
'#tag' => 'span',
'#value' => $cardinality_text,
'#attributes' => [
'class' => [
'field-ui-pill',
],
],
],
],
],
];
// Add required pill if field is required.
if ($field_config->isRequired()) {
$label_data['data']['details']['required_pill'] = [
'#type' => 'html_tag',
'#tag' => 'span',
'#value' => $this->t('Required'),
'#attributes' => [
'class' => [
'field-ui-pill',
],
],
];
}
$row = [
'id' => Html::getClass($field_config->getName()),
'data' => [
'label' => $label_data,
'settings_summary' => $settings_summary,
],
];
// Add the operations.
$row['data'] = $row['data'] + parent::buildRow($field_config);
if ($field_storage->isLocked()) {
$row['data']['operations'] = [
'data' => [
'#markup' => $this->t('Locked'),
],
];
$row['class'][] = 'menu-disabled';
}
return $row;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.