function draggableviews_handler_fieldapi::set in DraggableViews 7.2
Save weight value.
Parameters
$form_state: Array of form state of the form. View object $form_state['values']['view'].
Overrides draggableviews_handler::set
File
- handlers/
draggableviews_handler_fieldapi.inc, line 86
Class
Code
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,
),
);
}
$base_table = $view->field['draggableviews']->table;
$entity_info_all = entity_get_info();
$entity_type = '';
foreach ($entity_info_all as $entity_name_key => $entity_info) {
if ($entity_info['base table'] == $base_table) {
$entity_type = $entity_name_key;
break;
}
}
$options_field = $view->field['draggableviews']->options['draggableviews']['draggableviews_handler_fieldapi']['field'];
list($field_table, $field_column) = explode(':', $options_field);
// Remove '_value' from column name to get field name.
$field_name = drupal_substr($field_column, 0, drupal_strlen($field_column) - 6);
// Give other modules a chance to alter saved arguments.
drupal_alter('draggableviews_handler_fieldapi_arguments', $fv['draggableviews'], $view);
// Reorder the items by weight.
uasort($fv['draggableviews'], 'drupal_sort_weight');
// Save the values of the field.
foreach ($fv['draggableviews'] as $item) {
if (isset($item['id']) && isset($item['weight'])) {
$entity_wrapper = entity_metadata_wrapper($entity_type, $item['id']);
$entity_wrapper->{$field_name} = $item['weight'];
$entity_wrapper
->save();
}
}
}