--- loncom/interface/lonrss.pm 2007/05/02 01:33:49 1.35
+++ loncom/interface/lonrss.pm 2008/11/11 10:45:22 1.38
@@ -1,7 +1,7 @@
# The LearningOnline Network
# RSS Feeder
#
-# $Id: lonrss.pm,v 1.35 2007/05/02 01:33:49 albertel Exp $
+# $Id: lonrss.pm,v 1.38 2008/11/11 10:45:22 amueller Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -94,18 +94,20 @@ sub advertisefeeds {
}
my $server = &Apache::lonnet::absolute_url();
foreach my $feed (sort(keys(%feednames))) {
- if (($feed!~/^error\:/) && ($feed!~/^feed\_display\_option\_/)) {
- my $feedurl= $server.'/public/'.$udom.'/'.$uname.'/'.$feed.'.rss';
- my $htmlurl= $server.'/'.$mode.'/'.$udom.'/'.$uname.'/'.$feed.'_rss.html';
- if ($feednames{'feed_display_option_'.$feed} eq 'hidden') {
- if ($edit) {
- $feeds.='
'.$feednames{$feed}.'
'.&mt('Hidden').': '.$htmlurl.'';
- }
- } else {
- $feeds.=''.$feednames{$feed}.
- '
'.($edit?&mt('Edit'):'HTML').': '.$htmlurl.''.
- '
'.&mt('Public RSS/podcast (subscribe to)').': '.$feedurl.'';
+ next if ($feed =~/^\s*$/ ||
+ $feed =~ /^error:/ ||
+ $feed =~ /^feed_display_option_/);
+
+ my $feedurl= $server.'/public/'.$udom.'/'.$uname.'/'.$feed.'.rss';
+ my $htmlurl= $server.'/'.$mode.'/'.$udom.'/'.$uname.'/'.$feed.'_rss.html';
+ if ($feednames{'feed_display_option_'.$feed} eq 'hidden') {
+ if ($edit) {
+ $feeds.=''.$feednames{$feed}.'
'.&mt('Hidden').': '.$htmlurl.'';
}
+ } else {
+ $feeds.=''.$feednames{$feed}.
+ '
'.($edit?&mt('Edit'):'HTML').': '.$feednames{$feed}.' HTML'.
+ '
'.&mt('Public RSS/podcast (subscribe to)').': '.$feednames{$feed}.' RSS/Podcast';
}
}
if ($feeds) {
@@ -116,8 +118,22 @@ sub advertisefeeds {
}
sub rss_link {
- my ($url) = @_;
- return qq||;
+ my ($uname,$udom)=@_;
+ my $result;
+ my $server = &Apache::lonnet::absolute_url();
+ my %feednames=&Apache::lonnet::dump('nohist_all_rss_feeds',$udom,$uname);
+ foreach my $feed (sort(keys(%feednames))) {
+ next if ($feed =~/^\s*$/ ||
+ $feed =~ /^error:/ ||
+ $feed =~/^feed_display_option_/ );
+ my $url= $server.'/public/'.$udom.'/'.$uname.'/'.$feed.'.rss';
+ my $title = $feed;
+ $title =~ s/_/ /g;
+ $result.=qq|
+
+|;
+ }
+ return $result;
}
{
@@ -294,7 +310,8 @@ sub handler {
if ($html) {
my $title = $displayfeedname?$displayfeedname
:"Available RSS Feeds and Blogs";
- $r->print(&Apache::loncommon::start_page($title,undef,
+ my $rss_link = &Apache::lonrss::rss_link($uname,$udom);
+ $r->print(&Apache::loncommon::start_page($title,$rss_link,
{'domain' => $udom,
'force_register' =>
$env{'form.register'}}).
@@ -466,7 +483,7 @@ sub handler {
}
# Get feed items
my %newsfeed=&Apache::lonnet::dump($feedname,$udom,$uname);
- foreach my $entry (sort(keys(%newsfeed)),$newid.'_status') {
+ foreach my $entry (sort {$b cmp $a} (keys(%newsfeed)),$newid.'_status') {
if ($entry=~/^(\d+)\_status$/) { # is an entry
my $id=$1;
if ($edit) {