class draggableviews_handler_native in DraggableViews 7.2
Same name and namespace in other branches
- 6.3 implementations/draggableviews_handler_native.inc \draggableviews_handler_native
- 7 implementations/draggableviews_handler_native.inc \draggableviews_handler_native
Hierarchy
- class \draggableviews_handler
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
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
draggableviews_handler:: |
public | function | Form with settings of the handler. | 1 |
draggableviews_handler:: |
public | function | Settings form default values. | 1 |
draggableviews_handler_native:: |
public | function |
Get the weight value. Overrides draggableviews_handler:: |
|
draggableviews_handler_native:: |
function |
Save weight value. Overrides draggableviews_handler:: |