function views_fieldsets_preprocess_views_view_table in Views fieldsets 7.2
Implements template_preprocess_views_view_table().
Preprocessor for Views' row style template.
File
- ./
views_fieldsets.module, line 87 - Hooks, helpers and theming for the Views Fieldsets module.
Code
function views_fieldsets_preprocess_views_view_table(&$vars) {
$view = $vars['view'];
$display_handler = $view->display_handler;
$fields = $display_handler
->get_option('fields');
$tmp_vars = $vars;
$tmp_vars['options']['default_field_elements'] = TRUE;
foreach ($view->result as $index => $row) {
$view->row_index = $index;
template_preprocess_views_view_fields($tmp_vars);
$vars['field_fields'][$index] = $tmp_vars['fields'];
}
$fieldsets = views_fieldsets_field_options_to_fieldsets_1d($fields);
if ($fieldsets && array_filter($fieldsets)) {
// Fix separators.
$last_in_fieldset = FALSE;
foreach ($vars['fields'] as $id => $object) {
$in_fieldset = views_fieldsets_field_is_in_fieldset($id, $display_handler);
if (!empty($object->separator) && !$in_fieldset && $last_in_fieldset) {
$object->separator = '';
}
$last_in_fieldset = $in_fieldset;
}
// Add collapse.js for actual fieldsets.
drupal_add_js('misc/collapse.js');
drupal_add_js('misc/form.js');
$hierarchy = views_fieldsets_hierarchy_info($display_handler, $fieldsets);
$vars['hierarchy'] = $hierarchy;
// Remove fieldsetted fields' header.
foreach (array_filter($fieldsets) as $field_name => $fieldset_name) {
unset($vars['header'][$field_name]);
}
foreach ($vars['rows'] as $index => $row) {
$view->row_index = $index;
$new_row = array();
foreach ($hierarchy['tree'] as $field_name => $info_field) {
if (isset($vars['fields'][$field_name])) {
if (views_fieldsets_field_is_fieldset($field_name, $display_handler)) {
$sub_vars = $vars;
// Fake vars.
$sub_vars['fields'][$field_name] = (object) array(
'handler' => $view->display_handler->handlers['field'][$field_name],
'label' => $view->display_handler->handlers['field'][$field_name]->options['label'],
);
$sub_vars['fieldset_field'] = $field_name;
// Saving current row index.
$sub_vars['row_index'] = $index;
// Recursive render of fieldsets.
$new_row[$field_name] = _views_fieldsets_render__table($info_field, $sub_vars);
}
else {
// Render single field.
if (isset($row[$field_name])) {
$new_row[$field_name] = $row[$field_name];
}
}
}
}
// Save new, rendered, flat row into old row.
$vars['rows'][$index] = $new_row;
}
}
}