version 1.125, 2004/09/13 12:49:42
|
version 1.129, 2004/11/11 22:19:53
|
Line 36 use Apache::loncommon();
|
Line 36 use Apache::loncommon();
|
use Apache::lontexconvert(); |
use Apache::lontexconvert(); |
use Apache::lonlocal; # must not have () |
use Apache::lonlocal; # must not have () |
use Apache::lonhtmlcommon(); |
use Apache::lonhtmlcommon(); |
|
use Apache::lonnavmaps; |
use HTML::LCParser(); |
use HTML::LCParser(); |
use Apache::lonspeller(); |
use Apache::lonspeller(); |
use Cwd; |
use Cwd; |
Line 98 sub list_discussion {
|
Line 99 sub list_discussion {
|
$ressymb=~s|(bulletin___\d+___)|$1adm/wrapper|; |
$ressymb=~s|(bulletin___\d+___)|$1adm/wrapper|; |
} |
} |
} |
} |
|
$ressymb=&Apache::lonenc::check_encrypt($ressymb); |
# Get discussion display settings for this discussion |
# Get discussion display settings for this discussion |
my $lastkey = $ressymb.'_lastread'; |
my $lastkey = $ressymb.'_lastread'; |
my $showkey = $ressymb.'_showonlyunread'; |
my $showkey = $ressymb.'_showonlyunread'; |
Line 165 sub list_discussion {
|
Line 166 sub list_discussion {
|
} |
} |
|
|
# Get discussion display default settings for user |
# Get discussion display default settings for user |
my %userenv = &Apache::lonnet::get('environment',['discdisplay','discmarkread'],$ENV{'user.domain'},$ENV{'user.name'}); |
if ($ENV{'environment.discdisplay'} eq 'unread') { |
my $discdisplay=$userenv{'discdisplay'}; |
|
if ($discdisplay eq 'unread') { |
|
$showonlyunread = 1; |
$showonlyunread = 1; |
} |
} |
my $discmarkread=$userenv{'discmarkread'}; |
if ($ENV{'environment.discmarkread'} eq 'ondisp') { |
if ($discmarkread eq 'ondisp') { |
|
$markondisp = 1; |
$markondisp = 1; |
} |
} |
|
|
Line 362 imscp_v1p1.xsd http://www.imsglobal.org/
|
Line 360 imscp_v1p1.xsd http://www.imsglobal.org/
|
} |
} |
</script> |
</script> |
|; |
|; |
$discussion.='<form name="readchoices" method="post" action="/adm/feedback?chgreads='.$symb.'"><table bgcolor="#AAAAAA" cellpadding="2" cellspacing="2" border="0">'; |
$discussion.='<form name="readchoices" method="post" action="/adm/feedback?chgreads='.$ressymb.'"><table bgcolor="#AAAAAA" cellpadding="2" cellspacing="2" border="0">'; |
$discussion .='<tr><td bgcolor="#DDDDBB" colspan="'.$colspan.'">'. |
$discussion .='<tr><td bgcolor="#DDDDBB" colspan="'.$colspan.'">'. |
'<table border="0" width="100%" bgcolor="#DDDDBB"><tr>'; |
'<table border="0" width="100%" bgcolor="#DDDDBB"><tr>'; |
if ($visible>2) { |
if ($visible>2) { |
Line 680 ENDDISCUSS
|
Line 678 ENDDISCUSS
|
($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) { |
($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) { |
if ($outputtarget ne 'tex') { |
if ($outputtarget ne 'tex') { |
$discussion.='<table bgcolor="#BBBBBB"><tr><td><a href="/adm/feedback?replydisc='. |
$discussion.='<table bgcolor="#BBBBBB"><tr><td><a href="/adm/feedback?replydisc='. |
$symb.':::" '.$target.'>'. |
$ressymb.':::" '.$target.'>'. |
'<img src="/adm/lonMisc/chat.gif" border="0" />'. |
'<img src="/adm/lonMisc/chat.gif" border="0" />'. |
&mt('Post Discussion').'</a></td></tr></table>'; |
&mt('Post Discussion').'</a></td></tr></table>'; |
} |
} |
Line 1054 sub get_post_contents {
|
Line 1052 sub get_post_contents {
|
return $discussion; |
return $discussion; |
} |
} |
} |
} |
$$screenname=&Apache::loncommon::screenname( |
# $$screenname=&Apache::loncommon::screenname( |
$$contrib{$idx.':sendername'}, |
# $$contrib{$idx.':sendername'}, |
$$contrib{$idx.':senderdomain'}); |
# $$contrib{$idx.':senderdomain'}); |
$$plainname=&Apache::loncommon::nickname( |
# $$plainname=&Apache::loncommon::nickname( |
$$contrib{$idx.':sendername'}, |
# $$contrib{$idx.':sendername'}, |
$$contrib{$idx.':senderdomain'}); |
# $$contrib{$idx.':senderdomain'}); |
|
($$screenname,$$plainname)=($$contrib{$idx.':screenname'}, |
|
$$contrib{$idx.':plainname'}); |
my $sender=&Apache::loncommon::aboutmewrapper( |
my $sender=&Apache::loncommon::aboutmewrapper( |
$$plainname, |
$$plainname, |
$$contrib{$idx.':sendername'}, |
$$contrib{$idx.':sendername'}, |
Line 2049 sub redirect_back {
|
Line 2049 sub redirect_back {
|
$sectag = '<input type="hidden" name="sectionpick" value="'.$secpick.'" />'; |
$sectag = '<input type="hidden" name="sectionpick" value="'.$secpick.'" />'; |
} |
} |
} |
} |
|
$feedurl=&Apache::lonenc::check_encrypt($feedurl); |
$r->print (<<ENDREDIR); |
$r->print (<<ENDREDIR); |
<html> |
<html> |
<head> |
<head> |
Line 2086 sub no_redirect_back {
|
Line 2087 sub no_redirect_back {
|
ENDNOREDIR |
ENDNOREDIR |
|
|
if ($feedurl!~/^\/adm\/feedback/) { |
if ($feedurl!~/^\/adm\/feedback/) { |
$r->print('<meta HTTP-EQUIV="Refresh" CONTENT="2; url='.$feedurl.'">'); |
$r->print('<meta HTTP-EQUIV="Refresh" CONTENT="2; url='. |
|
&Apache::lonenc::check_encrypt($feedurl).'">'); |
} |
} |
|
$feedurl=&Apache::lonenc::check_encrypt($feedurl); |
$r->print (<<ENDNOREDIRTWO); |
$r->print (<<ENDNOREDIRTWO); |
</head> |
</head> |
<body bgcolor="#FFFFFF" onLoad='if (window.name!="loncapaclient") { self.close(); }'> |
<body bgcolor="#FFFFFF" onLoad='if (window.name!="loncapaclient") { self.close(); }'> |
Line 2717 sub construct_attachmenturl {
|
Line 2719 sub construct_attachmenturl {
|
} |
} |
return $newattachmenturl; |
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 { |
sub handler { |
my $r = shift; |
my $r = shift; |
Line 2729 sub handler {
|
Line 2749 sub handler {
|
# --------------------------- Get query string for limited number of parameters |
# --------------------------- Get query string for limited number of parameters |
|
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&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','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'}) { |
if ($ENV{'form.discsymb'}) { |
my $symb = $ENV{'form.discsymb'}; |
my $symb = $ENV{'form.discsymb'}; |
my $readkey = $symb.'_read'; |
my $readkey = $symb.'_read'; |
Line 2876 END
|
Line 2896 END
|
} |
} |
&print_sortfilter_options($r,$symb,$previous,$feedurl); |
&print_sortfilter_options($r,$symb,$previous,$feedurl); |
return OK; |
return OK; |
} elsif ($ENV{'form.navmaps'}) { |
} elsif ($ENV{'form.navtime'}) { |
my %discinfo = (); |
my %discinfo = (); |
my @resources = (); |
my @resources = (); |
if ($ENV{'form.navmaps'} =~ /:/) { |
if (defined($ENV{'form.navmaps'})) { |
@resources = split/:/,$ENV{'form.navmaps'}; |
if ($ENV{'form.navmaps'} =~ /:/) { |
|
@resources = split/:/,$ENV{'form.navmaps'}; |
|
} else { |
|
@resources = ("$ENV{'form.navmaps'}"); |
|
} |
} else { |
} else { |
@resources = ("$ENV{'form.navmaps'}"); |
&has_discussion(\@resources); |
} |
} |
my $numitems = @resources; |
my $numitems = @resources; |
my $feedurl = '/adm/navmaps'; |
my $feedurl = '/adm/navmaps'; |
Line 2891 END
|
Line 2915 END
|
} |
} |
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
'mnpa' => 'Marked "New" posts as read in a total of', |
'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) { |
foreach (@resources) { |
# backward compatibility (bulletin boards used to be 'wrapped') |
# backward compatibility (bulletin boards used to be 'wrapped') |
Line 2902 END
|
Line 2927 END
|
} |
} |
} |
} |
my $lastkey = $ressymb.'_lastread'; |
my $lastkey = $ressymb.'_lastread'; |
$discinfo{$lastkey} = time; |
$discinfo{$lastkey} = $ENV{'form.navtime'}; |
|
} |
|
my $textline = "<b>$lt{'mnpa'} $numitems $lt{'robb'}</b>"; |
|
if ($numitems > 0) { |
|
&Apache::lonnet::put('nohist_'.$ENV{'request.course.id'}.'_discuss',\%discinfo,$ENV{'user.domain'},$ENV{'user.name'}); |
|
} else { |
|
$textline = "<b>$lt{'twnp'}</b>"; |
} |
} |
&Apache::lonnet::put('nohist_'.$ENV{'request.course.id'}.'_discuss',\%discinfo,$ENV{'user.domain'},$ENV{'user.name'}); |
|
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_http_header; |
$r->send_http_header; |
$r->print (<<ENDREDIR); |
$r->print (<<ENDREDIR); |
Line 2916 END
|
Line 2946 END
|
</head> |
</head> |
<body bgcolor="#FFFFFF" onLoad='if (window.name!="loncapaclient") { this.document.reldt.submit(); self.close(); }'> |
<body bgcolor="#FFFFFF" onLoad='if (window.name!="loncapaclient") { this.document.reldt.submit(); self.close(); }'> |
<img align="right" src="/adm/lonIcons/lonlogos.gif" /> |
<img align="right" src="/adm/lonIcons/lonlogos.gif" /> |
<b>$lt{'mnpa'} $numitems $lt{'robb'}</b> |
$textline |
<form name="reldt" action="$feedurl" target="loncapaclient"> |
<form name="reldt" action="$feedurl" target="loncapaclient"> |
</form> |
</form> |
<br /><a href="$feedurl">Continue</a> |
<br /><a href="$feedurl">Continue</a> |