public function StylePluginBase::renderGroupingSets in Drupal 10
Same name and namespace in other branches
- 8 core/modules/views/src/Plugin/views/style/StylePluginBase.php \Drupal\views\Plugin\views\style\StylePluginBase::renderGroupingSets()
- 9 core/modules/views/src/Plugin/views/style/StylePluginBase.php \Drupal\views\Plugin\views\style\StylePluginBase::renderGroupingSets()
Render the grouping sets.
Plugins may override this method if they wish some other way of handling grouping.
Parameters
$sets: An array keyed by group content containing the grouping sets to render. Each set contains the following associative array:
- group: The group content.
- level: The hierarchical level of the grouping.
- rows: The result rows to be rendered in this group..
Return value
array Render array of grouping sets.
1 call to StylePluginBase::renderGroupingSets()
- StylePluginBase::render in core/
modules/ views/ src/ Plugin/ views/ style/ StylePluginBase.php - Render the display in this style.
File
- core/
modules/ views/ src/ Plugin/ views/ style/ StylePluginBase.php, line 478
Class
- StylePluginBase
- Base class for views style plugins.
Namespace
Drupal\views\Plugin\views\styleCode
public function renderGroupingSets($sets) {
$output = [];
$theme_functions = $this->view
->buildThemeFunctions($this->groupingTheme);
foreach ($sets as $set) {
$level = $set['level'] ?? 0;
$row = reset($set['rows']);
// Render as a grouping set.
if (is_array($row) && isset($row['group'])) {
$single_output = [
'#theme' => $theme_functions,
'#view' => $this->view,
'#grouping' => $this->options['grouping'][$level],
'#rows' => $set['rows'],
];
}
else {
if ($this
->usesRowPlugin()) {
foreach ($set['rows'] as $index => $row) {
$this->view->row_index = $index;
$set['rows'][$index] = $this->view->rowPlugin
->render($row);
}
}
$single_output = $this
->renderRowGroup($set['rows']);
}
$single_output['#grouping_level'] = $level;
$single_output['#title'] = $set['group'];
$output[] = $single_output;
}
unset($this->view->row_index);
return $output;
}