public function FieldGroupTable::preRender in Field Group Table 8
File
- src/
Plugin/ field_group/ FieldGroupFormatter/ FieldGroupTable.php, line 272
Class
- FieldGroupTable
- Plugin implementation of the 'field_group_table' formatter.
Namespace
Drupal\field_group_table\Plugin\field_group\FieldGroupFormatterCode
public function preRender(&$element, $rendering_object) {
parent::preRender($element, $rendering_object);
$element['#mode'] = $this->context;
// Allow modules to alter the rows, useful for removing empty rows.
$children = Element::children($element, TRUE);
$this->moduleHandler
->alter('field_group_table_rows', $element, $children);
if ($this
->getSetting('hide_table_if_empty')) {
field_group_remove_empty_display_groups($element, []);
if ($element == []) {
return;
}
}
$element['#type'] = 'container';
$element['#attributes']['class'][] = 'field-group-table';
$element['#attributes']['class'][] = $this->group->group_name;
$element['header'] = $this
->buildAdditionalContent(self::ADD_CONTENT_HEADER);
$element['table'] = [
'#type' => 'table',
'#caption' => $this
->getSetting('label_visibility') == self::DISPLAY_CAPTION ? $this->group->label : NULL,
'#header' => $this
->getTableHeader(),
'#attributes' => [
'class' => array_merge($this
->getTableCssClasses($element), explode(' ', $this
->getSetting('classes'))),
],
];
$element['footer'] = $this
->buildAdditionalContent(self::ADD_CONTENT_FOOTER);
foreach ($children as $key => $field_name) {
if ($row = $this
->buildRow($element, $field_name)) {
$element['table']['#rows'][$key] = $row;
}
unset($element[$field_name]);
}
}