From 05250f978cc7e3e1f7df92f20fd18f4667a06f2f Mon Sep 17 00:00:00 2001 From: Dylan Lloyd Date: Tue, 8 Mar 2011 15:57:43 -0500 Subject: [PATCH] RSS feed working Trusts note HTML, does not escape! This is acceptable, as only I will be editing the notes, but is worth mentioning again. The first two sentences are found by locating periods, which is good enough I think. Haven't added a link to the feed, honestly I'm not sure I want to, it's just nice to have the feature. I want to make sure the /notes/ page stays clean. URL is /notes/rss --- .htaccess | 2 ++ index.php | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/.htaccess b/.htaccess index f2421fc..ce9fed8 100644 --- a/.htaccess +++ b/.htaccess @@ -3,6 +3,8 @@ ErrorDocument 404 /404.php RewriteEngine on +RewriteRule ^notes/rss/?$ /index.php?rss=true [L] + RewriteRule ^note/([^/\.]+)?/?$ /index.php?note=$1 [L] RewriteRule ^notes/?$ notes/page/1 diff --git a/index.php b/index.php index f151a74..8fe0432 100644 --- a/index.php +++ b/index.php @@ -30,6 +30,8 @@ abstract class cms { return 'index'; } else if (isset($_GET['project'])) { return 'project'; + } else if (isset($_GET['rss'])) { + return 'rss'; } } @@ -148,8 +150,7 @@ class index extends cms {

my repositories:

-
  • git://dylanstestserver.com
  • +
  • git://dylanstestserver.com
  • some notes:

    @@ -417,6 +418,50 @@ class archive extends cms { } +class rss extends cms { + public function display() { + $result = $this->db->query("SELECT date_posted, title, text, url + FROM notes ORDER BY date_posted DESC + LIMIT 5"); + echo << + + dylanstestserver.com/notes/rss + http://dylanstestserver.com/notes + dylanstestserver.com/notes/rss + +END_OF_ENTRY; + while ($entry = $result->fetch_object()) { + $title = $entry->title; + $date_posted = $entry->date_posted; + $url = "http://dylanstestserver.com/note/" . $entry->url; + $text = $entry->text; + $text = strip_tags($text); + $end_of_first_sentence = strpos($text, '.'); + if ($end_of_first_sentence) { + $end_of_second_sentence = strpos($text, '.', ($end_of_first_sentence + 1)); + if ($end_of_second_sentence) { + $description = substr($text, '0', ($end_of_second_sentence + 1)); + } else { + $description = substr($text, '0', ($end_of_first_sentence + 1)); + } + } + echo << + $title + $url + $url + $description + +END_OF_ENTRY; + } + echo ""; + echo ""; + + } +} + + class notFound extends Exception { public function __construct() { header("HTTP/1.0 404 Not Found"); @@ -448,6 +493,9 @@ switch (cms::determine_type()) { $archive = new archive; $archive->display(); break; + case "rss": + $rss = new rss(); + $rss->display(); } ?> -- 2.30.2