You are here

function views_plugin_ds_fields_view::ds_fields_render in Display Suite 6.3

Same name and namespace in other branches
  1. 6 views/views_plugin_ds_fields_view.inc \views_plugin_ds_fields_view::ds_fields_render()
  2. 6.2 views/views_plugin_ds_fields_view.inc \views_plugin_ds_fields_view::ds_fields_render()

Render the fields.

Parameters

array $fields Collection of fields for display.:

File

views/views_plugin_ds_fields_view.inc, line 149
Contains the ds views fields style plugin.

Class

views_plugin_ds_fields_view
@file Contains the ds views fields style plugin.

Code

function ds_fields_render($fields) {
  $object = new stdClass();
  $object->type = 'all';
  $ds_fields = array();
  $ds_groups = array();
  $object->build_mode = 'ds_views';
  $object_type = $this->view->style_plugin->row_plugin->options['object_type'];
  $vars[$object_type] = $object_type;
  $regions = $this->view->style_plugin->row_plugin->options['regions'];
  $module = $this->view->style_plugin->row_plugin->options['module'];
  if (empty($object_type)) {
    return;
  }

  // Loop through views fields, see if they are a field or a group.
  foreach ($fields as $key => $field) {
    $region = $this->view->style_plugin->row_plugin->options[$key]['region'];
    if ($region == 'disabled') {
      continue;
    }
    $weight = $this->view->style_plugin->row_plugin->options[$key]['weight'];
    $labelformat = $this->view->style_plugin->row_plugin->options[$key]['labelformat'];
    $parent = isset($this->view->style_plugin->row_plugin->options[$key]['parent']) ? $this->view->style_plugin->row_plugin->options[$key]['parent'] : FALSE;

    // Class.
    $class = $field->class;
    if (!empty($this->view->style_plugin->row_plugin->options[$key]['css-class'])) {
      $class = ' ' . $this->view->style_plugin->row_plugin->options[$key]['css-class'];
    }

    // Build field key in ds_fields.
    $ds_fields[$key]['key'] = $key;
    $ds_fields[$key]['title'] = $field->label;
    $ds_fields[$key]['labelformat'] = $labelformat;
    $ds_fields[$key]['class'] = $class;
    $ds_fields[$key]['type'] = 'ds';
    if ($parent != FALSE) {

      // Remove the field from the $regions array.
      unset($regions[$region][$key]);

      // Get the form of the group and create a theme key.
      $parent_field = $fields[$parent];
      $format = isset($parent_field->handler->options['ds_format']) ? $parent_field->handler->options['ds_format'] : 'ds_group_fieldset';
      $ds_fields[$parent]['theme'] = $format;
      $ds_groups[$parent][$key] = $weight;
    }

    // Field content.
    $vars[$key] = $field->content;

    // Add key to preprocess fields.
    $object->preprocess_fields[$key] = DS_FIELD_TYPE_PREPROCESS;
  }

  // Vars.
  $object->ds_fields = $ds_fields;
  $object->ds_groups = $ds_groups;
  $vars['regions'] = $regions;

  // Return the row.
  if ($object_type != 'ds-views') {
    return ds_render_content($object, $module, $vars);
  }
  else {
    return $this
      ->ds_views_fields_render($object, 'ds-views-fields', $vars);
  }
}