]+)>)//g;
$discussionitems[$alldiscussion{$post}]='\vskip 0 mm\noindent\makebox[2 cm][b]{\hrulefill}'.$discussionitems[$alldiscussion{$post}];
@@ -530,11 +531,11 @@ imscp_v1p1.xsd http://www.imsglobal.org/
print $manifestfile "\n".
'- '.
- ''.$imsitems{$alldiscussion{$post}}{'title'}.'';
+ ''.$imsitems{$alldiscussion{$post}}{'title'}.'
';
$imsresources .= "\n".
''."\n".
''."\n".
- $imsfiles{$alldiscussion{$post}}{$imsitems{$alldiscussion{$post}}{'currversion'}}."\n".
+ $imsfiles{$alldiscussion{$post}}{$imsitems{$alldiscussion{$post}}{'currversion'}}.''."\n".
'';
}
my $postingfile;
@@ -638,8 +639,9 @@ END
if ($filterchoice) {
$discussion .= ''.&mt('Filters').': '.$filterchoice;
}
- $discussion .= '';
}
+ $discussion .= '';
+
}
if ($dischash{$toggkey}) {
my $storebutton = &mt('Save read/unread changes');
@@ -720,9 +722,10 @@ END
$attachnum += @{$currnewattach};
}
}
- if (&discussion_open($status)) {
+ if ((&discussion_open($status)) && ($outputtarget ne 'tex')) {
if (($group ne '') && ($mode eq 'board')) {
- if (&check_group_priv($group,'pgd') eq 'ok') {
+ if ((&check_group_priv($group,'pgd') eq 'ok') &&
+ ($ressymb =~ m{^bulletin___\d+___adm/wrapper/adm/\Q$cdom\E/\Q$cnum\E/\d+/bulletinboard$})) {
$discussion .=
&postingform_display($mode,$ressymb,$now,$subject,
$comment,$outputtarget,$attachnum,
@@ -730,39 +733,64 @@ END
$group,$crstype);
}
} else {
- $discussion.=
- &postingform_display($mode,$ressymb,$now,$subject,
- $comment,$outputtarget,$attachnum,
- $currnewattach,$currdelold,'',$crstype);
+ if (&Apache::lonnet::allowed('pch',$env{'request.course.id'}.
+ ($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:''))) {
+
+ $discussion.=
+ &postingform_display($mode,$ressymb,$now,$subject,
+ $comment,$outputtarget,$attachnum,
+ $currnewattach,$currdelold,'',$crstype);
+ } else {
+ $discussion.= ''.
+ &mt('This discussion is closed.').'';
+ }
}
}
- } else {
+ if (!(&discussion_open($status)) && ($outputtarget ne 'tex')) {
+ $discussion.= ''.
+ &mt('This discussion is closed.').'';
+ }
+ } elsif ($outputtarget ne 'tex') {
$discussion.='';
if (&discussion_open($status) &&
&Apache::lonnet::allowed('pch',
$env{'request.course.id'}.
($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:''))) {
- if ($outputtarget ne 'tex') {
- $discussion.= &send_feedback_link($ressymb,$target);
+ $discussion.= &send_feedback_link($ressymb);
+ if ($env{'request.role.adv'}) {
+ my $close = &Apache::lonnet::EXT('resource.0.discussend',$ressymb);
+ if (defined($close) && $close ne '' && $close < time) {
+ $discussion .= ' '.&mt('(Closed for [_1] roles)',
+ &Apache::lonnet::plaintext('st',$crstype));
+ }
}
- }
- if ($outputtarget ne 'tex') {
- $discussion.= &send_message_link($ressymb);
+ } else {
+ $discussion.= ''.&mt('This discussion is closed.').'';
}
- $discussion.='
';
+ $discussion.= &send_message_link($ressymb).'';
}
return $discussion;
}
+
+sub discussion_link {
+ my ($ressymb,$linktext,$cmd,$item,$flag,$prev,$adds)=@_;
+ my $link='/adm/feedback?inhibitmenu=yes&modal=yes&'.$cmd.'='.&escape($ressymb).':::'.$item;
+ if ($flag) { $link .= '&previous='.$prev; }
+ if ($adds) { $link .= $adds; }
+ return &Apache::loncommon::modal_link($link,$linktext,600,600);
+}
+
+
sub send_feedback_link {
- my ($ressymb,$target) = @_;
- my $output = ''.
- ' '.
- '
';
- return $output;
+ my ($ressymb) = @_;
+ return ''.
+ &discussion_link($ressymb,
+ '
',
+ 'replydisc').
+ '';
}
sub send_message_link {
@@ -770,7 +798,7 @@ sub send_message_link {
my $output = ''.
'
';
return $output;
}
@@ -781,7 +809,7 @@ sub action_links_bar {
'