Index: draggableviews.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/draggableviews/draggableviews.inc,v retrieving revision 1.7.2.3 diff -u -r1.7.2.3 draggableviews.inc --- draggableviews.inc 24 Sep 2008 23:52:40 -0000 1.7.2.3 +++ draggableviews.inc 30 Dec 2008 23:43:31 -0000 @@ -449,11 +443,6 @@ _draggableviews_node_set_value($node, $field_info['real_field_name'], $field_info['field_type'], $value); } - - // finally save the node - if ($node = node_submit($node)) { - node_save($node); // CAUTION, BUG: node_save destroys og_groups array - } } } @@ -683,22 +664,36 @@ if (!isset($value)) { // sometimes there is no value available (e.g. a root without a parent) - // set empty array $value = 0; - } - - //differ between certain field types - switch ($field_type) { - case 'nodereference': - $field[0]['nid'] = $value; + } + + //differ between certain field types + switch ($field_type) { + case 'nodereference': + $field[0]['nid'] = $value; break; - default: - case 'number_integer': - $field[0]['value'] = $value; - break; - } + default: + case 'number_integer': + $field[0]['value'] = $value; + break; + } + $type = content_types($node->type); + $tables = $type['tables']; + $target = $node->$field_name; + foreach($target[0] as $k => $v) { + if($v == $value) { + $db_field = $field_name ."_". $k; + $table = ''; + } + } + $fieldinfo = content_database_info(content_fields($field_name, $node->type)); + $table = $fieldinfo['table']; + + $sql = "UPDATE {$table} set $db_field = %d WHERE nid = %d AND vid = %d"; + $result = db_query($sql, $value, $node->nid, $node->vid); + } /*