version 1.2, 2005/11/18 13:35:30
|
version 1.4, 2005/11/18 19:32:05
|
Line 36 use Apache::lontexconvert;
|
Line 36 use Apache::lontexconvert;
|
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::lonhtmlcommon; |
use Apache::lonhtmlcommon; |
|
|
my $feedcounter=0; |
|
|
|
sub filterfeedname { |
sub filterfeedname { |
my $filename=shift; |
my $filename=shift; |
$filename=~s/\.rss$//; |
$filename=~s/\.rss$//; |
Line 79 sub advertisefeeds {
|
Line 77 sub advertisefeeds {
|
my ($uname,$udom)=@_; |
my ($uname,$udom)=@_; |
my $feeds=''; |
my $feeds=''; |
my %feednames=&Apache::lonnet::dump('nohist_all_rss_feeds',$udom,$uname); |
my %feednames=&Apache::lonnet::dump('nohist_all_rss_feeds',$udom,$uname); |
foreach (sort keys %feednames) { |
foreach my $feed (sort(keys(%feednames))) { |
if ($_!~/^error\:/) { |
if ($feed!~/^error\:/) { |
my $url='feed://'.$ENV{'HTTP_HOST'}.'/public/'.$udom.'/'.$uname.'/'.$_.'.rss'; |
my $url='feed://'.$ENV{'HTTP_HOST'}.'/public/'.$udom.'/'.$uname.'/'.$feed.'.rss'; |
$feeds.='<li><a href="'.$url.'">'. |
$feeds.='<li><a href="'.$url.'">'. |
$feednames{$_}.'</a><br /><tt>'.$url.'</tt></li>'; |
$feednames{$feed}.'</a><br /><tt>'.$url.'</tt></li>'; |
} |
} |
} |
} |
if ($feeds) { |
if ($feeds) { |
Line 93 sub advertisefeeds {
|
Line 91 sub advertisefeeds {
|
} |
} |
} |
} |
|
|
sub addentry { |
{ |
$feedcounter++; |
my $feedcounter; |
my $id=time.'00000'.$$.'00000'.$feedcounter; |
sub addentry { |
return &editentry($id,@_); |
$feedcounter++; |
|
my $id=time.'00000'.$$.'00000'.$feedcounter; |
|
return &editentry($id,@_); |
|
} |
} |
} |
|
|
sub editentry { |
sub editentry { |
Line 133 sub changestatus {
|
Line 134 sub changestatus {
|
|
|
sub handler { |
sub handler { |
my $r = shift; |
my $r = shift; |
&Apache::loncommon::content_type($r,'text/xml'); |
&Apache::loncommon::content_type($r,'application/rss+xml'); |
$r->send_http_header; |
$r->send_http_header; |
return OK if $r->header_only; |
return OK if $r->header_only; |
|
|
Line 165 sub handler {
|
Line 166 sub handler {
|
} |
} |
# Get feed items |
# Get feed items |
my %newsfeed=&Apache::lonnet::dump($feedname,$udom,$uname); |
my %newsfeed=&Apache::lonnet::dump($feedname,$udom,$uname); |
foreach (sort keys %newsfeed) { |
foreach my $entry (sort(keys(%newsfeed))) { |
if ($_=~/^(\d+)\_status$/) { |
if ($entry=~/^(\d+)\_status$/) { |
my $id=$1; |
my $id=$1; |
if (($newsfeed{$id.'_status'} ne 'public') && ($viewpubliconly)) { next; } |
if (($newsfeed{$id.'_status'} ne 'public') && ($viewpubliconly)) { next; } |
if ($newsfeed{$id.'_status'} eq 'hidden') { next; } |
if ($newsfeed{$id.'_status'} eq 'hidden') { next; } |
$r->print("\n<item>\n<title>".$newsfeed{$id.'_title'}."</title>\n<description>". |
$r->print("\n<item>\n<title>".$newsfeed{$id.'_title'}."</title>\n<description>". |
$newsfeed{$id.'_description'}."</description>\n<link>". |
$newsfeed{$id.'_description'}."</description>\n<link>"."http://".$ENV{'HTTP_HOST'}. |
$newsfeed{$id.'_link'}."</link>\n"); |
$newsfeed{$id.'_link'}."</link>\n"); |
if ($newsfeed{$id.'_enclosureurl'}) { |
if ($newsfeed{$id.'_enclosureurl'}) { |
$r->print("\n<enclosure url='".$newsfeed{$id.'_enclosureurl'}."' length='".$newsfeed{$id.'_enclosurelength'}. |
$r->print("\n<enclosure url='".$newsfeed{$id.'_enclosureurl'}."' length='".$newsfeed{$id.'_enclosurelength'}. |
"' type='".$newsfeed{$id.'_enclosuretype'}."' />"); |
"' type='".$newsfeed{$id.'_enclosuretype'}."' />"); |
} |
} |
$r->print("\n<guid>".$id.$filterfeedname.'_'.$udom.'_'.$uname."</guid></item>\n"); |
$r->print("\n<guid isPermaLink='false'>".$id.$filterfeedname.'_'.$udom.'_'.$uname."</guid></item>\n"); |
} |
} |
} |
} |
} |
} |