function _views_fieldsets_render__table in Views fieldsets 7.2
Helper function to render fieldsets recursively for table row style.
1 call to _views_fieldsets_render__table()
File
- ./
views_fieldsets.module, line 156 - Hooks, helpers and theming for the Views Fieldsets module.
Code
function _views_fieldsets_render__table($fields, $vars) {
// Set default values.
$view = $vars['view'];
$display_handler = $view->display_handler;
$views_field = $view->field[$vars['fieldset_field']];
$views_field_options = $views_field->options;
$hide_empty = !empty($display_handler->default_display->options['style_options']['info'][$vars['fieldset_field']]['empty_column']);
$content = array();
foreach ($fields->children as $child_field_name => $child_info) {
if (!empty($vars['field_fields'][$vars['row_index']][$child_field_name])) {
$views_field = $vars['field_fields'][$vars['row_index']][$child_field_name];
if (views_fieldsets_field_is_fieldset($child_field_name, $display_handler)) {
$sub_vars = $vars;
// Fake vars.
$sub_vars['fields'][$child_field_name] = (object) array(
'handler' => $view->display_handler->handlers['field'][$child_field_name],
'label' => $view->display_handler->handlers['field'][$child_field_name]->options['label'],
);
$sub_vars['fieldset_field'] = $child_field_name;
$content[$child_field_name] = $views_field;
$content[$child_field_name]->content = _views_fieldsets_render__table($child_info, $sub_vars);
$views_field->label_html = $views_field->wrapper_prefix = $views_field->wrapper_suffix = '';
}
else {
// Default behaviour to render field.
$content[$child_field_name] = $views_field;
}
}
}
// Checking if we need to hide fieldset.
$is_empty = TRUE;
foreach ($content as $field) {
if (!empty($field->content)) {
$is_empty = FALSE;
break;
}
}
if (!$is_empty || !$hide_empty) {
$vars['fieldset_fields'] = $content;
$html_tag = $views_field_options['fieldset']['type'];
unset($vars['theme_hook_suggestion'], $vars['theme_hook_suggestions']);
$theme_hook_suggestions = views_theme_functions('views_fieldsets_' . $html_tag, $vars['view'], $display_handler->display);
$output = theme($theme_hook_suggestions, $vars);
$output .= "\n";
}
else {
$output = '';
}
return $output;
}