--- loncom/interface/lonannounce.pm 2006/11/29 07:46:39 1.62
+++ loncom/interface/lonannounce.pm 2007/03/02 23:17:58 1.66
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Announce
#
-# $Id: lonannounce.pm,v 1.62 2006/11/29 07:46:39 raeburn Exp $
+# $Id: lonannounce.pm,v 1.66 2007/03/02 23:17:58 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -37,6 +37,7 @@ use Apache::lonnavmaps();
use Apache::lonrss();
use Apache::lonnet;
use HTML::Entities();
+use LONCAPA qw(:match);
my %todayhash;
my %showedcheck;
@@ -77,7 +78,8 @@ sub readcalendar {
my %returnhash=();
foreach my $item (keys(%thiscal)) {
unless (($item=~/^error\:/) || ($thiscal{$item}=~/^error\:/)) {
- $returnhash{$courseid.'@'.$item}=$thiscal{$item};
+ my ($start,$end)=split('_',$item);
+ $returnhash{join("\0",$courseid,$start,$end)}=$thiscal{$item};
}
}
my $can_see_hidden = ($env{'request.role.adv'} &&
@@ -88,11 +90,11 @@ sub readcalendar {
$navmap = Apache::lonnavmaps::navmap->new();
}
my %resourcedata=
- &Apache::lonnet::dump('resourcedata',$coursedom,$coursenum);
+ &Apache::lonnet::get_courseresdata($coursenum,$coursedom);
foreach my $thiskey (sort keys %resourcedata) {
if ($resourcedata{$thiskey.'.type'}=~/^date/) {
my ($course,$middle,$part,$name)=
- ($thiskey=~/^(\w+)\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/);
+ ($thiskey=~/^($match_courseid)\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/);
my %data = ( 'section' => &mt('All Students'));
if ($middle=~/^\[(.*)\]\./) {
my $sec=$1;
@@ -160,8 +162,9 @@ sub readcalendar {
}
$data{'datetype'}=&mt('Answer Available');
}
- $returnhash{$courseid.'@'.$resourcedata{$thiskey}.'_'.
- $resourcedata{$thiskey}}=\%data;
+ $returnhash{join("\0",$courseid,
+ $resourcedata{$thiskey},
+ $resourcedata{$thiskey})}=\%data;
}
}
return %returnhash;
@@ -309,9 +312,9 @@ sub showday {
$nextday+=$oneday;
}
foreach my $item (keys(%allcal)) {
- my ($course,$startdate,$enddate)=($item=~/^(\w+)\@(\d+)\_(\d+)$/);
- if (($startdate<$nextday) && ($enddate>=$tk)) {
- push(@outp,[$course,$startdate,$enddate,$allcal{$item}]);
+ my ($courseid,$startdate,$enddate)= split("\0",$item);
+ if (($startdate<$nextday) && ($enddate>=$tk)) {
+ push(@outp,[$courseid,$startdate,$enddate,$allcal{$item}]);
}
}
unless ($mode) {
@@ -375,7 +378,7 @@ sub output_ics_file {
$r->print("PRODID:-//LONCAPA//LONCAPA Calendar Output//EN$crlf");
my %allcal=&get_all_calendars();
foreach my $event (keys(%allcal)) {
- my ($courseid,$startdate,$enddate)=($event=~/^(\w+)\@(\d+)\_(\d+)$/);
+ my ($courseid,$startdate,$enddate)= split('\0',$event);
my $uid=$event;
$uid=~s/[\W\_]/-/gs;
$uid.='@loncapa';
@@ -494,11 +497,12 @@ Post announcements to the system login a
Check machines:
SERVERANNOUNCE
# list servers
- foreach my $host (sort(keys(%Apache::lonnet::hostname))) {
+ my %hostname = &Apache::lonnet::all_hostnames();
+ foreach my $host (sort(keys(%hostname))) {
if (&Apache::lonnet::allowed('psa',$Apache::lonnet::hostdom{$host})) {
$r->print ('
current');
}
}