Index: server/views/pifr_server.views_default.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/server/views/pifr_server.views_default.inc,v
retrieving revision 1.25
diff -u -r1.25 pifr_server.views_default.inc
--- server/views/pifr_server.views_default.inc	19 Dec 2009 01:30:53 -0000	1.25
+++ server/views/pifr_server.views_default.inc	22 Dec 2009 22:12:53 -0000
@@ -2523,6 +2523,38 @@
     'description' => '',
     'weight' => 0,
   ));
+  $handler = $view->new_display('feed', 'Feed', 'feed_1');
+  $handler->override_option('title', 'Event log');
+  $handler->override_option('style_plugin', 'rss');
+  $handler->override_option('style_options', array(
+    'mission_description' => FALSE,
+    'description' => '',
+  ));
+  $handler->override_option('row_plugin', 'pifr_log_rss');
+  $handler->override_option('path', 'pifr/log/feed');
+  $handler->override_option('menu', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+    'name' => 'navigation',
+  ));
+  $handler->override_option('tab_options', array(
+    'type' => 'none',
+    'title' => '',
+    'description' => '',
+    'weight' => 0,
+  ));
+  $handler->override_option('displays', array(
+    'page_1' => 'page_1',
+    'page_2' => 'page_2',
+    'default' => 0,
+    'page_3' => 0,
+    'page_4' => 0,
+    'page_5' => 0,
+    'page_6' => 0,
+  ));
+  $handler->override_option('sitename_title', 0);
 
   $views[$view->name] = $view;
 
Index: server/views/pifr_server.views.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/server/views/pifr_server.views.inc,v
retrieving revision 1.19
diff -u -r1.19 pifr_server.views.inc
--- server/views/pifr_server.views.inc	19 Dec 2009 01:30:53 -0000	1.19
+++ server/views/pifr_server.views.inc	22 Dec 2009 22:12:53 -0000
@@ -849,3 +849,24 @@
     ),
   );
 }
+
+/**
+ * Implementation of hook_views_plugins
+ */
+function pifr_server_views_plugins() {
+  return array(
+    'module' => 'views',
+    'row' => array(
+      'pifr_log_rss' => array(
+        'title' => t('PIFR log'),
+        'help' => t('Includes standard PIFR log fields.'),
+        'handler' => 'views_plugin_row_pifr_log_rss',
+        'path' => drupal_get_path('module', 'pifr_server') . '/views/plugins',
+        'theme' => 'views_view_row_rss',
+        'base' => array('pifr_log'),
+        'uses options' => FALSE,
+        'type' => 'feed',
+      ),
+    ),
+  );
+}
Index: server/pifr_server.log.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/server/pifr_server.log.inc,v
retrieving revision 1.8
diff -u -r1.8 pifr_server.log.inc
--- server/pifr_server.log.inc	4 Dec 2009 20:29:07 -0000	1.8
+++ server/pifr_server.log.inc	22 Dec 2009 22:12:53 -0000
@@ -51,6 +51,19 @@
 }
 
 /**
+ * Load log entry.
+ *
+ * @param integer $log_id Log ID.
+ * @return array Log information.
+ */
+function pifr_server_log_get($log_id) {
+  $result = db_query('SELECT *
+                      FROM {pifr_log}
+                      WHERE log_id = %d', $log_id);
+  return db_fetch_array($result);
+}
+
+/**
  * Delete a log entries associated with a test.
  *
  * @param integer $test_id Test ID.
Index: server/views/plugins/views_plugin_row_pifr_log_rss.inc
===================================================================
RCS file: server/views/plugins/views_plugin_row_pifr_log_rss.inc
diff -N server/views/plugins/views_plugin_row_pifr_log_rss.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ server/views/plugins/views_plugin_row_pifr_log_rss.inc	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,46 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Provides PIFR log RSS row style plugin.
+ *
+ * @author Jimmy Berry ("boombatower", http://drupal.org/user/214218)
+ */
+
+/**
+ * PIFR log RSS row style plugin.
+ */
+class views_plugin_row_pifr_log_rss extends views_plugin_row {
+
+  function render($row) {
+    global $base_url;
+
+    $log = pifr_server_log_get($row->log_id);
+
+    $item  = new stdClass();
+    $item->title = pifr_server_log_code($log['code'], $log['client_id']);
+    $item->link = url('pifr/test/' . $log['test_id'], array('absolute' => TRUE));
+    $item->description = '';
+    $item->elements = array(
+      array(
+        'key' => 'pubDate',
+        'value' => gmdate('r', $log['timestamp'])
+      ),
+      array(
+        'key' => 'guid',
+        'value' => 'log ' .  $log['log_id'] . ' at ' . $base_url,
+        'attributes' => array('isPermaLink' => 'true'),
+        'namespace' => array('xmlns:dc' => 'http://purl.org/dc/elements/1.1/'),
+      ),
+    );
+
+    foreach ($item->elements as $element) {
+      if (isset($element['namespace'])) {
+        $this->view->style_plugin->namespaces = array_merge($this->view->style_plugin->namespaces, $element['namespace']);
+      }
+    }
+
+    return theme($this->theme_functions(), $this->view, $this->options, $item);
+  }
+}
