--- loncom/interface/lonrss.pm 2005/11/18 13:35:30 1.2
+++ loncom/interface/lonrss.pm 2005/11/18 19:11:06 1.3
@@ -1,7 +1,7 @@
# The LearningOnline Network
# RSS Feeder
#
-# $Id: lonrss.pm,v 1.2 2005/11/18 13:35:30 www Exp $
+# $Id: lonrss.pm,v 1.3 2005/11/18 19:11:06 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -36,8 +36,6 @@ use Apache::lontexconvert;
use Apache::lonlocal;
use Apache::lonhtmlcommon;
-my $feedcounter=0;
-
sub filterfeedname {
my $filename=shift;
$filename=~s/\.rss$//;
@@ -79,11 +77,11 @@ sub advertisefeeds {
my ($uname,$udom)=@_;
my $feeds='';
my %feednames=&Apache::lonnet::dump('nohist_all_rss_feeds',$udom,$uname);
- foreach (sort keys %feednames) {
- if ($_!~/^error\:/) {
- my $url='feed://'.$ENV{'HTTP_HOST'}.'/public/'.$udom.'/'.$uname.'/'.$_.'.rss';
+ foreach my $feed (sort(keys(%feednames))) {
+ if ($feed!~/^error\:/) {
+ my $url='feed://'.$ENV{'HTTP_HOST'}.'/public/'.$udom.'/'.$uname.'/'.$feed.'.rss';
$feeds.='
'.
- $feednames{$_}.'
'.$url.'';
+ $feednames{$feed}.'
'.$url.'';
}
}
if ($feeds) {
@@ -93,10 +91,13 @@ sub advertisefeeds {
}
}
-sub addentry {
- $feedcounter++;
- my $id=time.'00000'.$$.'00000'.$feedcounter;
- return &editentry($id,@_);
+{
+ my $feedcounter;
+ sub addentry {
+ $feedcounter++;
+ my $id=time.'00000'.$$.'00000'.$feedcounter;
+ return &editentry($id,@_);
+ }
}
sub editentry {
@@ -133,7 +134,7 @@ sub changestatus {
sub handler {
my $r = shift;
- &Apache::loncommon::content_type($r,'text/xml');
+ &Apache::loncommon::content_type($r,'application/rss+xml');
$r->send_http_header;
return OK if $r->header_only;
@@ -165,19 +166,19 @@ sub handler {
}
# Get feed items
my %newsfeed=&Apache::lonnet::dump($feedname,$udom,$uname);
- foreach (sort keys %newsfeed) {
- if ($_=~/^(\d+)\_status$/) {
+ foreach $entry (sort(keys(%newsfeed))) {
+ if ($entry=~/^(\d+)\_status$/) {
my $id=$1;
if (($newsfeed{$id.'_status'} ne 'public') && ($viewpubliconly)) { next; }
if ($newsfeed{$id.'_status'} eq 'hidden') { next; }
$r->print("\n- \n".$newsfeed{$id.'_title'}."\n".
- $newsfeed{$id.'_description'}."\n".
+ $newsfeed{$id.'_description'}."\n"."http://".$ENV{'HTTP_HOST'}.
$newsfeed{$id.'_link'}."\n");
if ($newsfeed{$id.'_enclosureurl'}) {
$r->print("\n");
}
- $r->print("\n".$id.$filterfeedname.'_'.$udom.'_'.$uname."
\n");
+ $r->print("\n".$id.$filterfeedname.'_'.$udom.'_'.$uname."\n");
}
}
}