--- loncom/interface/lonannounce.pm 2005/11/22 16:16:53 1.38
+++ loncom/interface/lonannounce.pm 2006/04/22 16:32:55 1.49
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Announce
#
-# $Id: lonannounce.pm,v 1.38 2005/11/22 16:16:53 albertel Exp $
+# $Id: lonannounce.pm,v 1.49 2006/04/22 16:32:55 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -33,6 +33,7 @@ use Apache::Constants qw(:common);
use Apache::loncommon;
use Apache::lonhtmlcommon();
use Apache::lonlocal;
+use Apache::lonnavmaps();
use Apache::lonrss();
use Apache::lonnet;
use HTML::Entities();
@@ -63,7 +64,7 @@ $help
$lt{'end'}:
$enddateform
-
+
ENDFORM
}
@@ -74,12 +75,15 @@ sub readcalendar {
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{$_};
+ foreach my $item (keys(%thiscal)) {
+ unless (($item=~/^error\:/) || ($thiscal{$item}=~/^error\:/)) {
+ $returnhash{$courseid.'@'.$item}=$thiscal{$item};
}
}
+
if ($courseid eq $env{'request.course.id'}) {
+ my $can_see_hidden = $env{'request.role.adv'};
+ my $navmap = Apache::lonnavmaps::navmap->new();
my %resourcedata=
&Apache::lonnet::dump('resourcedata',$coursedom,$coursenum);
foreach my $thiskey (sort keys %resourcedata) {
@@ -101,8 +105,23 @@ sub readcalendar {
$middle=~s/\.$//;
my $realm=&mt('All Resources');
if ($middle=~/^(.+)\_\_\_\(all\)$/) {
- $realm=&mt('Folder/Map').': '.&Apache::lonnet::gettitle($1);
+ my $map_url=$1;
+ if (!$can_see_hidden && !$navmap) {
+ next;
+ }
+ if (!$can_see_hidden) {
+ my $res = $navmap->getResourceByUrl($map_url);
+ if ($res && $res->randomout()) { next; }
+ }
+ $realm=&mt('Folder/Map').': '.&Apache::lonnet::gettitle($map_url);
} elsif ($middle) {
+ if (!$can_see_hidden && !$navmap) {
+ next;
+ }
+ if (!$can_see_hidden) {
+ my $res = $navmap->getBySymb($middle);
+ if ($res && $res->randomout()) { next; }
+ }
$realm=&mt('Resource').': '.&Apache::lonnet::gettitle($middle);
}
my $datetype='';
@@ -136,17 +155,17 @@ sub readcalendar {
}
sub emptycell {
- return '
';
+ return '
';
}
sub normalcell {
my ($day,$month,$year,$text)=@_;
my $output='';
- foreach (split(/\_\_\_\&\&\&\_\_\_/,$text)) {
- if ($_) {
+ my @items=&order($text);
+ foreach my $item (@items) {
+ if ($item) {
my $internalflag=0;
- my ($courseid,$start,$end,@msg)=split(/\@/,$_);
- my $msg=join('@',@msg);
+ my ($courseid,$start,$end,$msg)=split(/\@/,$item,4);
if ($msg=~/INTERNAL\:/) {
$msg=~s/INTERNAL\://gs;
$internalflag=1;
@@ -174,20 +193,20 @@ sub normalcell {
substr($msg,0,20).'... ';
}
}
- return '