--- loncom/interface/lonannounce.pm 2002/07/24 20:25:23 1.1
+++ loncom/interface/lonannounce.pm 2002/09/11 15:01:43 1.7
@@ -1,20 +1,97 @@
# The LearningOnline Network
-# Printout
+# Announce
#
-# (Internal Server Error Handler
+# $Id: lonannounce.pm,v 1.7 2002/09/11 15:01:43 matthew Exp $
#
-# (Login Screen
-# 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14,
-# 1/14/00,5/29,5/30,6/1,6/29,7/1,11/9 Gerd Kortemeyer)
+# Copyright Michigan State University Board of Trustees
#
-# 3/1/1 Gerd Kortemeyer)
+# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
#
-# 3/1 Gerd Kortemeyer
+# LON-CAPA is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
#
-package Apache::lonprintout;
+# LON-CAPA is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LON-CAPA; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# /home/httpd/html/adm/gpl.txt
+#
+# http://www.lon-capa.org/
+#
+
+package Apache::lonannounce;
use strict;
use Apache::Constants qw(:common);
+use Apache::loncommon;
+
+sub readcalendar {
+ my $courseid=shift;
+ my $coursenum=$ENV{'course.'.$courseid.'.num'};
+ my $coursedom=$ENV{'course.'.$courseid.'.domain'};
+ my %thiscal=&Apache::lonnet::dump('calendar',$coursedom,$coursenum);
+ my %returnhash=();
+ foreach (keys %thiscal) {
+ unless (($_=~/^error\:/) || ($thiscal{$_}=~/^error\:/)) {
+ $returnhash{$courseid.'@'.$_}=$thiscal{$_};
+ }
+ }
+ return %returnhash;
+}
+
+sub emptycell {
+ return '
';
+}
+
+sub normalcell {
+ my ($day,$text)=@_;
+ my $output='';
+ foreach (split(/\_\_\_\&\&\&\_\_\_/,$text)) {
+ if ($_) {
+ my ($courseid,$start,$end,@msg)=split(/\@/,$_);
+ my $msg=join('@',@msg);
+ my $fullmsg=$ENV{'course.'.$courseid.'.description'}.': '.$msg;
+ if ($courseid eq $ENV{'request.course.id'}) {
+ if (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) {
+ $output.='';
+ }
+ }
+ $output.=''.
+ substr($msg,0,20).'... ';
+ }
+ }
+ return '
'.$day.' '.$output.'
';
+}
+
+sub nextday {
+ my %th=@_;
+ $th{'day'}++;
+ return (&Apache::loncommon::maketime(%th),$th{'month'});
+}
+
+sub showday {
+ my ($tk,%allcal)=@_;
+ my %th=&Apache::loncommon::timehash($tk);
+ my ($nextday,$nextmonth)=&nextday(%th);
+ my $outp='';
+ my $oneday=24*3600;
+ foreach (keys %allcal) {
+ my ($course,$startdate,$enddate)=($_=~/^(\w+)\@(\d+)\_(\d+)$/);
+ if (($startdate<$nextday) && ($enddate>$tk)) {
+ $outp.='___&&&___'.$course.'@'.$startdate.'@'.$enddate.'@'.
+ $allcal{$_};
+ }
+ }
+ return ($nextday,$nextmonth,&normalcell($th{'day'},$outp));
+}
sub handler {
my $r = shift;
@@ -22,18 +99,181 @@ sub handler {
$r->send_http_header;
return OK if $r->header_only;
-# --------------------------------------------------- Print login screen header
+# ---------------------------------------------------------- Get time right now
+ my $today=time;
+ my %todayhash=&Apache::loncommon::timehash($today);
+
+# ---------------------------------------------------------- Get month and year
+ &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
+ ['month','year']);
+# --------------------------------------------------- Decide what month to show
+ my $year=$todayhash{'year'};
+ if ($ENV{'form.year'}) { $year=$ENV{'form.year'}; }
+ my $month=$todayhash{'month'};
+ if ($ENV{'form.month'}) { $month=$ENV{'form.month'}; }
+# --------------------------------------------- Find out first day of the month
+
+ my %firstday=&Apache::loncommon::timehash(
+ &Apache::loncommon::maketime( 'day' => 1, 'month'=> $month,
+ 'year' => $year, 'hours' => 0,
+ 'minutes' => 0, 'seconds' => 0,
+ 'dlsav' => $todayhash{'dlsav'} ));
+ my $weekday=$firstday{'weekday'};
+# ------------------------------------------------------------ Print the screen
$r->print(<The LearningOnline Network with CAPA
+
-
-