Index: draggableviews.inc
===================================================================
--- draggableviews.inc	(revision 2242)
+++ draggableviews.inc	(revision 2245)
@@ -58,7 +58,7 @@
   _draggableviews_build_hierarchy($info);
   
   // save structure
-  _draggableviews_save_hierarchy($info);
+  _draggableviews_save_hierarchy($info, $view);
   
   if (isset($info['hierarchy'])) {
     
@@ -410,7 +410,7 @@
         $tmp_order++;
       }
       
-      $collision = TRUE;
+      // $collision = TRUE;
     }
     
     $order[$parent] = array_merge(array($tmp_order), $order[$parent]);
@@ -426,9 +426,18 @@
  * 
  * @param $info
  *   The structured information array
+ * @param $view
+ *   The view that is being used
  */
-function _draggableviews_save_hierarchy($info) {
+function _draggableviews_save_hierarchy($info, $view = NULL) {
 
+  // Let modules attempt to save these changes.
+  $results = module_invoke_all('draggableviews_save_hierarchy', $view, $info);
+  if (in_array(TRUE, $results)) {
+    // one of the modules returned TRUE - skip default save
+    return;
+  }
+  
   // loop through all nodes
   foreach ($info['nodes'] as $nid => $prop) {
   
@@ -729,6 +738,15 @@
   $available_fields = array();
   
   foreach ($handlers as $field => $handler) {
+    // HACK: support non-content fields
+    if ($label = $handler->label()) {
+      $available_fields[$field] = $label;
+    }
+    else {
+      $available_fields[$field] = $handler->ui_name();
+    }
+    continue;
+    
     $available = FALSE;
     // search given type in content-field-type
     if (isset($handler->content_field)) {
