You are here

function theme_views_bonus_view_sparkline in Views Bonus Pack 5

File

./views_bonus_sparkline.module, line 13

Code

function theme_views_bonus_view_sparkline($view, $nodes, $type) {
  $fields = _views_get_fields();
  $content = '<div class="view-sparklines view-sparklines-' . $view->name . '">';
  $fields = _views_get_fields();
  $elements = sparkline_elements();
  $output = array();

  // Set default style.
  $style = isset($view->sparkline_style) ? $view->sparkline_style : 'bar';

  // Some misc. bits to customize.
  $caption_position = isset($view->caption_position) ? $view->caption_position : 'title';
  $height = isset($view->height) ? $view->height : 20;
  $width = isset($view->width) ? $view->height : 'auto';
  foreach ($view->field as $field) {
    if ($fields[$field['id']]['visible'] !== FALSE) {
      $output[$field[queryname]] = $elements['sparkline_' . $style];
      if ($field['label']) {
        $output[$field[queryname]]["#{$caption_position}"] = $field['label'];
      }
      $output[$field[queryname]]['#height'] = $height;
      $output[$field[queryname]]['#width'] = $width;
      foreach ($nodes as $node) {
        $data = views_theme_field('views_handle_field', $field['queryname'], $fields, $field, $node, $view);
        $output[$field[queryname]]['#data'][] = is_numeric($data) ? $data : 0;
      }
    }
  }
  $content .= drupal_render($output);
  $content .= '</div>';
  return $content;
}