function draggableviews_view_draggabletable_form_submit in DraggableViews 6.3
Same name and namespace in other branches
- 6 draggableviews.inc \draggableviews_view_draggabletable_form_submit()
- 6.2 draggableviews.inc \draggableviews_view_draggabletable_form_submit()
- 7 draggableviews.module \draggableviews_view_draggabletable_form_submit()
Implementing hook_submit
1 string reference to 'draggableviews_view_draggabletable_form_submit'
- draggableviews_view_draggabletable_form in ./
draggableviews.module - Build the form
File
- ./
draggableviews.module, line 364 - Draggableviews module provides a style plugin for views. With this plugin rows become draggable and can be organized in complex structures.
Code
function draggableviews_view_draggabletable_form_submit($vars) {
// Check permissions.
if (!user_access('Allow Reordering')) {
drupal_set_message(t('You are not allowed to reorder nodes.'), 'error');
return;
}
// Gather all needed information.
$view = $vars['#parameters'][2]->view;
$results = $view->result;
$input = $vars['submit']['#post'];
$info = $view->draggableviews_info;
if (!isset($info['order'])) {
return;
}
// Check if structure is locked.
if (!empty($info['locked'])) {
drupal_set_message(t('The structure is locked.'), 'error');
return;
}
// Loop through all resulting nodes.
foreach ($results as $row) {
// set order values
if (isset($info['order']['field'])) {
// The input array must have the same structure as the node array.
// E.g. because of _draggableviews_get_hierarchy_depth(..).
$info['input'][$row->{$view->base_field}]['order'][0] = $input[$info['order']['field']['field_name'] . '_' . $row->{$view->base_field}];
}
// Set parent values.
if (isset($info['hierarchy'])) {
$info['input'][$row->{$view->base_field}]['parent'] = $input[$info['hierarchy']['field']['field_name'] . '_' . $row->{$view->base_field}];
}
}
_draggableviews_build_hierarchy($info);
_draggableviews_save_hierarchy($info);
if (isset($info['hierarchy'])) {
// save expanded/collapsed states.
global $user;
$uid = $info['expand_links']['by_uid'] ? $user->uid : 0;
foreach ($vars['submit']['#post'] as $key => $val) {
if (strpos('draggableviews_collapsed_', $key) !== FALSE) {
$parent_nid = drupal_substr($key, 25);
db_query("DELETE FROM {draggableviews_collapsed}\n WHERE uid=%d AND parent_nid=%d AND view_name='%s'", $uid, $parent_nid, $view->name);
db_query("INSERT INTO {draggableviews_collapsed}\n (uid, view_name, parent_nid, collapsed) VALUES (%d, '%s', %d, %d)", $uid, $view->name, $parent_nid, $val);
}
}
}
}