From b2fcc7e3274e4563fc1642bb3ad56bd375eb8092 Mon Sep 17 00:00:00 2001 From: Scott Ullrich Date: Sat, 14 Mar 2009 20:23:32 -0400 Subject: Widget is ready for general usage and defaults to pfS blog --- usr/local/www/widgets/widgets/rss.widget.php | 69 ++++++++++++++++++++++------ 1 file changed, 56 insertions(+), 13 deletions(-) (limited to 'usr/local/www/widgets') diff --git a/usr/local/www/widgets/widgets/rss.widget.php b/usr/local/www/widgets/widgets/rss.widget.php index 2237f19..09dc309 100644 --- a/usr/local/www/widgets/widgets/rss.widget.php +++ b/usr/local/www/widgets/widgets/rss.widget.php @@ -31,14 +31,26 @@ require_once("pfsense-utils.inc"); require_once("functions.inc"); if($_POST) { - $config['widgets']['rssfeed'] = $_POST['rssfeed']; - config_write("Saved RSS Widget feed via Dashboard"); + if($_POST['rssfeed'] <> "") + $config['widgets']['rssfeed'] = $_POST['rssfeed']; + if($_POST['rssmaxitems'] <> "") + $config['widgets']['rssmaxitems'] = $_POST['rssmaxitems']; + write_config("Saved RSS Widget feed via Dashboard"); Header("Location: /"); } +// Use saved feed and max items +if($config['widgets']['rssfeed']) + $rss_feed = $config['widgets']['rssfeed']; +if($config['widgets']['rssmaxitems']) + $max_items = $config['widgets']['rssmaxitems']; + // Set a default feed if none exists if(!$rss_feed) $rss_feed = "http://blog.pfsense.org"; + +if(!$max_items) + $max_items = 5; ?> @@ -46,28 +58,59 @@ if(!$rss_feed)
$length) + return (preg_match('/^(.*)\W.*$/', substr($string, 0, $length+1), $matches) ? $matches[1] : substr($string, 0, $length)) . $replacer; + + return $string; + } + $feed = new SimplePie(); + $feed->set_cache_location("/tmp/simplepie/"); + $feed->set_feed_url("{$rss_feed}"); + $feed->init(); + $feed->set_output_encoding('latin-1'); $feed->handle_content_type(); - - foreach($feed->get_items() as $item) {} + if(!is_dir("/tmp/simplepie")) { + mkdir("/tmp/simplepie"); + mkdir("/tmp/simplepie/cache"); + } + exec("chmod a+rw/tmp/simplepie/."); + exec("chmod a+rw/tmp/simplepie/cache/."); + $counter = 1; + foreach($feed->get_items() as $item) { $feed = $item->get_feed(); - - echo "
"; - echo "" . $item->get_title() . ""; - echo "

" . $item->get_content() . "

"; - echo "

Source: " . $feed->get_title() . ""; + $feed->strip_htmltags(); + echo "" . $item->get_title() . "
"; + $content = $item->get_content(); +// if(strlen($content) > 140) +// $content = substr($content,0,140) . " (cont)..."; + $content = strip_tags($content); + echo textLimit($content, 140) . "
"; + echo "Source: " . $feed->get_title() . "
"; echo "


"; + $counter++; + if($counter > $max_items) + break; + } ?> -
+