protected function ViewsPreRenderHookHandler::preRenderCountUnique in Views Merge Rows 8.2
Manipulates data if merge option is 'count_unique'.
Parameters
\Drupal\views\ViewExecutable $view: View object.
array $merged_rows: Array of merged rows.
array $merged_row: Current merged row.
bool $is_filter_row: TRUE if row merges rows of one or more filtered fields; FALSE otherwise.
array $rendered_row: Row from $rendered_fields from which data is extracted.
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.
int $merged_row_index: Row index to which data shall be reported if the row is not a filtered one ($merged_rows).
1 call to ViewsPreRenderHookHandler::preRenderCountUnique()
- ViewsPreRenderHookHandler::process in src/
HookHandler/ ViewsPreRenderHookHandler.php - Alter the view according to merge rows configuration.
File
- src/
HookHandler/ ViewsPreRenderHookHandler.php, line 241
Class
- ViewsPreRenderHookHandler
- Hook handler for the hook_views_pre_render() hook.
Namespace
Drupal\views_merge_rows\HookHandlerCode
protected function preRenderCountUnique(ViewExecutable $view, array &$merged_rows, array &$merged_row, bool $is_filter_row, array $rendered_row, int $row_index, string $field_name, int $merged_row_index) : void {
if ($is_filter_row) {
if (!array_key_exists($field_name, $merged_row)) {
$merged_row[$field_name] = [];
}
if (!in_array($rendered_row[$field_name], $merged_row[$field_name])) {
$merged_row[$field_name][] = $rendered_row[$field_name];
}
$merged_rows[$row_index] = $merged_row;
}
else {
if (!empty($rendered_row[$field_name]) && !in_array($rendered_row[$field_name], $merged_row[$field_name])) {
$merged_row[$field_name][] = $rendered_row[$field_name];
}
$this
->unsetRow($view, $row_index);
$merged_rows[$merged_row_index] = $merged_row;
}
}