--- loncom/interface/lonannounce.pm 2003/05/21 19:15:41 1.10
+++ loncom/interface/lonannounce.pm 2003/07/10 10:27:04 1.16
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Announce
#
-# $Id: lonannounce.pm,v 1.10 2003/05/21 19:15:41 www Exp $
+# $Id: lonannounce.pm,v 1.16 2003/07/10 10:27:04 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -32,6 +32,10 @@ use strict;
use Apache::Constants qw(:common);
use Apache::loncommon;
use Apache::lonhtmlcommon();
+use HTML::Entities();
+
+my %todayhash;
+my %showedcheck;
sub editfield {
my ($r,$start,$end,$text)=@_;
@@ -72,24 +76,66 @@ sub emptycell {
}
sub normalcell {
- my ($day,$text)=@_;
+ my ($day,$month,$year,$text)=@_;
my $output='';
foreach (split(/\_\_\_\&\&\&\_\_\_/,$text)) {
if ($_) {
my ($courseid,$start,$end,@msg)=split(/\@/,$_);
my $msg=join('@',@msg);
- my $fullmsg=$ENV{'course.'.$courseid.'.description'}.': '.$msg;
+ my $fullmsg=$ENV{'course.'.$courseid.'.description'}.
+ ', '.localtime($start).' - '.localtime($end).': '.$msg;
if ($courseid eq $ENV{'request.course.id'}) {
- if (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) {
+ if ((&Apache::lonnet::allowed('srm',$ENV{'request.course.id'}))
+ && (!$showedcheck{$start.'_'.$end})) {
$output.='';
+ $showedcheck{$start.'_'.$end}=1;
}
}
+ $fullmsg=&HTML::Entities::encode($fullmsg,'<>&"\'');
+ $fullmsg=~s/&/\\&/g;
+ $output.=''.
+ substr($msg,0,20).'... ';
+ }
+ }
+ return '
'.$day.' '.$output.'
';
+}
+
+sub plaincell {
+ my ($text)=@_;
+ my $output='';
+ foreach (split(/\_\_\_\&\&\&\_\_\_/,$text)) {
+ if ($_) {
+ my ($courseid,$start,$end,@msg)=split(/\@/,$_);
+ my $msg=join('@',@msg);
+ my $fullmsg=$ENV{'course.'.$courseid.'.description'}.
+ ', '.localtime($start).' - '.localtime($end).': '.$msg;
+ $fullmsg=&HTML::Entities::encode($fullmsg,'<>&"\'');
+ $fullmsg=~s/&/\\&/g;
$output.=''.
- substr($msg,0,20).'... ';
+ substr($msg,0,40).'... ';
}
}
- return '
'.$day.' '.$output.'
';
+ return $output;
+}
+
+sub listcell {
+ my ($text)=@_;
+ my $output='';
+ foreach (split(/\_\_\_\&\&\&\_\_\_/,$text)) {
+ if ($_) {
+ my ($courseid,$start,$end,@msg)=split(/\@/,$_);
+ my $msg=join('@',@msg);
+ my $fullmsg=localtime($start).' to '.localtime($end).': '.
+ $msg.'';
+ $output.='
'.$fullmsg.'
';
+ }
+ }
+ return $output;
}
sub nextday {
@@ -99,7 +145,7 @@ sub nextday {
}
sub showday {
- my ($tk,%allcal)=@_;
+ my ($tk,$mode,%allcal)=@_;
my %th=&Apache::loncommon::timehash($tk);
my ($nextday,$nextmonth)=&nextday(%th);
my $outp='';
@@ -111,7 +157,18 @@ sub showday {
$allcal{$_};
}
}
- return ($nextday,$nextmonth,&normalcell($th{'day'},$outp));
+ unless ($mode) {
+ return ($nextday,$nextmonth,&normalcell(
+ $th{'day'},$th{'month'},$th{'year'},$outp));
+ } elsif ($outp) {
+ if ($mode==1) {
+ return ' '.&plaincell($outp);
+ } else {
+ return '
'.&listcell($outp).'
';
+ }
+ } else {
+ return '';
+ }
}
sub handler {
@@ -122,8 +179,10 @@ sub handler {
# ---------------------------------------------------------- Get time right now
my $today=time;
- my %todayhash=&Apache::loncommon::timehash($today);
-
+ %todayhash=&Apache::loncommon::timehash($today);
+# ----------------------------------------------------------------- Check marks
+ %showedcheck=();
+ undef %showedcheck;
# ---------------------------------------------------------- Get month and year
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
['month','year']);
@@ -214,11 +273,22 @@ ENDDOCUMENT
my ($pm,$py,$fm,$fy)=($month-1,$year,$month+1,$year);
if ($pm<1) { ($pm,$py)=(12,$year-1); }
if ($fm>12){ ($fm,$fy)=(1,$year+1); }
+
$r->print('