Index: draggableviews.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/draggableviews/draggableviews.module,v retrieving revision 1.6.2.38 diff -u -r1.6.2.38 draggableviews.module --- draggableviews.module 27 Aug 2010 11:18:30 -0000 1.6.2.38 +++ draggableviews.module 3 Sep 2010 11:08:23 -0000 @@ -126,7 +126,7 @@ $info = &$view->draggableviews_info; foreach ($view->result AS $i => $result) { - $nid = $result->{$view->base_field}; + $nid = $result->{$info['base_field_alias']}; // This for loop should prevent copy->paste'ing code. foreach (array('hierarchy', 'order') AS $modus) { @@ -389,11 +389,11 @@ 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}]; + $info['input'][$row->{$info['base_field_alias']}]['order'][0] = $input[$info['order']['field']['field_name'] .'_'. $row->{$info['base_field_alias']}]; } // Set parent values. if (isset($info['hierarchy'])) { - $info['input'][$row->{$view->base_field}]['parent'] = $input[$info['hierarchy']['field']['field_name'] .'_'. $row->{$view->base_field}]; + $info['input'][$row->{$info['base_field_alias']}]['parent'] = $input[$info['hierarchy']['field']['field_name'] .'_'. $row->{$info['base_field_alias']}]; } } Index: draggableviews_theme.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/draggableviews/draggableviews_theme.inc,v retrieving revision 1.6.2.31 diff -u -r1.6.2.31 draggableviews_theme.inc --- draggableviews_theme.inc 27 Aug 2010 14:10:30 -0000 1.6.2.31 +++ draggableviews_theme.inc 3 Sep 2010 11:08:23 -0000 @@ -132,7 +132,7 @@ // loop through all rows the view returned foreach ($vars['rows'] as $i => $row) { - $nid = $result[$i]->{$view->base_field}; + $nid = $result[$i]->{$info['base_field_alias']}; // build indentation (as tabledrag requires) $indentation = theme('indentation', $info['nodes'][$nid]['depth']); Index: draggableviews.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/draggableviews/draggableviews.inc,v retrieving revision 1.7.2.37 diff -u -r1.7.2.37 draggableviews.inc --- draggableviews.inc 7 Sep 2009 19:14:47 -0000 1.7.2.37 +++ draggableviews.inc 3 Sep 2010 11:08:22 -0000 @@ -167,25 +167,36 @@ // Get all nodes and their properties. $info['nodes'] = array(); if (isset($info['order']) && isset($results) && count($results) > 0) { - // loop through all resulting nodes + // loop through all resulting nodes + + // determine if field on which to index the ordering is on the base table or a relationship + $field = $info['view']->field[$info['order']['field']['field_name']]; + if (($relationship = $field->options['relationship']) && ($relationship_obj = $field->view->relationship[$relationship])) { + // there must be a better way to get the field alias + $info['base_field_alias'] = $relationship_obj->alias.'_'.$view->base_field; + } else { + $info['base_field_alias'] = $view->base_field; + } + foreach ($results as $row) { if (is_numeric($row->{$info['order']['field']['field_alias']})) { - $info['nodes'][$row->{$view->base_field}]['order'][0] = $info['order']['field']['handler']->get((int)($row->{$info['order']['field']['field_alias']})); + $info['nodes'][$row->{$info['base_field_alias']}]['order'][0] = $info['order']['field']['handler']->get((int)($row->{$info['order']['field']['field_alias']})); } else { // Default position of new nodes. We cannot use $view->total_rows instead of 99999999 because // $view->total_rows will not be calculated if paging is not used. - $info['nodes'][$row->{$view->base_field}]['order'][0] = $info['default_on_top'] == 1 ? -1 : 99999999; + $info['nodes'][$row->{$info['base_field_alias']}]['order'][0] = $info['default_on_top'] == 1 ? -1 : 99999999; } if (isset($info['hierarchy'])) { - $info['nodes'][$row->{$view->base_field}]['parent'] = $info['hierarchy']['field']['handler']->get((int)$row->{$info['hierarchy']['field']['field_alias']}); + $info['nodes'][$row->{$info['base_field_alias']}]['parent'] = $info['hierarchy']['field']['handler']->get((int)$row->{$info['hierarchy']['field']['field_alias']}); } } - } + } return $info; } + /* * Quick Check Structure *