'.
'';
if ($visible>2) {
@@ -677,7 +679,7 @@ ENDDISCUSS
($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) {
if ($outputtarget ne 'tex') {
$discussion.='';
}
@@ -2048,6 +2050,7 @@ sub redirect_back {
$sectag = '';
}
}
+ $feedurl=&Apache::lonenc::check_encrypt($feedurl);
$r->print (<
@@ -2085,9 +2088,10 @@ sub no_redirect_back {
ENDNOREDIR
if ($feedurl!~/^\/adm\/feedback/) {
- $r->print('');
+ $r->print('');
}
-
+ $feedurl=&Apache::lonenc::check_encrypt($feedurl);
$r->print (<
@@ -2185,8 +2189,6 @@ sub clear_out_html {
sub assemble_email {
my ($feedurl,$message,$prevattempts,$usersaw,$useranswer)=@_;
my $email=<<"ENDEMAIL";
-Refers to $feedurl
-
$message
ENDEMAIL
my $citations=<<"ENDCITE";
@@ -2338,6 +2340,7 @@ sub adddiscuss {
$contrib{'history'} = '';
my $numoldver = 0;
my ($oldsymb,$oldidx)=split(/\:\:\:/,$ENV{'form.editdisc'});
+ &Apache::lonenc::check_decrypt(\$oldsymb);
$oldsymb=~s|(bulletin___\d+___)adm/wrapper/|$1|;
# get timestamp for last post and history
my %oldcontrib=&Apache::lonnet::restore($oldsymb,$ENV{'request.course.id'},
@@ -2716,6 +2719,24 @@ sub construct_attachmenturl {
}
return $newattachmenturl;
}
+
+sub has_discussion {
+ my $resourcesref = shift;
+ my $navmap = Apache::lonnavmaps::navmap->new();
+ my @allres=$navmap->retrieveResources();
+ foreach my $resource (@allres) {
+ if ($resource->hasDiscussion()) {
+ my $ressymb;
+ if ($resource->symb() =~ m-(___adm/\w+/\w+)/(\d+)/bulletinboard$-) {
+ $ressymb = 'bulletin___'.$2.$1.'/'.$2.'/bulletinboard';
+ } else {
+ $ressymb = $resource->symb();
+ }
+ push @{$resourcesref}, $ressymb;
+ }
+ }
+ return;
+}
sub handler {
my $r = shift;
@@ -2728,7 +2749,7 @@ sub handler {
# --------------------------- Get query string for limited number of parameters
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
- ['hide','unhide','deldisc','postdata','preview','replydisc','editdisc','threadedon','threadedoff','onlyunread','allposts','onlyunmark','previous','markread','markonread','markondisp','toggoff','toggon','modifydisp','changes','navmaps','navurl','navtime','sortfilter','sortposts','applysort','rolefilter','statusfilter','sectionpick','posterlist','userpick','attach','origpage','currnewattach','deloldattach','keepold','allversions','export']);
+ ['hide','unhide','deldisc','postdata','preview','replydisc','editdisc','threadedon','threadedoff','onlyunread','allposts','onlyunmark','previous','markread','markonread','markondisp','toggoff','toggon','modifydisp','changes','navtime','navmaps','navurl','sortfilter','sortposts','applysort','rolefilter','statusfilter','sectionpick','posterlist','userpick','attach','origpage','currnewattach','deloldattach','keepold','allversions','export']);
if ($ENV{'form.discsymb'}) {
my $symb = $ENV{'form.discsymb'};
my $readkey = $symb.'_read';
@@ -2780,6 +2801,7 @@ END
my $seeid=&Apache::lonnet::allowed('rin',$crs);
my ($symb,$idx)=split(/\:\:\:/,$ENV{'form.allversions'});
my $ressymb=$symb;
+ &Apache::lonenc::check_decrypt(\$ressymb);
unless ($ressymb =~ m|bulletin___\d+___adm/wrapper|) {
$ressymb=~s|(bulletin___\d+___)|$1adm/wrapper|;
}
@@ -2821,6 +2843,7 @@ END
my $previous=$ENV{'form.previous'};
# backward compatibility (bulletin boards used to be 'wrapped')
my $ressymb=$symb;
+ &Apache::lonenc::check_decrypt(\$ressymb);
unless ($ressymb =~ m|bulletin___\d+___adm/wrapper|) {
$ressymb=~s|(bulletin___\d+___)|$1adm/wrapper|;
}
@@ -2875,13 +2898,17 @@ END
}
&print_sortfilter_options($r,$symb,$previous,$feedurl);
return OK;
- } elsif ($ENV{'form.navmaps'}) {
+ } elsif ($ENV{'form.navtime'}) {
my %discinfo = ();
my @resources = ();
- if ($ENV{'form.navmaps'} =~ /:/) {
- @resources = split/:/,$ENV{'form.navmaps'};
+ if (defined($ENV{'form.navmaps'})) {
+ if ($ENV{'form.navmaps'} =~ /:/) {
+ @resources = split/:/,$ENV{'form.navmaps'};
+ } else {
+ @resources = ("$ENV{'form.navmaps'}");
+ }
} else {
- @resources = ("$ENV{'form.navmaps'}");
+ &has_discussion(\@resources);
}
my $numitems = @resources;
my $feedurl = '/adm/navmaps';
@@ -2890,11 +2917,13 @@ END
}
my %lt = &Apache::lonlocal::texthash(
'mnpa' => 'Marked "New" posts as read in a total of',
- 'robb' => 'resources/bulletin boards.'
+ 'robb' => 'resources/bulletin boards.',
+ 'twnp' => 'There are currently no resources or bulletin boards with unread discussion postings.'
);
foreach (@resources) {
# backward compatibility (bulletin boards used to be 'wrapped')
my $ressymb=$_;
+ &Apache::lonenc::check_decrypt(\$ressymb);
if ($ressymb =~ m/bulletin___\d+___/) {
unless ($ressymb =~ m|bulletin___\d+___adm/wrapper|) {
$ressymb=~s|(bulletin___\d+___)|$1adm/wrapper/|;
@@ -2903,7 +2932,12 @@ END
my $lastkey = $ressymb.'_lastread';
$discinfo{$lastkey} = $ENV{'form.navtime'};
}
- &Apache::lonnet::put('nohist_'.$ENV{'request.course.id'}.'_discuss',\%discinfo,$ENV{'user.domain'},$ENV{'user.name'});
+ my $textline = "$lt{'mnpa'} $numitems $lt{'robb'}";
+ if ($numitems > 0) {
+ &Apache::lonnet::put('nohist_'.$ENV{'request.course.id'}.'_discuss',\%discinfo,$ENV{'user.domain'},$ENV{'user.name'});
+ } else {
+ $textline = "$lt{'twnp'}";
+ }
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
$r->print (<
-$lt{'mnpa'} $numitems $lt{'robb'}
+$textline
Continue
@@ -2947,6 +2981,7 @@ ENDREDIR
my $symb=$ENV{'form.toggoff'}?$ENV{'form.toggoff'}:$ENV{'form.toggon'};
my $ressymb = $symb;
($map,$ind,$url)=&Apache::lonnet::decode_symb($symb);
+ &Apache::lonenc::check_decrypt(\$ressymb);
unless ($ressymb =~ m|bulletin___\d+___adm/wrapper|) {
$ressymb=~s|(bulletin___\d+___)|$1adm/wrapper|;
}
@@ -2964,6 +2999,7 @@ ENDREDIR
my $symb=$ENV{'form.markondisp'}?$ENV{'form.markondisp'}:$ENV{'form.markonread'};
my $ressymb = $symb;
($map,$ind,$url)=&Apache::lonnet::decode_symb($symb);
+ &Apache::lonenc::check_decrypt(\$ressymb);
unless ($ressymb =~ m|bulletin___\d+___adm/wrapper|) {
$ressymb=~s|(bulletin___\d+___)|$1adm/wrapper|;
}
@@ -2993,6 +3029,7 @@ ENDREDIR
}
my $ressymb = $symb;
($map,$ind,$url)=&Apache::lonnet::decode_symb($symb);
+ &Apache::lonenc::check_decrypt(\$ressymb);
unless ($ressymb =~ m|bulletin___\d+___adm/wrapper|) {
$ressymb=~s|(bulletin___\d+___)|$1adm/wrapper|;
}
@@ -3020,6 +3057,7 @@ ENDREDIR
my $symb=$ENV{'form.markread'};
my $ressymb = $symb;
my ($map,$ind,$url)=&Apache::lonnet::decode_symb($symb);
+ &Apache::lonenc::check_decrypt(\$ressymb);
unless ($ressymb =~ m|bulletin___\d+___adm/wrapper|) {
$ressymb=~s|(bulletin___\d+___)|$1adm/wrapper|;
}
@@ -3202,6 +3240,7 @@ ENDREDIR
$feedurl=&Apache::lonnet::clutter($url);
}
}
+ &Apache::lonenc::check_decrypt(\$symb);
my $goahead=1;
if ($feedurl=~/\.(problem|exam|quiz|assess|survey|form)$/) {
unless ($symb) { $goahead=0; }
@@ -3259,6 +3298,7 @@ ENDREDIR
} elsif ($ENV{'form.origpage'}) {
$symb = $ENV{'form.symb'};
}
+ &Apache::lonenc::check_decrypt(\$symb);
my @currnewattach = ();
my @deloldattach = ();
my @keepold = ();
|