version 1.15, 2006/04/13 17:57:17
|
version 1.17, 2006/04/22 20:58:32
|
Line 36 use Apache::lontexconvert;
|
Line 36 use Apache::lontexconvert;
|
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::lonhtmlcommon; |
use Apache::lonhtmlcommon; |
|
|
my $feedcounter; |
|
|
|
sub filterfeedname { |
sub filterfeedname { |
my $filename=shift; |
my $filename=shift; |
Line 106 sub rss_link {
|
Line 105 sub rss_link {
|
return qq|<link rel="alternate" type="application/rss+xml" title="Course Announcements" href="$url" />|; |
return qq|<link rel="alternate" type="application/rss+xml" title="Course Announcements" href="$url" />|; |
} |
} |
|
|
|
{ |
|
my $feedcounter; |
|
sub get_new_feed_id { |
|
$feedcounter++; |
|
return time().'00000'.$$.'00000'.$feedcounter; |
|
} |
|
} |
|
|
sub addentry { |
sub addentry { |
$feedcounter++; |
my $id=&get_new_feed_id(); |
my $id=time.'00000'.$$.'00000'.$feedcounter; |
|
return &editentry($id,@_); |
return &editentry($id,@_); |
} |
} |
|
|
sub editentry { |
sub editentry { |
my ($id,$uname,$udom,$filename,$title,$description,$url,$status,$encurl,$enclength,$enctype)=@_; |
my ($id,$uname,$udom,$filename,$title,$description,$url,$status,$encurl,$enctype)=@_; |
if ($status eq 'deleted') { |
if ($status eq 'deleted') { |
return &changestatus($id,$uname,$udom,$filename,$status); |
return &changestatus($id,$uname,$udom,$filename,$status); |
} |
} |
Line 126 sub editentry {
|
Line 132 sub editentry {
|
$id.'_description' => $description, |
$id.'_description' => $description, |
$id.'_link' => $url, |
$id.'_link' => $url, |
$id.'_enclosureurl' => $encurl, |
$id.'_enclosureurl' => $encurl, |
$id.'_enclosurelength' => $enclength, |
|
$id.'_enclosuretype' => $enctype, |
$id.'_enclosuretype' => $enctype, |
$id.'_status' => $status},$udom,$uname); |
$id.'_status' => $status},$udom,$uname); |
} |
} |
Line 139 sub changestatus {
|
Line 144 sub changestatus {
|
$id.'_description', |
$id.'_description', |
$id.'_link', |
$id.'_link', |
$id.'_enclosureurl', |
$id.'_enclosureurl', |
$id.'_enclosurelength', |
|
$id.'_enclosuretype', |
$id.'_enclosuretype', |
$id.'_status'],$udom,$uname); |
$id.'_status'],$udom,$uname); |
} else { |
} else { |
Line 157 sub changed_js {
|
Line 161 sub changed_js {
|
ENDSCRIPT |
ENDSCRIPT |
} |
} |
|
|
|
sub determine_enclosure_types { |
|
my ($url)=@_; |
|
my ($ending)=($url=~/\.(\w+)$/); |
|
return &Apache::loncommon::filemimetype($ending); |
|
} |
|
|
sub handler { |
sub handler { |
my ($r) = @_; |
my ($r) = @_; |
|
|
Line 213 sub handler {
|
Line 223 sub handler {
|
} |
} |
} |
} |
} |
} |
$feedcounter++; |
my $newid = &get_new_feed_id(); |
my $newid=time.'00000'.$$.'00000'.$feedcounter; |
|
# Is this user for real? |
# Is this user for real? |
my $homeserver=&Apache::lonnet::homeserver($uname,$udom); |
my $homeserver=&Apache::lonnet::homeserver($uname,$udom); |
if ($html) { |
if ($html) { |
Line 284 ENDEDIT
|
Line 293 ENDEDIT
|
"http://".$ENV{'HTTP_HOST'}. |
"http://".$ENV{'HTTP_HOST'}. |
$newsfeed{$id.'_link'}. |
$newsfeed{$id.'_link'}. |
($html?("'>".&mt('Read more')."</a><br />\n"):"</link>\n")); |
($html?("'>".&mt('Read more')."</a><br />\n"):"</link>\n")); |
|
# Enclosure? Get stats |
if ($newsfeed{$id.'_enclosureurl'}) { |
if ($newsfeed{$id.'_enclosureurl'}) { |
$r->print(($html?"<a href='":"\n<enclosure url='"). |
my @stat=&Apache::lonnet::stat_file($newsfeed{$id.'_enclosureurl'}); |
$newsfeed{$id.'_enclosureurl'}."' length='".$newsfeed{$id.'_enclosurelength'}. |
if ($stat[7]) { |
"' type='".$newsfeed{$id.'_enclosuretype'}.($html?"'>".&mt('Enclosure')."</a>":"' />")); |
# Has non-zero length (and exists) |
|
my $enclosuretype=$newsfeed{$id.'_enclosetype'}; |
|
$r->print(($html?"<a href='":"\n<enclosure url='"). |
|
$newsfeed{$id.'_enclosureurl'}."' length='".$stat[7]. |
|
"' type='".$enclosuretype.($html?"'>".&mt('Enclosure')."</a>":"' />")); |
|
} |
} |
} |
if ($html) { |
if ($html) { |
$r->print("\n<hr /></li>\n"); |
$r->print("\n<hr /></li>\n"); |