--- 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"); } } }