--- origviews_service.inc 2009-12-04 20:42:39.000000000 -0500 +++ views_service.inc 2010-01-20 15:39:22.000000000 -0500 @@ -43,7 +43,34 @@ function views_service_get($view_name, $ if (!$format_output) { $view->set_display($display_id); $view->execute(); - $result = $view->result; + + switch($view->base_table) { + case 'node': + // Get row plugin setting + $row_plugin = $view->display[$view->current_display]->display_options['row_plugin']; + + $nodes = array(); + // If row plugin is node, then we must do a node_load + if ($row_plugin == 'node') { + foreach ($view->result as $node) { + $nodes[] = services_node_load(node_load($node->nid)); + } + } + // Otherwise, pass through the fields filter, just in case + else { + foreach ($view->result as $node) { + // @note fields are handled by views itself + $nodes[] = services_node_load($node); + } + } + $result = $nodes; + break; + default: + foreach ($view->result as $item) { + // @note fields are handled by views itself + $result[] = $item; + } + } } else { // We want to keep the result an array.