version 1.372, 2016/03/23 02:19:09
|
version 1.378, 2017/12/18 23:20:48
|
Line 44 use HTML::LCParser();
|
Line 44 use HTML::LCParser();
|
#use HTML::Tidy::libXML; |
#use HTML::Tidy::libXML; |
use Apache::lonspeller(); |
use Apache::lonspeller(); |
use Apache::longroup; |
use Apache::longroup; |
use Cwd; |
use Archive::Zip qw( :ERROR_CODES ); |
use LONCAPA; |
use LONCAPA qw(:DEFAULT :match); |
|
|
sub discussion_open { |
sub discussion_open { |
my ($status,$symb)=@_; |
my ($status,$symb)=@_; |
Line 674 END
|
Line 674 END
|
$newpostsflag,$group, |
$newpostsflag,$group, |
$prevread,$markondisp,$seehidden); |
$prevread,$markondisp,$seehidden); |
$discussion .= "</table></form>\n"; |
$discussion .= "</table></form>\n"; |
} |
} |
if ($outputtarget eq 'export') { |
if ($outputtarget eq 'export') { |
if ($manifestok) { |
if ($manifestok) { |
while ($currdepth > 0) { |
while ($currdepth > 0) { |
Line 696 END
|
Line 696 END
|
|
|
#Create zip file in prtspool |
#Create zip file in prtspool |
|
|
my $imszipfile = '/prtspool/'. |
if (($env{'user.name'} =~ /^$match_username$/) |
$env{'user.name'}.'_'.$env{'user.domain'}.'_'. |
&& ($env{'user.domain'} =~ /^$match_domain$/)) { |
time.'_'.rand(1000000000).'.zip'; |
my $now = time(); |
my $cwd = &getcwd(); |
my $imszipfile = '/prtspool/'. |
my $imszip = '/home/httpd/'.$imszipfile; |
join('_',$env{'user.name'},$env{'user.domain'},$now). |
chdir $tempexport; |
'_'.rand(1000000000).'.zip'; |
open(OUTPUT, "zip -r $imszip * 2> /dev/null |"); |
my $zip = Archive::Zip->new(); |
close(OUTPUT); |
$zip->addTree($tempexport); |
chdir $cwd; |
my $imszip = '/home/httpd/'.$imszipfile; |
$discussion .= &mt('Download the zip file from [_1]Discussion Posting Archive[_2]', |
if ($zip->writeToFileNamed($imszip) == AZ_OK) { |
|
$discussion .= &mt('Download the zip file from [_1]Discussion Posting Archive[_2]', |
'<a href="'.$imszipfile.'">','</a>').'<br />'; |
'<a href="'.$imszipfile.'">','</a>').'<br />'; |
if ($copyresult) { |
} else { |
$discussion .= '<span class="LC_error">'. |
$discussion .= &mt('Failed to create zip file').'<br />'; |
&mt('The following errors occurred during export:'). |
} |
'</span><br />'.$copyresult; |
if ($copyresult) { |
|
$discussion .= '<span class="LC_error">'. |
|
&mt('The following errors occurred during export:'). |
|
'</span><br />'.$copyresult; |
|
} |
|
} else { |
|
$discussion .= '<p class="LC_error">'. |
|
&mt('Unfortunately you will not be able to retrieve an archive of the discussion posts at this time, because there was a problem creating the zip file.').'</p>'; |
} |
} |
} |
} |
} else { |
} else { |
Line 847 sub send_feedback_link {
|
Line 855 sub send_feedback_link {
|
&discussion_link($ressymb, |
&discussion_link($ressymb, |
'<img alt="" class="LC_noBorder" src="'. |
'<img alt="" class="LC_noBorder" src="'. |
&Apache::loncommon::lonhttpdurl('/adm/lonMisc/chat.gif'). |
&Apache::loncommon::lonhttpdurl('/adm/lonMisc/chat.gif'). |
'" border="0" /><span class="LC_menubuttons_inline_text">'.&mt('Post Discussion').'</span>', |
'" /><span class="LC_menubuttons_inline_text">'.&mt('Post Discussion').'</span>', |
'replydisc'). |
'replydisc'). |
'</span>'; |
'</span>'; |
} |
} |
Line 858 sub send_message_link {
|
Line 866 sub send_message_link {
|
&discussion_link($ressymb, |
&discussion_link($ressymb, |
'<img alt="" class="LC_noBorder" src="'. |
'<img alt="" class="LC_noBorder" src="'. |
&Apache::loncommon::lonhttpdurl('/res/adm/pages/feedback.png'). |
&Apache::loncommon::lonhttpdurl('/res/adm/pages/feedback.png'). |
'" border="0" /><span class="LC_menubuttons_inline_text">'.&mt('Send Feedback').'</span>', |
'" /><span class="LC_menubuttons_inline_text">'.&mt('Send Feedback').'</span>', |
'sendmessageonly'). |
'sendmessageonly'). |
'</span>'; |
'</span>'; |
return $output; |
return $output; |
Line 1290 sub build_posting_display {
|
Line 1298 sub build_posting_display {
|
if (&editing_allowed($escsymb.':::'.$idx,$group)) { |
if (&editing_allowed($escsymb.':::'.$idx,$group)) { |
if (($env{'user.domain'} eq $contrib{$idx.':senderdomain'}) && ($env{'user.name'} eq $contrib{$idx.':sendername'})) { |
if (($env{'user.domain'} eq $contrib{$idx.':senderdomain'}) && ($env{'user.name'} eq $contrib{$idx.':sendername'})) { |
$sender.=' '. |
$sender.=' '. |
&discussion_link($symb,&mt('Edit'),'editdisc',$idx,$$newpostsflag,$prevread,&group_args($group)); |
&discussion_link($ressymb,&mt('Edit'),'editdisc',$idx,$$newpostsflag,$prevread,&group_args($group)); |
unless ($seehidden) { |
unless ($seehidden) { |
my $grpargs = &group_args($group); |
my $grpargs = &group_args($group); |
$sender.=" <a href=\"javascript:verifydelete('studentdelete','$escsymb','$idx','$$newpostsflag','$prevread','$grpargs')"; |
$sender.=" <a href=\"javascript:verifydelete('studentdelete','$escsymb','$idx','$$newpostsflag','$prevread','$grpargs')"; |
Line 1302 sub build_posting_display {
|
Line 1310 sub build_posting_display {
|
if ($hiddens{$idx}) { |
if ($hiddens{$idx}) { |
unless ($studenthidden) { |
unless ($studenthidden) { |
$sender.=' '. |
$sender.=' '. |
&discussion_link($symb,&mt('Make Visible'),'unhide',$idx,$$newpostsflag,$prevread,&group_args($group)); |
&discussion_link($ressymb,&mt('Make Visible'),'unhide',$idx,$$newpostsflag,$prevread,&group_args($group)); |
} |
} |
} else { |
} else { |
$sender.=' '. |
$sender.=' '. |
&discussion_link($symb,&mt('Hide'),'hide',$idx,$$newpostsflag,$prevread,&group_args($group)); |
&discussion_link($ressymb,&mt('Hide'),'hide',$idx,$$newpostsflag,$prevread,&group_args($group)); |
} |
} |
my $grpargs = &group_args($group); |
my $grpargs = &group_args($group); |
$sender.= |
$sender.= |
Line 1345 sub build_posting_display {
|
Line 1353 sub build_posting_display {
|
if (($group ne '') && |
if (($group ne '') && |
(&check_group_priv($group,'pgd') eq 'ok')) { |
(&check_group_priv($group,'pgd') eq 'ok')) { |
$sender.=' '. |
$sender.=' '. |
&discussion_link($symb,&mt('Reply'),'replydisc',$idx,$$newpostsflag,$prevread,&group_args($group)); |
&discussion_link($ressymb,&mt('Reply'),'replydisc',$idx,$$newpostsflag,$prevread,&group_args($group)); |
} elsif (&Apache::lonnet::allowed('pch', |
} elsif (&Apache::lonnet::allowed('pch', |
$env{'request.course.id'}. |
$env{'request.course.id'}. |
($env{'request.course.sec'}?'/'. |
($env{'request.course.sec'}?'/'. |
$env{'request.course.sec'}:''))) { |
$env{'request.course.sec'}:''))) { |
$sender.=' '. |
$sender.=' '. |
&discussion_link($symb,&mt('Reply'),'replydisc',$idx,$$newpostsflag,$prevread); |
&discussion_link($ressymb,&mt('Reply'),'replydisc',$idx,$$newpostsflag,$prevread); |
} |
} |
} |
} |
if ($viewgrades) { |
if ($viewgrades) { |
Line 1518 sub build_posting_display {
|
Line 1526 sub build_posting_display {
|
if ($userlikes{$idx}) { |
if ($userlikes{$idx}) { |
$$discussionitems[$idx].='<img border="0" src="/res/adm/pages/thumbsup_gray.png" alt="'.&mt('You like this posting').'" />'; |
$$discussionitems[$idx].='<img border="0" src="/res/adm/pages/thumbsup_gray.png" alt="'.&mt('You like this posting').'" />'; |
} else { |
} else { |
$$discussionitems[$idx].=' '.&discussion_link($symb,'<img border="0" src="/res/adm/pages/thumbsup.png" alt="'.&mt('Like').'" />','like',$idx,$$newpostsflag,$prevread,&group_args($group),&mt("Like this posting")); |
$$discussionitems[$idx].=' '.&discussion_link($ressymb,'<img border="0" src="/res/adm/pages/thumbsup.png" alt="'.&mt('Like').'" />','like',$idx,$$newpostsflag,$prevread,&group_args($group),&mt("Like this posting")); |
} |
} |
if ($userunlikes{$idx}) { |
if ($userunlikes{$idx}) { |
$$discussionitems[$idx].='<img border="0" src="/res/adm/pages/thumbsdown_gray.png" alt="'.&mt('You unlike this posting').'" />'; |
$$discussionitems[$idx].='<img border="0" src="/res/adm/pages/thumbsdown_gray.png" alt="'.&mt('You unlike this posting').'" />'; |
} else { |
} else { |
$$discussionitems[$idx].=' '.&discussion_link($symb,'<img border="0" src="/res/adm/pages/thumbsdown.png" alt="'.&mt('Unlike').'" />','unlike',$idx,$$newpostsflag,$prevread,&group_args($group),&mt("Unlike this posting")); |
$$discussionitems[$idx].=' '.&discussion_link($ressymb,'<img border="0" src="/res/adm/pages/thumbsdown.png" alt="'.&mt('Unlike').'" />','unlike',$idx,$$newpostsflag,$prevread,&group_args($group),&mt("Unlike this posting")); |
} |
} |
} |
} |
} |
} |
Line 1541 sub build_posting_display {
|
Line 1549 sub build_posting_display {
|
$$discussionitems[$idx] .= ' '.&mt('This post has been edited by the author.'); |
$$discussionitems[$idx] .= ' '.&mt('This post has been edited by the author.'); |
if ($seehidden) { |
if ($seehidden) { |
$$discussionitems[$idx] .= ' '. |
$$discussionitems[$idx] .= ' '. |
&discussion_link($symb,&mt('Display all versions'),'allversions',$idx,$$newpostsflag,$prevread,&group_args($group)); |
&discussion_link($ressymb,&mt('Display all versions'),'allversions',$idx,$$newpostsflag,$prevread,&group_args($group)); |
} |
} |
$$discussionitems[$idx].='<br/>'.&mt('Earlier version(s) were posted on: '); |
$$discussionitems[$idx].='<br/>'.&mt('Earlier version(s) were posted on: '); |
if ($contrib{$idx.':history'} =~ m/:/) { |
if ($contrib{$idx.':history'} =~ m/:/) { |
Line 4544 ENDREDIR
|
Line 4552 ENDREDIR
|
($env{'request.course.id'} && ($feedurl!~m:^/adm:)) |
($env{'request.course.id'} && ($feedurl!~m:^/adm:)) |
|| |
|| |
($env{'request.course.id'} && ($symb=~/^bulletin\_\_\_/)) |
($env{'request.course.id'} && ($symb=~/^bulletin\_\_\_/)) |
|
|| |
|
(($env{'request.course.id'} && ($feedurl =~ /ext\.tool$/))) |
) { |
) { |
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_http_header; |
$r->send_http_header; |