version 1.2, 2004/03/09 16:34:34
|
version 1.3, 2004/03/16 19:20:58
|
Line 114 sub handler {
|
Line 114 sub handler {
|
$r->send_http_header; |
$r->send_http_header; |
return OK if $r->header_only; |
return OK if $r->header_only; |
|
|
my @areas = ("doc","extlink","announce","staff","board","quiz","survey","pool","users"); |
my @areas = (); |
my %cmsmap = (); |
my %cmsmap = (); |
%{$cmsmap{bb5}} = ( |
my %areaname = (); |
announce => 'resource/x-bb-announcement', |
&Apache::imsprocessor::ims_config(\@areas,\%cmsmap,\%areaname); |
board => 'resource/x-bb-discussionboard', |
|
doc => 'resource/x-bb-document', |
|
extlink => 'resource/x-bb-externallink', |
|
pool => 'assessment/x-bb-pool', |
|
quiz => 'assessment/x-bb-quiz', |
|
staff => 'resource/x-bb-staffinfo', |
|
survey => 'assessment/x-bb-survey', |
|
users => 'course/x-bb-user', |
|
); |
|
|
|
%{$cmsmap{angel}} = ( |
|
board => 'BOARD', |
|
extlink => 'LINK', |
|
msg => 'MESSAGE', |
|
quiz => 'QUIZ', |
|
survey => 'FORM', |
|
); |
|
|
|
@{$cmsmap{angel}{doc}} = ('FILE','PAGE'); |
|
|
|
# get course data |
# get course data |
my $coursenum=$ENV{'course.'.$ENV{'request.course.id'}.'.num'}; |
my $coursenum=$ENV{'course.'.$ENV{'request.course.id'}.'.num'}; |
Line 187 ENDHEAD
|
Line 168 ENDHEAD
|
if ($ENV{'form.phase'} eq 'one') { |
if ($ENV{'form.phase'} eq 'one') { |
&display_one($r); |
&display_one($r); |
} elsif ($ENV{'form.phase'} eq 'two') { |
} elsif ($ENV{'form.phase'} eq 'two') { |
&display_two($r,$coursenum,\@areas,%cmsmap); |
&display_two($r,$coursenum,\@areas,\%areaname,%cmsmap); |
} elsif ($ENV{'form.phase'} eq 'three') { |
} elsif ($ENV{'form.phase'} eq 'three') { |
&display_three($r,$coursenum,$coursedom,$coursehome,$uname,$udom,\@areas,%cmsmap); |
&display_three($r,$coursenum,$coursedom,$coursehome,$uname,$udom,\@areas,%cmsmap); |
} |
} |
Line 195 ENDHEAD
|
Line 176 ENDHEAD
|
return OK; |
return OK; |
} |
} |
|
|
sub uploadzip { |
|
my $tempdir = shift; |
|
my $fname=$ENV{'form.uploadname.filename'}; |
|
# Replace Windows backslashes by forward slashes |
|
$fname=~s/\\/\//g; |
|
# Get rid of everything but the actual filename |
|
$fname=~s/^.*\/([^\/]+)$/$1/; |
|
# Replace spaces by underscores |
|
$fname=~s/\s+/\_/g; |
|
# Replace all other weird characters by nothing |
|
$fname=~s/[^\w\.\-]//g; |
|
# See if there is anything left |
|
unless ($fname) { return 'error: no uploaded file'; } |
|
|
|
# Save the file |
|
chomp($ENV{'form.uploadname'}); |
|
open(my $fh,'>'.$tempdir.'/'.$fname); |
|
print $fh $ENV{'form.uploadname'}; |
|
close($fh); |
|
return $fname; |
|
} |
|
|
|
sub display_one { |
sub display_one { |
my ($r) = @_; |
my ($r) = @_; |
Line 313 ENDBLOCK
|
Line 273 ENDBLOCK
|
|
|
|
|
sub display_two { |
sub display_two { |
my ($r,$crs,$areasref,%cmsmap) = @_; |
my ($r,$crs,$areasref,$areaname,%cmsmap) = @_; |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['folder','source']); |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['folder','source']); |
my $cms = $ENV{'form.source'}; |
my $cms = $ENV{'form.source'}; |
my $timenow = time; |
my $timenow = time; |
my $tempdir = &Apache::imsprocessor::create_tempdir('DOCS',$crs,$timenow); |
my $tempdir = &Apache::imsprocessor::create_tempdir('DOCS',$crs,$timenow); |
my $fname = &uploadzip($tempdir); |
my $fname = &Apache::imsprocessor::uploadzip('DOCS',$tempdir); |
my $unzip_result = ''; |
my $unzip_result = ''; |
my $manifest_result = ''; |
my $manifest_result = ''; |
unless ($tempdir eq '') { |
unless ($tempdir eq '') { |
Line 346 sub display_two {
|
Line 306 sub display_two {
|
users => 0, |
users => 0, |
); |
); |
|
|
my %areaname = ( |
|
announce => 'Announcements', |
|
board => 'Discussion Boards', |
|
doc => 'Documents, pages & folders', |
|
extlink => 'Links to external sites', |
|
pool => 'Question pools', |
|
quiz => 'Quizzes', |
|
staff => 'Staff information', |
|
survey => 'Surveys', |
|
users => 'Enrollment', |
|
); |
|
|
|
if ($unzip_result eq 'ok') { |
if ($unzip_result eq 'ok') { |
$manifest_result = &Apache::imsprocessor::process_manifest($cms,$tempdir,\%resources,\%items,\%hrefs,\%resinfo); |
$manifest_result = &Apache::imsprocessor::process_manifest($cms,$tempdir,\%resources,\%items,\%hrefs,\%resinfo); |
if ($manifest_result eq 'ok') { |
if ($manifest_result eq 'ok') { |
Line 425 ENDBLOCK
|
Line 373 ENDBLOCK
|
$r->print(qq|onClick='javascript:setOptions("$area","$counter")'|); |
$r->print(qq|onClick='javascript:setOptions("$area","$counter")'|); |
} |
} |
$r->print("/></font></td> |
$r->print("/></font></td> |
<td align='left'><font face='arial,helvetica,sans-serif'> $areaname{$area} - $count{$area} item(s)</font></td>"); |
<td align='left'><font face='arial,helvetica,sans-serif'> $$areaname{$area} - $count{$area} item(s)</font></td>"); |
if ($area eq 'board') { |
if ($area eq 'board') { |
$r->print(" <td align='left'><font face='arial,helvetica,sans-serif'> |
$r->print(" <td align='left'><font face='arial,helvetica,sans-serif'> |
<select name='db_handling'> |
<select name='db_handling'> |
Line 607 sub display_three {
|
Line 555 sub display_three {
|
|
|
&Apache::imsprocessor::process_resinfo($cms,$tempdir,$destdir,\%items,\%resources,\@boards,\@announcements,\@quizzes,\@surveys,\@groups,\%messages,\@timestamp,\%boardnum,\%resinfo,$udom,$uname,$cdom,$crs,$db_handling,$user_handling,\%total,$dirname,$seqstem,\@resrcfiles); |
&Apache::imsprocessor::process_resinfo($cms,$tempdir,$destdir,\%items,\%resources,\@boards,\@announcements,\@quizzes,\@surveys,\@groups,\%messages,\@timestamp,\%boardnum,\%resinfo,$udom,$uname,$cdom,$crs,$db_handling,$user_handling,\%total,$dirname,$seqstem,\@resrcfiles); |
|
|
&Apache::imsprocessor::build_structure($cms,'DOCS',$destdir,\%resinfo,\%items,\%resources,\%hrefs,$udom,$uname,'',$timenow,$cdom,$crs,\@timestamp,\%total,\@boards,\@announcements,\@quizzes,\@surveys,\%boardnum,\@pages,\@sequences,\@topurls,\@topnames); |
&Apache::imsprocessor::build_structure($cms,'DOCS',$destdir,\%items,\%resinfo,\%resources,\%hrefs,$udom,$uname,'',$timenow,$cdom,$crs,\@timestamp,\%total,\@boards,\@announcements,\@quizzes,\@surveys,\%boardnum,\@pages,\@sequences,\@topurls,\@topnames); |
|
|
foreach my $item (@pages) { |
foreach my $item (@pages) { |
my $path = $timenow.'/pages/'; |
my $filename = $timenow.'/pages/'.$item; |
©_items($item,$path,$cdom,$chome,$crs); |
my $fetchresult= &Apache::lonnet::process_coursefile('propagate',$crs,$cdom,$chome,$filename,''); |
} |
} |
foreach my $item (@sequences) { |
foreach my $item (@sequences) { |
unless ($item eq 'Top.sequence' && $toplevel eq 'oldfolder') { |
unless ($item eq 'Top.sequence' && $toplevel eq 'oldfolder') { |
my $path = $timenow.'/sequences/'; |
my $filename = $timenow.'/sequences/'.$item; |
©_items($item,$path,$cdom,$chome,$crs); |
my $fetchresult= &Apache::lonnet::process_coursefile('propagate',$crs,$cdom,$chome,$filename,''); |
} |
} |
} |
} |
foreach my $item (@resrcfiles) { |
foreach my $item (@resrcfiles) { |
my $path = $timenow.'/resfiles/'; |
my $filename = $timenow.'/resfiles/'.$item; |
©_items($item,$path,$cdom,$chome,$crs); |
my $fetchresult= &Apache::lonnet::process_coursefile('propagate',$crs,$cdom,$chome,$filename,''); |
} |
} |
|
|
my @imports = (); |
my @imports = (); |
Line 648 sub display_three {
|
Line 596 sub display_three {
|
print STDERR "Fatal error during group_import\n"; |
print STDERR "Fatal error during group_import\n"; |
} |
} |
} |
} |
|
if ($tempdir =~ m/^\/home\/httpd\/perl\/tmp\/$crs\/\d{10}/) { |
|
system("rm -r -f $tempdir"); |
|
} |
$r->print(<<ENDBLOCK); |
$r->print(<<ENDBLOCK); |
<table border='0' bgcolor='#F6F6F6'' cellspacing='0' cellpadding ='0' width='100%'> |
<table border='0' bgcolor='#F6F6F6'' cellspacing='0' cellpadding ='0' width='100%'> |
<tr> |
<tr> |
Line 691 ENDBLOCK
|
Line 642 ENDBLOCK
|
ENDBLOCKTWO |
ENDBLOCKTWO |
} |
} |
|
|
sub copy_items { |
|
my ($filename,$fpath,$cdom,$chome,$crs) = @_; |
|
my $fetchresult= &Apache::lonnet::reply('fetchuserfile:'.$cdom.'/'.$crs.'/'.$filename.':'.$fpath,$chome); |
|
} |
|
|
|
1; |
1; |
__END__ |
__END__ |