### Eclipse Workspace Patch 1.0
#P feed_node
Index: feed_node.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feed_node/feed_node.install,v
retrieving revision 1.1
diff -u -r1.1 feed_node.install
--- feed_node.install	13 Dec 2006 17:09:03 -0000	1.1
+++ feed_node.install	8 Apr 2007 20:40:04 -0000
@@ -24,10 +24,5 @@
   else {
 		drupal_set_message(t("A database error occured installing the feed node DB schema.  Feed node may not work."), "error");
   }
- 
-  include_once(drupal_get_path('module', 'feed_node') .'/feed_node.module'); 
-  _feed_node_aggregator_dependency_check();
 
 }
-
-?>
\ No newline at end of file
Index: feed_node.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feed_node/feed_node.module,v
retrieving revision 1.3
diff -u -r1.3 feed_node.module
--- feed_node.module	19 Dec 2006 19:57:57 -0000	1.3
+++ feed_node.module	8 Apr 2007 20:40:05 -0000
@@ -42,9 +42,16 @@
 function feed_node_menu($may_cache) {
 	$items = array();
 	
-	$items[] = array('path' => 'admin/settings/feed_node', 'title' => t('feed node'),
-    'callback' => 'feed_node_settings',
-    'access' => user_access('administer feed node'));
+  if ($may_cache) {
+    $items[] = array(
+      'path' => 'admin/settings/feed_node',
+      'title' => t('Feed Node'),
+      'access' => user_access('administer feed node'),
+      'callback' => 'drupal_get_form',
+      'callback arguments' => 'feed_node_settings',
+      'description' => t('Configure the Feed Node settings.'),
+    );
+  }
 
 	return $items;
 }
@@ -56,19 +63,12 @@
   return array('administer feed nodes');
 }
 
-function _feed_node_aggregator_dependency_check() {
-	if (!module_exist("aggregator")) {
-  		drupal_set_message(t("You do not have the aggregator module installed.  Please ensure this is enabled or feed node will not work."), "error");
-  	}
-}
 
 /**
  * Feed node implementation of the administrative settings hook.
  */
 function feed_node_settings() {
 
-	_feed_node_aggregator_dependency_check();
-
 	$form = array();
 	$form['feed_node_allowed_html_tags'] = array(
 		'#type' => 'textfield', 
@@ -103,28 +103,7 @@
 	$form['submit'] = array('#type' => 'submit', '#value' => t('Save configuration'));
 	$form['clear'] = array('#type' => 'submit', '#value' => t('Reset to defaults'));
 	  	
-	return drupal_get_form('feed_node_settings', $form);
-}
-
-function feed_node_settings_submit($form_id, $values) {
-  $op = isset($_POST['op']) ? $_POST['op'] : '';
-  $key = $values['var'];
-
-  // Exclude unnecessary elements.
-  unset($values['submit'], $values['reset'], $values['form_id']);
-
-  if ($op == t('Reset to defaults')) {
-    variable_del("feed_node_allowed_html_tags");
-    variable_del("feed_node_delete_flag");
-    variable_del("feed_node_teaser_length");
-    drupal_set_message(t('The configuration options have been reset to their default values.'));
-  }
-  else {
-    variable_set("feed_node_allowed_html_tags", $values['feed_node_allowed_html_tags']);
-    variable_set("feed_node_delete_flag", $values['feed_node_delete_flag']);
-    variable_set("feed_node_teaser_length", $values['feed_node_teaser_length']);
-    drupal_set_message(t('The configuration options have been saved.'));
-  }
+	 return system_settings_form($form);
 }
 
 
@@ -239,10 +218,10 @@
       break;
 
     case 'view':
-		  // if we have an attached feed, display it in the body of the node
-		  if ($node->feed_node) {
-			  $node->body = $node->body . theme('feed_node', $node->feed_node);
-		  }
+      $node->content['feed_node'] = array(
+        '#value' => theme('feed_node', $node->feed_node),
+        '#weight' => 10,
+      );
       break;
   }
 } 
@@ -257,12 +236,6 @@
  */
 function feed_node_form_alter($form_id, &$form) {
 
-  // We're only modifying node forms, if the type field isn't set we don't need
-  // to bother.
-  if (!isset($form['type'])) {
-    return;
-  }
-
   $type =  $form['type']['#value'];
 
   // The feeds are enabled on a per node type basis. The variable used to store
@@ -274,8 +247,10 @@
   switch ($form_id) {
 
     // Settings form allowing node types to have display aggregator feed items output.
-    case $type .'_node_settings':
-      $form['workflow']['feed_node_'. $type] = array(
+    case 'node_type_form':
+      $type =  $form['#node_type']->orig_type;
+      $enabled = variable_get('feed_node_'. $type, 0);
+      $form['workflow']['feed_node'] = array(
         '#type' => 'radios',
         '#title' => t('Feed node capability'),
         '#default_value' => $enabled,
@@ -394,18 +369,18 @@
   $output .= '<h3>'. t($feed['title']) .'</h3>';
   
   if ($feed['link']) {
-	  $output .= '<div class="feed-url"><em>'. t('URL:') .'</em> '. l($feed['link'], $feed['link'], array(), NULL, NULL, TRUE) ."</div>\n";
+	  $output .= '<div class="feed-url">'. t('URL:') .' '. l($feed['link'], $feed['link'], array(), NULL, NULL, TRUE) ."</div>\n";
   }
 	
   if ($feed['checked']) {
-    $updated = t('%time ago', array('%time' => format_interval(time() - $feed['checked'])));
+    $updated = t('!time ago', array('!time' => format_interval(time() - $feed['checked'])));
   }
   else {
     $updated = t('never');
   }
 
   if (user_access('administer news feeds')) {
-    $updated = l($updated, 'admin/aggregator');
+    $updated = l($updated, 'admin/content/aggregator');
   }
 
   $output .= '<div class="feed-updated"><em>'. t('Updated:') . "</em> $updated</div>";
@@ -522,4 +497,3 @@
 }
 
 
-?>
\ No newline at end of file
Index: feed_node.info
===================================================================
RCS file: feed_node.info
diff -N feed_node.info
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ feed_node.info	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,6 @@
+; $Id $
+name = "Feed Node"
+description = "The purpose of this module is to provide a simple method for displaying aggregator feed items within a node framework."
+dependencies = aggregator
+;package = ""
+version = "$Name$"
