function template_preprocess_views_summarize_view_summarized_table in Views Summarize 1.1.x
Display a view as a table summary.
File
- ./
views_summarize.module, line 25 - Defines the functionality and Drupal hooks for this module.
Code
function template_preprocess_views_summarize_view_summarized_table(&$variables) {
template_preprocess_views_view_table($variables);
if (empty($variables['rows']) || !is_array($variables['rows']) || !count($variables['rows'])) {
return;
}
$view = $variables['view'];
$options = $view->style_plugin->options;
if (isset($options['summary_only'])) {
$variables['summary_only'] = $options['summary_only'];
}
$data = [];
foreach ($variables['rows'] as $row) {
foreach ($row['columns'] as $field => $field_definition) {
if (empty($field_definition['content'])) {
$data[$field][] = '';
}
else {
foreach ($field_definition['content'] as $field_output) {
if (empty($field_output['field_output']['#markup'])) {
$data[$field][] = '';
}
else {
$data[$field][] = $field_output['field_output']['#markup']
->__toString();
}
}
}
}
}
// Use the first entity in the result set to get the entity field definition.
// If there are multiple types of entities and/or bundles included in the
// field list, this could produce unexpected results.
$field_definitions = $view->result[0]->_entity
->getFieldDefinitions();
$variables['summarized'] = [];
foreach ($options['info'] as $field => $settings) {
if (isset($data[$field])) {
// Get the display's field settings.
$field_settings = [];
if (!empty($view->field[$field]->options['settings'])) {
$field_settings = $view->field[$field]->options['settings'];
}
// Get the field instance settings.
$field_config_settings = [];
if (!empty($field_definitions[$field])) {
$field_config_settings = $field_definitions[$field]
->getSettings();
}
$theme_function = 'views_summarize_type_' . $settings['summarize'];
$options = [
'field' => $field,
'views_field_settings' => $field_settings,
'field_instance_settings' => $field_config_settings,
];
$theme_variables = [
'data' => $data[$field],
'options' => $options,
];
$variables['summarized'][$field] = $theme_function($theme_variables);
}
}
}