protected function ViewsPreRenderHookHandler::renderMerge in Views Merge Rows 8.2
Sets data into $view->style_plugin->rendered_fields.
If merge option is 'merge' or 'merge_unique'.
Parameters
\Drupal\views\ViewExecutable $view: View object.
array $merged_row: Current merged row.
int $row_index: Row index to which data shall be reported if the row is a filtered one ($merged_rows).
string $field_name: Name of the field being under work.
array $field_config: The Views Merge Rows config for the field.
1 call to ViewsPreRenderHookHandler::renderMerge()
- ViewsPreRenderHookHandler::process in src/
HookHandler/ ViewsPreRenderHookHandler.php - Alter the view according to merge rows configuration.
File
- src/
HookHandler/ ViewsPreRenderHookHandler.php, line 824
Class
- ViewsPreRenderHookHandler
- Hook handler for the hook_views_pre_render() hook.
Namespace
Drupal\views_merge_rows\HookHandlerCode
protected function renderMerge(ViewExecutable $view, array &$merged_row, int $row_index, string $field_name, array $field_config) : void {
foreach ($merged_row[$field_name] as $field_index => $field_value) {
if (empty($field_value)) {
unset($merged_row[$field_name][$field_index]);
}
}
if ($field_config['exclude_first']) {
array_shift($merged_row[$field_name]);
}
$value_count = count($merged_row[$field_name]);
$iteration = 1;
foreach ($merged_row[$field_name] as $field_index => $field_value) {
if ($iteration != $value_count) {
$merged_row[$field_name][$field_index] = $field_config['prefix'] . $field_value . $field_config['separator'] . $field_config['suffix'];
}
else {
$merged_row[$field_name][$field_index] = $field_config['prefix'] . $field_value . $field_config['suffix'];
}
$iteration++;
}
unset($iteration);
unset($value_count);
$view->style_plugin
->setRenderedField(implode($merged_row[$field_name]), $row_index, $field_name);
}