You are here

class draggableviews_handler_native in DraggableViews 7.2

Same name and namespace in other branches
  1. 6.3 implementations/draggableviews_handler_native.inc \draggableviews_handler_native
  2. 7 implementations/draggableviews_handler_native.inc \draggableviews_handler_native

Hierarchy

Expanded class hierarchy of draggableviews_handler_native

2 string references to 'draggableviews_handler_native'
draggableviews_handler_field_draggable::option_definition in views/draggableviews_handler_field_draggable.inc
Information about options for all kinds of purposes will be held here.
draggableviews_handler_native.inc in handlers/draggableviews_handler_native.inc

File

handlers/draggableviews_handler_native.inc, line 15

View source
class draggableviews_handler_native extends draggableviews_handler {
  public function get($field, $index) {
    $row = $field->view->result[$index];
    return isset($row->draggableviews_structure_weight_coalesce) ? $row->draggableviews_structure_weight_coalesce : 0;
  }
  function set($form_state) {
    $fv = $form_state['values'];
    $view = $form_state['build_info']['args'][0];
    $view_name = $view->name;
    $view_display = $view->current_display;

    // View arguments.
    $arguments = $view->args;
    if (isset($view->exposed_raw_input)) {
      $arguments += $view->exposed_raw_input;
      ksort($arguments);

      // Redirect view to the same page with exposed filters set.
      $form_state['redirect'] = array(
        current_path(),
        array(
          'query' => $view->exposed_raw_input,
        ),
      );
    }

    // Give other modules a chance to alter saved arguments.
    drupal_alter('draggableviews_handler_native_arguments', $arguments, $view, $fv['draggableviews']);

    // Never save 'items_per_page' argument added by exposed pager filter.
    unset($arguments['items_per_page']);
    $args_string = json_encode($arguments);

    // Save records to our custom table.
    $weight = 0;

    // Reorder the items by weight.
    uasort($fv['draggableviews'], 'drupal_sort_weight');
    foreach ($fv['draggableviews'] as $item) {

      // Make sure id is available.
      if (!isset($item['id'])) {
        continue;
      }

      // Delete previous order record.
      db_delete('draggableviews_structure')
        ->condition('view_name', $view_name)
        ->condition('view_display', $view_display)
        ->condition('args', $args_string)
        ->condition('entity_id', $item['id'])
        ->execute();

      // Create new order record.
      $record = array(
        'view_name' => $view_name,
        'view_display' => $view_display,
        'args' => $args_string,
        'entity_id' => $item['id'],
        'weight' => $weight,
      );

      // If parent element exists, save it.
      if (isset($item['parent'])) {
        $record['parent'] = $item['parent'];
      }
      drupal_write_record('draggableviews_structure', $record);
      $weight++;
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
draggableviews_handler::options_form public function Form with settings of the handler. 1
draggableviews_handler::option_definition public function Settings form default values. 1
draggableviews_handler_native::get public function Get the weight value. Overrides draggableviews_handler::get
draggableviews_handler_native::set function Save weight value. Overrides draggableviews_handler::set