Index: views_fusion.module =================================================================== --- views_fusion.module (revision 7407) +++ views_fusion.module (working copy) @@ -354,6 +354,13 @@ //merge query and fields views_fusion_query_merge($query, $fuse_query); views_fusion_views_merge($view, $fuse_view); + + foreach($view->field as $key => $field) { + if ($field['alias_prefix']) { + if ($field['handler'] && function_exists($field['handler'] . "_fusion")) $view->field[$key]['handler'] = $field['handler'] . "_fusion"; + else if (!$field['handler'] && function_exists('views_handler_'. $field['field'] . '_fusion')) $view->field[$key]['handler'] = 'views_handler_'. $field['field'] . "_fusion"; + } + } if (is_array($view->table_header) && is_array($fuse_view->table_header)) { //reconstruct table headers with the merged field information @@ -485,3 +492,33 @@ } return true; } + +/* + * Format a field as a link to a node. VF version + */ +function views_handler_field_nodelink_fusion($fieldinfo, $fielddata, $value, $data) { + if ($fielddata['options'] == 'nolink') { + return check_plain($value); + } + return l($value, "node/". $data->{$fielddata['tablename'] . "_nid"}); +} + +/** + * Display a node's nid, which is a little bit special. VF version + */ +function views_handler_nid_fusion($fieldinfo, $fielddata, $value, $data) { + return $value; +} + +/** + * display a link to edit a node with a destination return, VF version + */ +function views_handler_node_edit_destination_fusion($fieldinfo, $fielddata, $value, $data) { + // try to build a fake node object + $data->type = $data->node_type; + $data->uid = $data->node_uid; + if (node_access('update', $data)) { + $link_text = $fielddata['options'] ? $fielddata['options'] : t('Edit'); + return l($link_text, "node/". $data->{$fielddata['tablename'] . "_nid"}. "/edit", NULL, drupal_get_destination()); + } +} \ No newline at end of file