add an RSS feed to describe a barrel's recent changes
authorJeremy Laine <jeremy.laine@m4x.org>
Wed, 7 Jun 2006 06:55:39 +0000 (06:55 +0000)
committerJeremy Laine <jeremy.laine@m4x.org>
Wed, 7 Jun 2006 06:55:39 +0000 (06:55 +0000)
include/admin/rss.php [new file with mode: 0644]
include/diogenes.barrel.inc.php
templates/admin-rss.tpl [new file with mode: 0644]

diff --git a/include/admin/rss.php b/include/admin/rss.php
new file mode 100644 (file)
index 0000000..13c72aa
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+require_once 'diogenes.common.inc.php';
+require_once 'diogenes.barrel.inc.php';
+require_once 'Barrel/Events.php';
+$page = new $globals->barrel;
+$events = new Diogenes_Barrel_Events($page->barrel);
+
+// assignments
+$page->assign('version', $globals->version);
+$page->assign('site_title', stripslashes($page->barrel->options->title));
+$page->assign('site_link', $page->urlBarrel($page->barrel->alias, $page->barrel->vhost, ''));
+
+// retrieve recent events
+$event_arr = $events->getEvents($page);
+foreach($event_arr as $event)
+{
+  //$page->assign('events', $event_arr);
+  if ($event['flags'] & EVENT_FLAG_PUBLIC)
+  {
+    $item = $event;
+    $item['date'] = gmstrftime("%a, %d %b %Y %T %Z", $event['stamp']);
+    $item['title'] .= " : ". $item['opfile'];
+    $page->append('items', $item);
+  }
+}
+header("Content-Type: text/xml");
+$page->display('', 'admin-rss.tpl');
+?>
index e5166e7..35f4e8a 100644 (file)
@@ -314,6 +314,9 @@ class DiogenesBarrel extends DiogenesPage
     // favicon
     if ($bbarrel->options->favicon)
       array_push($this->head, '<link rel="icon" href="'.$this->urlSite("", $bbarrel->options->favicon).'" type="image/png" />');
+
+    // RSS feed
+    array_push($this->head, '<link rel="alternate" type="text/xml" title="RSS .92" href="'.$this->urlSite("admin", "rss").'" />');
   }
 
 
diff --git a/templates/admin-rss.tpl b/templates/admin-rss.tpl
new file mode 100644 (file)
index 0000000..aea0e1e
--- /dev/null
@@ -0,0 +1,20 @@
+<!-- generator="Diogenes {$version}" -->
+<rss version="2.0">
+<channel>
+<title>Diogenes</title>
+<description>Diogenes RSS feed - {$site_title}</description>
+<link>
+{$site_link}
+</link>
+<generator>Diogenes {$version}</generator>
+{foreach item=item from=$items}
+<item>
+  <title>{$item.title}</title>
+  {if $item.link}<link>{$item.link}</link>{/if}
+  {if $item.description}<description>{$item.description}</description>{/if}
+  {if $item.author}<author>{$item.author}</author>{/if}
+  {if $item.data}<pubDate>{$item.date}</pubDate>{/if}
+</item>
+{/foreach}
+</channel>
+</rss>