You are here

function draggableviews_preprocess_views_view_table in DraggableViews 7.2

Same name and namespace in other branches
  1. 8 draggableviews.module \draggableviews_preprocess_views_view_table()
  2. 2.0.x draggableviews.module \draggableviews_preprocess_views_view_table()

Implements hook_preprocess_views_view_table().

File

./draggableviews.module, line 157

Code

function draggableviews_preprocess_views_view_table(&$vars) {
  if ($order_view = _draggableviews_load_order_view($vars['view'])) {

    // Add indentation if hierarchy is available.
    if (!empty($order_view->field['draggableviews']->options['draggableviews']['hierarchy_handler'])) {
      $hierarchy_handler_object = draggableviews_get_handler_class($order_view->field['draggableviews']->options['draggableviews']['hierarchy_handler'], 'hierarchy_handler');
      foreach ($vars['rows'] as $key => $row) {
        $first_column = current(array_keys($row));
        $field = (object) array(
          'view' => $vars['view'],
        );
        $depth = $hierarchy_handler_object
          ->get_depth($field, $key);
        $vars['rows'][$key][$first_column] = theme('indentation', array(
          'size' => $depth,
        )) . $vars['rows'][$key][$first_column];
        $vars['row_classes'][$key][] = 'depth-' . $depth;
      }
    }
  }

  // If this view is not the sort view, then stop here.
  if (!isset($vars['view']->field['draggableviews'])) {
    return;
  }

  // Check permissions.
  if (!user_access('access draggableviews')) {

    // Remove column "draggableviews" from results and header.
    foreach ($vars['rows'] as &$row) {
      unset($row['draggableviews']);
    }
    unset($vars['header']['draggableviews']);
    return;
  }

  // Add table class.
  $vars['classes_array'][] = 'draggable';

  // Add row class.
  foreach ($vars['row_classes'] as &$row_classes) {
    $row_classes[] = 'draggable';
  }
  $vars['attributes_array']['id'] = drupal_html_id('draggableviews-table-' . $vars['view']->name . '-' . $vars['view']->current_display);

  // Add JavaScript.
  drupal_add_tabledrag($vars['attributes_array']['id'], 'order', 'sibling', 'draggableviews-weight');

  // Add JavaScript for auto-save functionality.
  if ($vars['view']->field['draggableviews']->options['draggableviews']['ajax']) {
    drupal_add_js(drupal_get_path('module', 'draggableviews') . '/js/draggableviews_table.js');
  }

  // Parent JavaScripts.
  if (!empty($vars['view']->field['draggableviews']->options['draggableviews']['hierarchy_handler'])) {
    drupal_add_tabledrag($vars['attributes_array']['id'], 'match', 'parent', 'draggableviews-parent', 'draggableviews-parent', 'draggableviews-id', FALSE);
    drupal_add_tabledrag($vars['attributes_array']['id'], 'depth', 'group', 'draggableviews-depth', NULL, NULL, FALSE);
  }
}