diff -up -N views_node_feed/README views_node_feed_6/README
--- views_node_feed/README	2008-08-05 18:08:49.000000000 -0400
+++ views_node_feed_6/README	2008-12-02 07:27:09.000000000 -0500
@@ -7,7 +7,15 @@ How to use Views Node Feed:
    with nodes. You can sort and filter these nodes just
    as you regularly would with views. The view should provide
    a page.
-4. Add the "Node: Views Node Feed Selector" argument to the view
-   and select the node feed you want to use under "option"
-5. Access your view's node feed by adding /node_feed to the
-   end of your view page URL
\ No newline at end of file
+4. Add a "Feed" display by selecting "Feed" in the dropdown
+   at the upper left and then clicking "Add Display"
+5. Click "Style" in the basic settings column of your new feed 
+   and select "Views Node Feed" at the bottom of the page.
+   Click "Update"
+6. There should be a Settings icon next to "Style: Views Node Feed"
+   in the "Basic Settings" column.  Click that icon and select your feed. 
+   **Remember to click both "Update" and then "Save"**
+7. Go to the path you specified and view your feed!
+
+Note: views_node_feed no longer requires the /node_feed argument in order 
+to function.  The path you specified will work as specified
\ No newline at end of file
diff -up -N views_node_feed/views_node_feed.info views_node_feed_6/views_node_feed.info
--- views_node_feed/views_node_feed.info	2008-08-05 18:15:24.000000000 -0400
+++ views_node_feed_6/views_node_feed.info	2008-12-01 20:30:21.000000000 -0500
@@ -1,11 +1,7 @@
-; $Id: views_node_feed.info,v 1.1 2008/06/16 18:51:51 andrewlevine Exp $
+; $Id$
 name = Views Node Feed
 description = Allows the Creation of node pages based on Custom Functions
 package = Views
-dependencies = views views_ui
-
-; Information added by drupal.org packaging script on 2008-08-05
-version = "5.x-1.1"
-project = "views_node_feed"
-datestamp = "1217974524"
-
+dependencies[] = views
+dependencies[] = views_ui
+core = 6.x
\ No newline at end of file
diff -up -N views_node_feed/views_node_feed.module views_node_feed_6/views_node_feed.module
--- views_node_feed/views_node_feed.module	2008-08-05 18:08:49.000000000 -0400
+++ views_node_feed_6/views_node_feed.module	2008-12-02 11:18:07.000000000 -0500
@@ -1,53 +1,96 @@
 <?php
-//$Id: views_node_feed.module,v 1.1.2.1 2008/08/05 22:08:49 andrewlevine Exp $
+// $Id$
 
-/*
- * This module was ripped from views_rss and modified
+/**
+ * @file
+ * views_node_feed.module
+ * Provides a views style plugin that allows you to define new theme syles for
+ * things like XML and JSON through an easy contemplate like interface
+ */
+
+/**
+ * Implementation of hook_views_api().
+ * indicates compatible views API version
  */
+function views_node_feed_views_api() {
+  return array('api' => 2);
+}
 
