--- loncom/interface/lonrss.pm 2005/11/20 19:37:44 1.6 +++ loncom/interface/lonrss.pm 2025/03/16 21:04:09 1.64 @@ -1,7 +1,7 @@ # The LearningOnline Network # RSS Feeder # -# $Id: lonrss.pm,v 1.6 2005/11/20 19:37:44 www Exp $ +# $Id: lonrss.pm,v 1.64 2025/03/16 21:04:09 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -29,17 +29,21 @@ package Apache::lonrss; use strict; +use LONCAPA; use Apache::Constants qw(:common); use Apache::loncommon; use Apache::lonnet; use Apache::lontexconvert; use Apache::lonlocal; use Apache::lonhtmlcommon; +use Apache::inputtags(); sub filterfeedname { my $filename=shift; $filename=~s/(\_rss\.html|\.rss)$//; $filename=~s/\W//g; + $filename=~s/\_rssfeed$//; + $filename=~s/^nohist\_//; return $filename; } @@ -51,73 +55,141 @@ sub displayfeedname { my ($rawname,$uname,$udom)=@_; my $filterfilename=&filterfeedname($rawname); # do we have a stored name? - my %stored=&Apache::lonnet::get('nohist_all_rss_feeds',[$filterfilename],$udom,$uname); - if ($stored{$filterfilename}) { return $stored{$filterfilename}; } + my %stored=&Apache::lonnet::get('nohist_all_rss_feeds',[$filterfilename,'feed_display_option_'.$filterfilename],$udom,$uname); + if ($stored{$filterfilename}) { return ($stored{$filterfilename},$stored{'feed_display_option_'.$filterfilename}); } # no, construct a name my $name=$filterfilename; if ($name=~/^CourseBlog/) { $name=&mt('Course Blog'); + if ($env{'course.'.$env{'request.course.id'}.'.type'} eq 'Community') { + $name = &mt('Community Blog'); + } if ($env{'course.'.$env{'request.course.id'}.'.description'}) { $name.=' '.$env{'course.'.$env{'request.course.id'}.'.description'}; } } else { $name=~s/\_/ /g; } - return $name; + return ($name,$stored{'feed_display_option_'.$filterfilename}); } -sub renamefeed { +sub namefeed { my ($rawname,$uname,$udom,$newname)=@_; return &Apache::lonnet::put('nohist_all_rss_feeds', { &filterfeedname($rawname) => $newname }, $udom,$uname); } +sub changefeeddisplay { + my ($rawname,$uname,$udom,$newstatus)=@_; + return &Apache::lonnet::put('nohist_all_rss_feeds', + { 'feed_display_option_'.&filterfeedname($rawname) => $newstatus }, + $udom,$uname); +} + sub advertisefeeds { - my ($uname,$udom,$edit)=@_; + my ($uname,$udom,$edit,$count,$hidden,$skipheader)=@_; my $feeds=''; my %feednames=&Apache::lonnet::dump('nohist_all_rss_feeds',$udom,$uname); my $mode='public'; if ($edit) { $mode='adm'; } + my $server = &Apache::lonnet::absolute_url(); foreach my $feed (sort(keys(%feednames))) { - if ($feed!~/^error\:/) { - my $feedurl='feed://'.$ENV{'HTTP_HOST'}.'/public/'.$udom.'/'.$uname.'/'.$feed.'.rss'; - my $htmlurl='http://'.$ENV{'HTTP_HOST'}.'/'.$mode.'/'.$udom.'/'.$uname.'/'.$feed.'_rss.html'; - $feeds.='
'.$info.'
'; + } else { + return '