-function views_node_feed_menu($may_cache) {
+/**
+ * Implementation of hook_theme().
+ */
+function views_node_feed_theme($existing, $type, $theme, $path) {
+  return array(
+    'views_node_feed_admin' => array(
+      'arguments' => array(
+        'feeds' => NULL,
+      ),
+    ),
+    'views_node_feed' => array(
+      'arguments' => array(
+        'view' => NULL,
+        'nodes' => NULL,
+        'type' => NULL
+      ),
+    ),
+  );
+}
+
+
+/**
+ * Implementation of hook_menu().
+ */
+function views_node_feed_menu() {
   $items = array();
-  if ($may_cache) {
-   $items[] = array(
-      'path' => 'admin/settings/views_node_feed',
-      'title' => t('Views Node Feed'),
-      'description' => t('Manage Different Types of Node Feeds'),
-      'access' => user_access('administer views'),
-      'callback' => 'views_node_feed_admin_settings',
-      'type' => MENU_NORMAL_ITEM,
-    );
-  }
-  else {
-    $items[] = array(
-      'path' => 'admin/settings/views_node_feed/edit/' . arg(4),
-      'title' => t('!op Node Feed', array('!op' => arg(4) === 'new' ? t('Add') : t('Edit'))),
-      'access' => user_access('administer views'),
-      'callback' => 'drupal_get_form',
-      'callback arguments' => array('views_node_feed_edit_form', arg(4)),
-      'type' => MENU_CALLBACK,
-    );
-    $items[] = array(
-      'path' => 'admin/settings/views_node_feed/delete/' . arg(4),
-      'title' => t('Delete Node Feed'),
-      'access' => user_access('administer views'),
-      'callback' => 'drupal_get_form',
-      'callback arguments' => array('views_node_feed_delete_form', arg(4)),
-      'type' => MENU_CALLBACK,
-    );
-  }
+  $items['admin/settings/views_node_feed'] = array(
+    'title' => 'Views Node Feed',
+    'description' => 'Manage Different Types of Node Feeds',
+    'access arguments' => array('administer views'),
+    'page callback' => 'views_node_feed_admin_settings',
+    'type' => MENU_NORMAL_ITEM,
+  );
+  $items['admin/settings/views_node_feed/edit'] = array(
+    'title' => 'Add/Edit Node Feed',
+    'title callback' => '_views_node_feed_edit_title_callback',
+    'title arguments' => array(4, "test"),
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('views_node_feed_edit_form'),
+    'access arguments' => array('administer views'),
+    'type' => MENU_NORMAL_ITEM,
+  );
+  $items['admin/settings/views_node_feed/delete'] = array(
+    'title' => 'Delete Node Feed',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('views_node_feed_delete_form'),
+    'access arguments' => array('Delete Node Feed'),
+    'type' => MENU_CALLBACK,
+  );
   return $items;
 }
 
+/**
+ *  Title Callback
+ */
+function _views_node_feed_edit_title_callback() {
+  $op = (arg(4) == 'new') ? "New" : "Edit";
+  return t('!op Node Feed', array('!op' => $op));
+}
 
+/**
+ *  Build the themed admin page
+ */
 function views_node_feed_admin_settings() {
   $feeds = views_node_feed_get_feeds();
   return theme('views_node_feed_admin', $feeds);
 }
 
-function views_node_feed_edit_form($ident) {
+/**
+ *  Provide the Views Node Feed create/edit form
+ */
+function views_node_feed_edit_form($arg1, $ident) {
   $new = $ident === 'new';
   if (!$new) {
-    if (views_node_feed_valid_identifier($ident)) {
+    if (_views_node_feed_valid_identifier($ident)) {
       $feed = views_node_feed_get_feeds($ident);
     }
     if (!$feed) {
@@ -72,14 +115,14 @@ function views_node_feed_edit_form($iden
     '#type' => 'textarea',
     '#title' => t('Wrapper Template'),
     '#description' => t('Template that will be placed around the list of nodes. Be sure to include the string ***VIEWS_NODE_FEED_ITEMS*** which will automatically be replaced with the necessary items. The variables $view, $nodes, and $type will be available.'),
-    '#default_value' => $new ? '***VIEWS_NODE_FEED_ITEMS***' : $feed['wrapper'], 
+    '#default_value' => $new ? '***VIEWS_NODE_FEED_ITEMS***' : $feed['wrapper'],
     '#required' => FALSE,
   );
   $form['node'] = array(
     '#type' => 'textarea',
     '#title' => t('Node template'),
     '#description' => t('Template that will be generated for each node. The variables $view, $nodes, $node, and $type will be available.'),
-    '#default_value' => $new ? '<?php print $node->title; ?><br/>' : $feed['node'], 
+    '#default_value' => $new ? '<?php print $node->title; ?><br/>' : $feed['node'],
     '#required' => FALSE,
   );
   $form['submit'] = array(
@@ -89,33 +132,42 @@ function views_node_feed_edit_form($iden
   return $form;
 }
 
-function views_node_feed_edit_form_validate($form_id, $form_values) {
-  if (!views_node_feed_valid_identifier($form_values['identifier'])) {
+/**
+ *  Validate the Views Node Feed create/edit form
+ */
+function views_node_feed_edit_form_validate($form, &$form_state) {
+  if (!_views_node_feed_valid_identifier($form_state['values']['identifier'])) {
     form_set_error('identifier', t('Invalid feed identifier'));
   }
   $feeds = views_node_feed_get_feeds();
-  if ($form_values['new'] && in_array($form_values['identifier'], $feeds)) {
+  if ($form_state['values']['new'] && in_array($form_state['values']['identifier'], $feeds)) {
     form_set_error('identifier', t('Feed identifier already exists.'));
   }
 }
 
-function views_node_feed_edit_form_submit($form_id, $form_values) {
+/**
+ *  Process submission of the Views Node Feed create/edit form
+ */
+function views_node_feed_edit_form_submit($form, &$form_state) {
   $val = array(
-    'identifier' => $form_values['identifier'],
-    'wrapper' => $form_values['wrapper'],
-    'node' => $form_values['node']
+    'identifier' => $form_state['values']['identifier'],
+    'wrapper' => $form_state['values']['wrapper'],
+    'node' => $form_state['values']['node']
   );
-  $ident = $form_values['identifier'];
+  $ident = $form_state['values']['identifier'];
   $feeds = views_node_feed_get_feeds();
   $feeds[$ident] = $ident;
   variable_set("views_node_feed_$ident", $val);
   variable_set("views_node_feed_feeds", $feeds);
-  
-  drupal_set_message('Node feed %feed updated', array('%feed' => $ident));
-  return 'admin/settings/views_node_feed';
+
+  drupal_set_message(t('Node feed %feed updated', array('%feed' => $ident)));
+  $form_state['redirect'] = 'admin/settings/views_node_feed';
 }
 
-function views_node_feed_delete_form($ident) {
+/**
+ *  Provide the Views Node Feed delete form
+ */
+function views_node_feed_delete_form($info, $ident) {
   $feeds = views_node_feed_get_feeds();
   if (!in_array($ident, $feeds)) {
     drupal_not_found();
@@ -130,18 +182,24 @@ function views_node_feed_delete_form($id
     t('Delete'), t('Cancel'));
 }
 
-function views_node_feed_delete_form_submit($form_id, $form_values) {
+/**
+ *  Process submission of the Views Node Feed delete form
+ */
+function views_node_feed_delete_form_submit($form, &$form_state) {
   $feeds = views_node_feed_get_feeds();
-  $ident = $form_values['identifier'];
+  $ident = $form_state['values']['identifier'];
   unset($feeds[$ident]);
   variable_del("views_node_feed_$ident");
   variable_set("views_node_feed_feeds", $feeds);
-  drupal_set_message(t('Node feed %feed deleted.', t(array('%feed' => $ident))));
+  drupal_set_message(t('Node feed %feed deleted.', array('%feed' => $ident)));
 }
 
-function views_node_feed_valid_identifier($ident) {
+/**
+ *  Ensure that the Views Node Feed identifier is valid
+ */
+function _views_node_feed_valid_identifier($ident) {
   $ident = (string)$ident;
-  if (strlen($ident) <=0 || strlen($ident) > 50) {
+  if (drupal_strlen($ident) <=0 || drupal_strlen($ident) > 50) {
     return FALSE;
   }
   $new = preg_replace('/[^a-zA-Z0-9_]/', '', $ident);
@@ -151,6 +209,13 @@ function views_node_feed_valid_identifie
   return TRUE;
 }
 
+/**
+ * Get views_node_feed feeds
+ * @param $ident
+ * a string containing the views_node_feed feed identity
+ * @return
+ * An array of feeds
+ */
 function views_node_feed_get_feeds($ident = NULL) {
   if ($ident === NULL) {
     return variable_get("views_node_feed_feeds", array());
@@ -161,152 +226,14 @@ function views_node_feed_get_feeds($iden
 }
 
 /**
- * Provide views plugins for the feed types we support.
- */
-function views_node_feed_views_style_plugins() {
-  return array(
-    'views_node_feed' => array(
-      'name' => t('Views Node Feed: Node feed'),
-      'theme' => 'views_node_feed',
-      'needs_table_header' => TRUE,
-      'needs_fields' => TRUE,
-      'even_empty' => TRUE,
-    ),
-  );
-}
-
-/**
- * While we support the global selector, some might want to allow
- * ONLY RSS feeds so we support a stingy selector too
- */
-function views_node_feed_views_arguments() {
-  $feeds = views_node_feed_get_feeds();
-  $arguments = array(
-    'views_node_feed' => array(
-      'name' => t('Node: Views Node Feed Selector'),
-      'handler' => 'views_handler_arg_node_feed_feed',
-      'option' => array(
-        '#type' => 'select',
-        '#options' => $feeds,
-      ),
-      'help' => t('This argument specifies a specific Node feed selector; it will only select Node feeds, unlike the built-in selector which can select pluggable feeds. You may enter the title the feed will advertise in the title field here, and the description of the feed in the option field here.'),
-    ),
-  );
-  return $arguments;
-}
-
-/**
- * handler for our own RSS argument; mimics the feed selector
- */
-function views_handler_arg_node_feed_feed($op, &$query, $argtype, $arg = '') {
-  switch($op) {
-    case 'summary':
-    case 'sort':
-    case 'link':
-    case 'title':
-      break;
-    case 'filter':
-      // This is a clone of the default selector, but it just invokes ours
-      // rather than calling all of them.
-      views_node_feed_views_feed_argument('argument', $GLOBALS['current_view'], $arg, $argtype);
-  }
-}
-
-/**
- * post view for our own op -- mimics the feed selector
- */
-function views_node_feed_views_post_view($view, $items, $output) {
-  foreach ($view->argument as $id => $argument) {
-    if ($argument['type'] == 'views_node_feed') {
-      $feed = $id;
-      break;
-    }
-  }
-
-  if ($feed !== NULL) {
-    return views_node_feed_views_feed_argument('post_view', $view, 'node_feed');
-  }
-}
-
-/**
- * feed argument hook that will convert us to RSS or display an icon.
- * the 4th argument isn't part of the hook, but we use it to differentiate
- * when called as a hook or when called manually from views_rss_views_post_view
- */
-function views_node_feed_views_feed_argument($op, &$view, $arg, $argdata = NULL) {
-  if ($op == 'argument' && $arg == 'node_feed') {
-    $view->page_type = 'views_node_feed';
-
-    if ($argdata['options']) {
-      $view->node_feed_type = $argdata['options'];
-    }
-
-    // reset the 'real url' to the URL without the feed argument.
-    $view_args = array();
-    $max = count($view->args);
-    foreach ($view->args as $id => $view_arg) {
-      ++$count;
-      if ($view_arg == $arg && $view->argument[$id]['id'] == $argdata['id']) {
-        if ($count != $max) {
-          $view_args[] = $argdata['wildcard'];
-        }
-      }
-      else {
-        $view_args[] = $view_arg;
-      }
-    }
-    $view->feed_url = views_get_url($view, $view_args);
-  }
-  else if ($op == 'post_view' && $view->build_type != 'block') {
-    $args = views_post_view_make_args($view, $arg, 'node_feed');
-    $url = views_get_url($view, $args);
-    $title = views_get_title($view, 'page', $args);
-
-    if ($view->used_filters) {
-      $filters = drupal_query_string_encode($view->used_filters);
-    }
-
-  }
-}
-
-/**
- * plugin that actually displays an RSS feed
+ * themes the views_node_feed admin page
+ *
+ * @ingroup themeable
  */
-function theme_views_node_feed($view, $nodes, $type) {
-  if ($type == 'block') {
-    return;
-  }
-  global $base_url;
-  
-  $feed = views_node_feed_get_feeds($view->node_feed_type);
-  $node_output = '';
-  //append list of nodes using template and ob
-  foreach ($nodes as $node) {
-    // Load the specified node:
-    $node = node_load($node->nid);
-    ob_start();
-    eval('?>' . $feed['node']);
-    $node_output .= ob_get_contents();
-    ob_end_clean();
-  }
-  ob_start();
-  eval('?>' . $feed['wrapper']);
-  $wrapper_output = ob_get_contents();
-  ob_end_clean();
-
-  //combine wrapper and nodes
-  $output = str_replace('***VIEWS_NODE_FEED_ITEMS***', $node_output, $wrapper_output);
-
-  //drupal_set_header('Content-Type: text/xml; charset=utf-8');
-  print $output;
-  module_invoke_all('exit');
-  exit; 
-}
-
 function theme_views_node_feed_admin($feeds) {
   $output = '';
-  $output .= '<p>' . l(t('Add new node feed'), 'admin/settings/views_node_feed/edit/new') . '</p>';
-  
+  $output .= '<p>'. l(t('Add new node feed'), 'admin/settings/views_node_feed/edit/new') .'</p>';
+
   $output .= '<p>';
   if (count($feeds) == 0) {
     $output .= t("No existing node feeds");
@@ -315,11 +242,11 @@ function theme_views_node_feed_admin($fe
     $header = array(t('Identifier'), t('Actions'));
     $rows = array();
     foreach ($feeds as $ident) {
-      $rows[] = array($ident, l(t('Edit'), 'admin/settings/views_node_feed/edit/'.$ident) . ' / ' . l(t('Delete'), 'admin/settings/views_node_feed/delete/'.$ident));
+      $rows[] = array($ident, l(t('Edit'), 'admin/settings/views_node_feed/edit/'. $ident) .' / '. l(t('Delete'), 'admin/settings/views_node_feed/delete/'. $ident));
     }
     $output .= theme('table', $header, $rows);
   }
   $output .= '</p>';
-  
+
   return $output;
-}
+}
\ No newline at end of file
diff -up -N views_node_feed/views_node_feed.views.inc views_node_feed_6/views_node_feed.views.inc
--- views_node_feed/views_node_feed.views.inc	1969-12-31 19:00:00.000000000 -0500
+++ views_node_feed_6/views_node_feed.views.inc	2008-12-02 11:18:07.000000000 -0500
@@ -0,0 +1,28 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * views_node_feed.views.inc
+ * Defines the views plugins
+ */
+
+/**
+ * Implementation of hook_views_plugins().
+ */
+function views_node_feed_views_plugins() {
+  return array(
+    // 'module' => 'views_node_feed',
+    'style' => array(
+      'views_node_feed' => array(
+        'title' => t('Views Node Feed'),
+        'handler' => 'views_node_feed_plugin_style_feed',
+        'theme' => 'views_node_feed_view_feed',
+        'uses row plugin' => FALSE,
+        'uses options' => TRUE,
+        'type' => 'feed',
+        'help topic' => 'style-rss',
+      ),
+    ),
+  );
+}
\ No newline at end of file
diff -up -N views_node_feed/views_node_feed_plugin_style_feed.inc views_node_feed_6/views_node_feed_plugin_style_feed.inc
--- views_node_feed/views_node_feed_plugin_style_feed.inc	1969-12-31 19:00:00.000000000 -0500
+++ views_node_feed_6/views_node_feed_plugin_style_feed.inc	2008-12-02 11:18:07.000000000 -0500
@@ -0,0 +1,52 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * views_node_feed_plugin_style_feed.inc
+ * Provides a configurable feed formatted by the selected views_node_feed template
+ */
+class views_node_feed_plugin_style_feed extends views_plugin_style {
+
+  function options(&$options) {
+    $options['format'] = 'Feed';
+  }
+
+  /*
+   * Provide a form for setting options.
+   *
+   * @param array $form
+   * @param array $form_state
+   */
+  function options_form(&$form, &$form_state) {
+    $form['format'] = array(
+      '#type' => 'select',
+      '#title' => t('Views Node Feed Template'),
+      '#options' => views_node_feed_get_feeds(),
+      '#default_value' => $this->options['format'],
+    );
+  }
+  function render() {
+    $rows = array();
+    $feed = views_node_feed_get_feeds($this->options['format']);
+    $nodes = array();
+    foreach ($this->view->result as $row) {
+      $node = node_load($row->nid);
+      ob_start();
+      eval('?>'. $feed['node']);
+      $evaluated_row = ob_get_contents();
+      ob_end_clean();
+      $node_output .= $evaluated_row;
+      $nodes[] = $node;
+    }
+    ob_start();
+    eval('?>'. $feed['wrapper']);
+    $wrapper_output = ob_get_contents();
+    ob_end_clean();
+    //combine wrapper and nodes
+    $output = str_replace('***VIEWS_NODE_FEED_ITEMS***', $node_output, $wrapper_output);
+    // print $output;
+    return $output;
+    // return theme($this->theme_functions(), $this->view, $this->options, $node_output);
+  }
+}
\ No newline at end of file
