version 1.13, 2004/12/23 18:38:45
|
version 1.14, 2005/02/14 22:46:12
|
Line 141 sub expand_zip {
|
Line 141 sub expand_zip {
|
} |
} |
|
|
sub process_manifest { |
sub process_manifest { |
my ($cms,$tempdir,$resources,$items,$hrefs,$resinfo) = @_; |
my ($cms,$tempdir,$resources,$items,$hrefs,$resinfo,$phase,$includedres,$includeditems) = @_; |
my %toc = ( |
my %toc = ( |
bb6 => 'organization', |
bb6 => 'organization', |
bb5 => 'tableofcontents', |
bb5 => 'tableofcontents', |
Line 165 sub process_manifest {
|
Line 165 sub process_manifest {
|
$$resources{'toplevel'}{type} = "FOLDER"; |
$$resources{'toplevel'}{type} = "FOLDER"; |
} elsif ($cms eq 'bb5' || $cms eq 'bb6') { |
} elsif ($cms eq 'bb5' || $cms eq 'bb6') { |
$$resources{'toplevel'}{type} = 'resource/x-bb-document'; |
$$resources{'toplevel'}{type} = 'resource/x-bb-document'; |
|
} else { |
|
$$resources{'toplevel'}{type} = 'webcontent'; |
} |
} |
|
|
unless (-e "$tempdir/imsmanifest.xml") { |
unless (-e "$tempdir/imsmanifest.xml") { |
Line 192 sub process_manifest {
|
Line 194 sub process_manifest {
|
$num --; |
$num --; |
} |
} |
if (("@state" eq $searchstr) && (@state > 3)) { |
if (("@state" eq $searchstr) && (@state > 3)) { |
$itm = $attr->{identifier}; |
$itm = $attr->{identifier}; |
%{$$items{$itm}} = (); |
if ($$includeditems{$itm} || $phase ne 'build') { |
$$items{$itm}{contentscount} = 0; |
%{$$items{$itm}} = (); |
if ($cms eq 'bb5' || $cms eq 'bb6') { |
$$items{$itm}{contentscount} = 0; |
$$items{$itm}{resnum} = $attr->{identifierref}; |
if ($cms eq 'bb5' || $cms eq 'bb6') { |
if ($cms eq 'bb5') { |
$$items{$itm}{resnum} = $attr->{identifierref}; |
$$items{$itm}{title} = $attr->{title}; |
if ($cms eq 'bb5') { |
} |
$$items{$itm}{title} = $attr->{title}; |
} elsif ($cms eq 'angel') { |
} |
if ($attr->{identifierref} =~ m/^res(.+)$/) { |
} elsif ($cms eq 'angel') { |
$$items{$itm}{resnum} = $1; |
if ($attr->{identifierref} =~ m/^res(.+)$/) { |
} |
$$items{$itm}{resnum} = $1; |
} |
|
unless (defined(%{$$resources{$$items{$itm}{resnum}}}) ) { |
|
%{$$resources{$$items{$itm}{resnum}}} = (); |
|
} |
|
$$resources{$$items{$itm}{resnum}}{revitm} = $itm; |
|
|
|
if ($start > @seq) { |
|
unless ($lastitem eq '') { |
|
push @seq, $lastitem; |
|
unless ( defined($contents{$seq[-1]}) ) { |
|
@{$contents{$seq[-1]}} = (); |
|
} |
} |
push @{$contents{$seq[-1]}},$itm; |
|
$$items{$itm}{parentseq} = $seq[-1]; |
|
} |
} |
} |
unless (defined(%{$$resources{$$items{$itm}{resnum}}}) ) { |
elsif ($start < @seq) { |
%{$$resources{$$items{$itm}{resnum}}} = (); |
my $diff = @seq - $start; |
|
while ($diff > 0) { |
|
pop @seq; |
|
$diff --; |
|
} |
} |
if (@seq) { |
$$resources{$$items{$itm}{resnum}}{revitm} = $itm; |
|
if ($start > @seq) { |
|
unless ($lastitem eq '') { |
|
push @seq, $lastitem; |
|
unless ( defined($contents{$seq[-1]}) ) { |
|
@{$contents{$seq[-1]}} = (); |
|
} |
|
push @{$contents{$seq[-1]}},$itm; |
|
$$items{$itm}{parentseq} = $seq[-1]; |
|
} |
|
} elsif ($start < @seq) { |
|
my $diff = @seq - $start; |
|
while ($diff > 0) { |
|
pop @seq; |
|
$diff --; |
|
} |
|
if (@seq) { |
|
push @{$contents{$seq[-1]}}, $itm; |
|
} |
|
} else { |
push @{$contents{$seq[-1]}}, $itm; |
push @{$contents{$seq[-1]}}, $itm; |
} |
} |
} else { |
my $path; |
push @{$contents{$seq[-1]}}, $itm; |
if (@seq > 1) { |
} |
$path = join(',',@seq); |
my $path; |
} elsif (@seq > 0) { |
if (@seq > 1) { |
$path = $seq[0]; |
$path = join(',',@seq); |
|
} elsif (@seq > 0) { |
|
$path = $seq[0]; |
|
} |
|
$$items{$itm}{filepath} = $path; |
|
if ($cms eq 'bb5' || $cms eq 'bb6') { |
|
if ($$items{$itm}{filepath} eq 'Top') { |
|
$$items{$itm}{resnum} = $itm; |
|
$$resources{$$items{$itm}{resnum}}{type} = 'resource/x-bb-document'; |
|
$$resources{$$items{$itm}{resnum}}{revitm} = $itm; |
|
$$resinfo{$$items{$itm}{resnum}}{'isfolder'} = 'true'; |
|
} |
} |
|
$$items{$itm}{filepath} = $path; |
|
if ($cms eq 'bb5' || $cms eq 'bb6') { |
|
if ($$items{$itm}{filepath} eq 'Top') { |
|
$$items{$itm}{resnum} = $itm; |
|
$$resources{$$items{$itm}{resnum}}{type} = 'resource/x-bb-document'; |
|
$$resources{$$items{$itm}{resnum}}{revitm} = $itm; |
|
$$resinfo{$$items{$itm}{resnum}}{'isfolder'} = 'true'; |
|
} |
|
} |
|
$$items{$seq[-1]}{contentscount} ++; |
|
$lastitem = $itm; |
} |
} |
$$items{$seq[-1]}{contentscount} ++; |
|
$lastitem = $itm; |
|
} |
} |
} elsif ("@state" eq "manifest resources resource" ) { |
} elsif ("@state" eq "manifest resources resource" ) { |
$identifier = $attr->{identifier}; |
$identifier = $attr->{identifier}; |
if ($cms eq 'bb5' || $cms eq 'bb6') { |
if ($$includedres{$identifier} || $phase ne 'build') { |
$$resources{$identifier}{file} = $attr->{file}; |
if ($cms eq 'bb5' || $cms eq 'bb6') { |
$$resources{$identifier}{type} = $attr->{type}; |
$$resources{$identifier}{file} = $attr->{file}; |
} elsif ($cms eq 'angel') { |
$$resources{$identifier}{type} = $attr->{type}; |
$identifier = substr($identifier,3); |
} elsif ($cms eq 'angel') { |
if ($attr->{href} =~ m-^_assoc/$identifier/(.+)$-) { |
$identifier = substr($identifier,3); |
$$resources{$identifier}{file} = $1; |
if ($attr->{href} =~ m-^_assoc/$identifier/(.+)$-) { |
|
$$resources{$identifier}{file} = $1; |
|
} |
} |
} |
|
@{$$hrefs{$identifier}} = (); |
} |
} |
@{$$hrefs{$identifier}} = (); |
|
} elsif ("@state" eq "manifest resources resource file") { |
} elsif ("@state" eq "manifest resources resource file") { |
if ($cms eq 'bb5' || $cms eq 'bb6') { |
if ($$includedres{$identifier} || $phase ne 'build') { |
push @{$$hrefs{$identifier}},$attr->{href}; |
if ($cms eq 'bb5' || $cms eq 'bb6') { |
} elsif ($cms eq 'angel') { |
push @{$$hrefs{$identifier}},$attr->{href}; |
if ($attr->{href} =~ m/^_assoc\\$identifier\\(.+)$/) { |
} elsif ($cms eq 'angel') { |
push @{$$hrefs{$identifier}},$1; |
if ($attr->{href} =~ m/^_assoc\\$identifier\\(.+)$/) { |
} elsif ($attr->{href} =~ m/^Icons\\icon(\w+)\.gif/) { |
push @{$$hrefs{$identifier}},$1; |
$$resources{$identifier}{type} = $1; |
} elsif ($attr->{href} =~ m/^Icons\\icon(\w+)\.gif/) { |
|
$$resources{$identifier}{type} = $1; |
|
} |
} |
} |
} |
} |
} |
} |
Line 278 sub process_manifest {
|
Line 284 sub process_manifest {
|
[sub { |
[sub { |
my ($text) = @_; |
my ($text) = @_; |
if ($state[0] eq "manifest" && $state[1] eq "organizations" && $state[2] eq $toc{$cms} && $state[-1] eq "title") { |
if ($state[0] eq "manifest" && $state[1] eq "organizations" && $state[2] eq $toc{$cms} && $state[-1] eq "title") { |
if ($cms eq 'angel' || $cms eq 'bb6') { |
if ($$includeditems{$itm} || $phase ne 'build') { |
$$items{$itm}{title} = $text; |
if ($cms eq 'angel' || $cms eq 'bb6') { |
|
$$items{$itm}{title} = $text; |
|
} |
} |
} |
} |
} |
}, "dtext"], |
}, "dtext"], |
Line 298 sub process_manifest {
|
Line 306 sub process_manifest {
|
return 'ok' ; |
return 'ok' ; |
} |
} |
|
|
|
sub get_imports { |
|
my ($includeditems,$items,$resources,$importareas,$itm) = @_; |
|
if (exists($$items{$itm}{resnum})) { |
|
if ($$importareas{$$resources{$$items{$itm}{resnum}}{type}}) { |
|
unless (exists($$includeditems{$itm})) { |
|
$$includeditems{$itm} = 1; |
|
} |
|
} |
|
} |
|
if ($$items{$itm}{contentscount} > 0) { |
|
foreach my $child (@{$$items{$itm}{contents}}) { |
|
&get_imports($includeditems,$items,$resources,$importareas,$child); |
|
} |
|
} |
|
} |
|
|
|
sub get_parents { |
|
my ($includeditems,$items,$itm) = @_; |
|
my @pathitems = (); |
|
if ($$items{$itm}{filepath} =~ m/,/) { |
|
@pathitems = split/,/,$$items{$itm}{filepath}; |
|
} else { |
|
$pathitems[0] = $$items{$itm}{filepath}; |
|
} |
|
foreach (@pathitems) { |
|
$$includeditems{$_} = 1; |
|
} |
|
} |
|
|
sub target_resources { |
sub target_resources { |
my ($resources,$oktypes,$targets) = @_; |
my ($resources,$oktypes,$targets) = @_; |
foreach my $key (keys %{$resources}) { |
foreach my $key (keys %{$resources}) { |
Line 334 sub copy_resources {
|
Line 371 sub copy_resources {
|
mkdir("$destdir/resfiles",0770); |
mkdir("$destdir/resfiles",0770); |
} |
} |
foreach my $key (sort keys %{$hrefs}) { |
foreach my $key (sort keys %{$hrefs}) { |
foreach my $file (@{$$hrefs{$key}}) { |
if (grep/^$key$/,@{$targets}) { |
$file =~ s-\\-/-g; |
foreach my $file (@{$$hrefs{$key}}) { |
if ( ($cms eq 'angel' && $file ne 'pg'.$key.'.htm') || ($cms eq 'bb5') || ($cms eq 'bb6') ) { |
$file =~ s-\\-/-g; |
if (!-e "$destdir/resfiles/$key") { |
if ( ($cms eq 'angel' && $file ne 'pg'.$key.'.htm') || ($cms eq 'bb5') || ($cms eq 'bb6') ) { |
mkdir("$destdir/resfiles/$key",0770); |
if (!-e "$destdir/resfiles/$key") { |
} |
mkdir("$destdir/resfiles/$key",0770); |
|
} |
my $filepath = $file; |
|
my $front = ''; |
my $filepath = $file; |
while ($filepath =~ m-(\w+)/(.+)-) { |
my $front = ''; |
$front .= $1.'/'; |
while ($filepath =~ m-(\w+)/(.+)-) { |
$filepath = $2; |
$front .= $1.'/'; |
my $fulldir = "$destdir/resfiles/$key/$front"; |
$filepath = $2; |
chop($fulldir); |
my $fulldir = "$destdir/resfiles/$key/$front"; |
if (!-e "$fulldir") { |
chop($fulldir); |
mkdir("$fulldir",0770); |
if (!-e "$fulldir") { |
|
mkdir("$fulldir",0770); |
|
} |
|
} |
|
if ($cms eq 'angel') { |
|
rename("$tempdir/_assoc/$key/$file","$destdir/resfiles/$key/$file"); |
|
} elsif ($cms eq 'bb5' || $cms eq 'bb6') { |
|
rename("$tempdir/$key/$file","$destdir/resfiles/$key/$file"); |
} |
} |
} |
|
if ($cms eq 'angel') { |
|
rename("$tempdir/_assoc/$key/$file","$destdir/resfiles/$key/$file"); |
|
} elsif ($cms eq 'bb5' || $cms eq 'bb6') { |
|
rename("$tempdir/$key/$file","$destdir/resfiles/$key/$file"); |
|
} |
} |
} |
} |
} |
} |
Line 363 sub copy_resources {
|
Line 402 sub copy_resources {
|
} |
} |
} |
} |
|
|
sub process_coursefile { |
|
my ($crs,$cdom,$chome,$file,$source)=@_; |
|
my $fetchresult = ''; |
|
my $fpath = ''; |
|
my $fname = $file; |
|
($fpath,$fname) = ($file =~ m/^(.*)\/([^\/])$/); |
|
$fpath=$cdom.'/'.$crs.'/'.$fpath; |
|
my $filepath=$Apache::lonnet::perlvar{'lonDocRoot'}.'/userfiles'; |
|
unless ($fpath eq '') { |
|
my @parts=split(/\//,$fpath); |
|
foreach my $part (@parts) { |
|
$filepath.= '/'.$part; |
|
if ((-e $filepath)!=1) { |
|
mkdir($filepath,0777); |
|
} |
|
} |
|
} |
|
if ($source eq '') { |
|
$fetchresult eq 'no source file provided'; |
|
} else { |
|
my $destination = $filepath.'/'.$fname; |
|
rename($source,$destination); |
|
$fetchresult= &Apache::lonnet::reply('fetchuserfile:'.$cdom.'/'.$crs.'/'.$file,$chome); |
|
unless ($fetchresult eq 'ok') { |
|
&Apache::lonnet::logthis('Failed to transfer '.$cdom.'/'.$crs.'/'.$fname.' to host '.$chome.': '.$fetchresult); |
|
} |
|
} |
|
return $fetchresult; |
|
} |
|
|
|
sub process_resinfo { |
sub process_resinfo { |
my ($cms,$context,$docroot,$destdir,$items,$resources,$boards,$announcements,$quizzes,$surveys,$groups,$messages,$timestamp,$boardnum,$resinfo,$udom,$uname,$cdom,$crs,$db_handling,$user_handling,$total,$dirname,$seqstem,$resrcfiles,$packages,$hrefs,$pagesfiles,$sequencesfiles) = @_; |
my ($cms,$context,$docroot,$destdir,$items,$resources,$targets,$boards,$announcements,$quizzes,$surveys,$pools,$groups,$messages,$timestamp,$boardnum,$resinfo,$udom,$uname,$cdom,$crs,$db_handling,$user_handling,$total,$dirname,$seqstem,$resrcfiles,$packages,$hrefs,$pagesfiles,$sequencesfiles) = @_; |
my $board_id = time; |
my $board_id = time; |
my $board_count = 0; |
my $board_count = 0; |
my $announce_handling = 'include'; |
my $announce_handling = 'include'; |
Line 402 sub process_resinfo {
|
Line 411 sub process_resinfo {
|
if ($crs =~ m/^(\d)(\d)(\d)/) { |
if ($crs =~ m/^(\d)(\d)(\d)/) { |
$longcrs = $1.'/'.$2.'/'.$3.'/'.$crs; |
$longcrs = $1.'/'.$2.'/'.$3.'/'.$crs; |
} |
} |
|
if ($context eq 'CSTR') { |
|
if (!-e "$destdir/resfiles") { |
|
mkdir("$destdir/resfiles",0770); |
|
} |
|
} |
if ($cms eq 'angel') { |
if ($cms eq 'angel') { |
my $currboard = ''; |
my $currboard = ''; |
foreach my $key (sort keys %{$resources}) { |
foreach my $key (sort keys %{$resources}) { |
|
if (grep/^$key$/,@{$targets}) { |
if ($$resources{$key}{type} eq "BOARD") { |
if ($$resources{$key}{type} eq "BOARD") { |
push @{$boards}, $key; |
push @{$boards}, $key; |
$$boardnum{$$resources{$key}{revitm}} = $board_count; |
$$boardnum{$$resources{$key}{revitm}} = $board_count; |
Line 429 sub process_resinfo {
|
Line 444 sub process_resinfo {
|
} elsif ($$resources{$key}{type} eq "DROPBOX") { |
} elsif ($$resources{$key}{type} eq "DROPBOX") { |
%{$$resinfo{$key}} = (); |
%{$$resinfo{$key}} = (); |
} |
} |
|
} |
} |
} |
} elsif ($cms eq 'bb5' || $cms eq 'bb6') { |
} elsif ($cms eq 'bb5' || $cms eq 'bb6') { |
foreach my $key (sort keys %{$resources}) { |
foreach my $key (sort keys %{$resources}) { |
|
if (grep/^$key$/,@{$targets}) { |
if ($$resources{$key}{type} eq "resource/x-bb-document") { |
if ($$resources{$key}{type} eq "resource/x-bb-document") { |
unless ($$items{$$resources{$key}{revitm}}{filepath} eq 'Top') { |
unless ($$items{$$resources{$key}{revitm}}{filepath} eq 'Top') { |
%{$$resinfo{$key}} = (); |
%{$$resinfo{$key}} = (); |
Line 455 sub process_resinfo {
|
Line 472 sub process_resinfo {
|
} elsif ($$resources{$key}{type} eq "assessment/x-bb-pool") { |
} elsif ($$resources{$key}{type} eq "assessment/x-bb-pool") { |
%{$$resinfo{$key}} = (); |
%{$$resinfo{$key}} = (); |
&process_assessment($context,$key,$docroot,'pool',$dirname,$destdir,\%{$$resinfo{$key}},$total,$udom,$uname,$pagesfiles,$sequencesfiles); |
&process_assessment($context,$key,$docroot,'pool',$dirname,$destdir,\%{$$resinfo{$key}},$total,$udom,$uname,$pagesfiles,$sequencesfiles); |
|
push @{$pools}, $key; |
} elsif ($$resources{$key}{type} eq "assessment/x-bb-quiz") { |
} elsif ($$resources{$key}{type} eq "assessment/x-bb-quiz") { |
%{$$resinfo{$key}} = (); |
%{$$resinfo{$key}} = (); |
&process_assessment($context,$key,$docroot,'quiz',$dirname,$destdir,\%{$$resinfo{$key}},$total,$udom,$uname,$pagesfiles,$sequencesfiles); |
&process_assessment($context,$key,$docroot,'quiz',$dirname,$destdir,\%{$$resinfo{$key}},$total,$udom,$uname,$pagesfiles,$sequencesfiles); |
Line 479 sub process_resinfo {
|
Line 497 sub process_resinfo {
|
&process_announce($key,$docroot,$destdir,\%{$$resinfo{$key}},$resinfo,$seqstem,$resrcfiles); |
&process_announce($key,$docroot,$destdir,\%{$$resinfo{$key}},$resinfo,$seqstem,$resrcfiles); |
} |
} |
} |
} |
|
} |
} |
} |
if (@{$announcements}) { |
if (@{$announcements}) { |
$$items{'Top'}{'contentscount'} ++; |
$$items{'Top'}{'contentscount'} ++; |
Line 492 sub process_resinfo {
|
Line 511 sub process_resinfo {
|
if (@{$surveys}) { |
if (@{$surveys}) { |
$$items{'Top'}{'contentscount'} ++; |
$$items{'Top'}{'contentscount'} ++; |
} |
} |
|
if (@{$pools}) { |
|
$$items{'Top'}{'contentscount'} ++; |
|
} |
} |
} |
|
|
$$total{'board'} = $board_count; |
$$total{'board'} = $board_count; |
$$total{'quiz'} = @{$quizzes}; |
$$total{'quiz'} = @{$quizzes}; |
$$total{'surv'} = @{$surveys}; |
$$total{'surv'} = @{$surveys}; |
|
$$total{'pool'} = @{$pools}; |
} |
} |
|
|
sub build_structure { |
sub build_structure { |
my ($cms,$context,$destdir,$items,$resinfo,$resources,$hrefs,$udom,$uname,$newdir,$timenow,$cdom,$crs,$timestamp,$total,$boards,$announcements,$quizzes,$surveys,$boardnum,$pagesfiles,$seqfiles,$topurls,$topnames,$packages) = @_; |
my ($cms,$context,$destdir,$items,$resinfo,$resources,$targets,$hrefs,$udom,$uname,$newdir,$timenow,$cdom,$crs,$timestamp,$total,$boards,$announcements,$quizzes,$surveys,$pools,$boardnum,$pagesfiles,$seqfiles,$topurls,$topnames,$packages,$includeditems) = @_; |
my %flag = (); |
my %flag = (); |
my %count = (); |
my %count = (); |
my %pagecontents = (); |
my %pagecontents = (); |
my %seqtext = (); |
my %seqtext = (); |
my $topnum = 0; |
my $topnum = 0; |
|
my $topspecials = @$announcements + @$boards + @$quizzes + @$surveys + @$pools; |
|
|
if (!-e "$destdir") { |
if (!-e "$destdir") { |
mkdir("$destdir",0755); |
mkdir("$destdir",0755); |
Line 537 sub build_structure {
|
Line 561 sub build_structure {
|
} |
} |
|
|
foreach my $key (sort keys %{$items}) { |
foreach my $key (sort keys %{$items}) { |
|
if ($$includeditems{$key}) { |
%{$flag{$key}} = ( |
%{$flag{$key}} = ( |
page => 0, |
page => 0, |
seq => 0, |
seq => 0, |
Line 562 sub build_structure {
|
Line 587 sub build_structure {
|
$seqtext{$key} = "<map>\n"; |
$seqtext{$key} = "<map>\n"; |
} |
} |
if ($$items{$key}{contentscount} == 0) { |
if ($$items{$key}{contentscount} == 0) { |
$seqtext{$key} .= qq|<resource id="$curr_id" src="" type="start"></resource> |
if ($key eq 'Top') { |
|
unless ($topspecials) { |
|
$seqtext{$key} .= qq|<resource id="$curr_id" src="" type="start"></resource> |
<link from="$curr_id" to="$next_id" index="$curr_id"></link> |
<link from="$curr_id" to="$next_id" index="$curr_id"></link> |
<resource id="$next_id" src="" type="finish"></resource>\n|; |
<resource id="$next_id" src="" type="finish"></resource>\n|; |
|
} |
|
} else { |
|
$seqtext{$key} .= qq|<resource id="$curr_id" src="" type="start"></resource> |
|
<link from="$curr_id" to="$next_id" index="$curr_id"></link> |
|
<resource id="$next_id" src="" type="finish"></resource>\n|; |
|
} |
} else { |
} else { |
my $contcount = @{$$items{$key}{contents}}; |
my $contcount = @{$$items{$key}{contents}}; |
my $contitem = $$items{$key}{contents}[0]; |
my $contitem = $$items{$key}{contents}[0]; |
Line 588 sub build_structure {
|
Line 621 sub build_structure {
|
} |
} |
if ($contcount == 1) { |
if ($contcount == 1) { |
$seqtext{$key} .= qq|></resource> |
$seqtext{$key} .= qq|></resource> |
<link from="$curr_id" to="$next_id" index="$curr_id"></link> |
<link from="$curr_id" to="$next_id" index="$curr_id"></link>|; |
|
if ($key eq 'Top') { |
|
unless ($topspecials) { |
|
$seqtext{$key} .= qq| |
<resource id="$next_id" src="" type="finish"></resource>\n|; |
<resource id="$next_id" src="" type="finish"></resource>\n|; |
|
} |
|
} else { |
|
$seqtext{$key} .= qq| |
|
<resource id="$next_id" src="" type="finish"></resource>\n|; |
|
} |
} else { |
} else { |
if ($contcount > 2 ) { |
if ($contcount > 2 ) { |
for (my $i=1; $i<$contcount-1; $i++) { |
for (my $i=1; $i<$contcount-1; $i++) { |
Line 663 sub build_structure {
|
Line 704 sub build_structure {
|
$$total{page} += $count{$key}{page}; |
$$total{page} += $count{$key}{page}; |
} |
} |
$$total{seq} += $count{$key}{seq}; |
$$total{seq} += $count{$key}{seq}; |
|
} |
} |
} |
$topnum += ($count{'Top'}{page} + $count{'Top'}{seq}); |
$topnum += ($count{'Top'}{page} + $count{'Top'}{seq}); |
|
|
Line 679 sub build_structure {
|
Line 721 sub build_structure {
|
if (@{$surveys} > 0) { |
if (@{$surveys} > 0) { |
&process_specials($context,'surveys',$surveys,\$topnum,$$items{'Top'}{contentscount},$destdir,$udom,$uname,$cdom,$crs,$timenow,$newdir,$timestamp,$resinfo,\$seqtext{'Top'},$pagesfiles,$seqfiles,$topurls,$topnames); |
&process_specials($context,'surveys',$surveys,\$topnum,$$items{'Top'}{contentscount},$destdir,$udom,$uname,$cdom,$crs,$timenow,$newdir,$timestamp,$resinfo,\$seqtext{'Top'},$pagesfiles,$seqfiles,$topurls,$topnames); |
} |
} |
|
if (@{$pools} > 0) { |
|
&process_specials($context,'pools',$pools,\$topnum,$$items{'Top'}{contentscount},$destdir,$udom,$uname,$cdom,$crs,$timenow,$newdir,$timestamp,$resinfo,\$seqtext{'Top'},$pagesfiles,$seqfiles,$topurls,$topnames); |
|
} |
$seqtext{'Top'} .= "</map>\n"; |
$seqtext{'Top'} .= "</map>\n"; |
open(TOPFILE,">$destdir/sequences/Top.sequence"); |
open(TOPFILE,">$destdir/sequences/Top.sequence"); |
print TOPFILE $seqtext{'Top'}; |
print TOPFILE $seqtext{'Top'}; |
Line 815 sub process_specials {
|
Line 860 sub process_specials {
|
quizzes => 'quizzes', |
quizzes => 'quizzes', |
surveys => 'surveys', |
surveys => 'surveys', |
announcements => 'announcements', |
announcements => 'announcements', |
|
pools => 'pools' |
); |
); |
my %seqtitles = ( |
my %seqtitles = ( |
boards => 'Course Bulletin Boards', |
boards => 'Course Bulletin Boards', |
quizzes => 'Course Quizzes', |
quizzes => 'Course Quizzes', |
surveys => 'Course Surveys', |
surveys => 'Course Surveys', |
announcements => 'Course Announcements', |
announcements => 'Course Announcements', |
|
pools => 'Course Question Pools' |
); |
); |
$$topnum ++; |
$$topnum ++; |
|
|
Line 862 sub process_specials {
|
Line 909 sub process_specials {
|
$specialsrc = "/adm/$udom/$uname/$$timestamp[0]/bulletinboard"; |
$specialsrc = "/adm/$udom/$uname/$$timestamp[0]/bulletinboard"; |
} elsif ($type eq 'announcements') { |
} elsif ($type eq 'announcements') { |
$specialsrc = "$seqstem/resfiles/$$specials[0].html"; |
$specialsrc = "$seqstem/resfiles/$$specials[0].html"; |
|
} elsif ($type eq 'pools') { |
|
$specialsrc = "$seqstem/sequences/$$specials[0].sequence"; |
} else { |
} else { |
$specialsrc = "$seqstem/pages/$$specials[0].page"; |
$specialsrc = "$seqstem/pages/$$specials[0].page"; |
} |
} |
Line 1509 sub process_assessment {
|
Line 1558 sub process_assessment {
|
my @allids = (); |
my @allids = (); |
my %allanswers = (); |
my %allanswers = (); |
my %allchoices = (); |
my %allchoices = (); |
my $resdir = ''; |
|
if ($docroot =~ m|public_html/(.+)$|) { |
|
$resdir = $1; |
|
} |
|
my $id; # the current question ID |
my $id; # the current question ID |
my $answer_id; # the current answer ID |
my $answer_id; # the current answer ID |
my %toptag = ( pool => 'POOL', |
my %toptag = ( pool => 'POOL', |
Line 1697 sub process_assessment {
|
Line 1742 sub process_assessment {
|
($cdom,$cnum) = split/_/,$cid; |
($cdom,$cnum) = split/_/,$cid; |
} |
} |
if ($context eq 'CSTR') { |
if ($context eq 'CSTR') { |
$probsrc="/res/$udom/$uname/$resdir/problems/$dirtitle/$allids[0].problem"; |
$probsrc="/res/$udom/$uname/$dirname/problems/$dirtitle/$allids[0].problem"; |
} |
} |
print $fh qq|<resource id="1" src="$probsrc" type="start" title="question_0001"></resource>|; |
print $fh qq|<resource id="1" src="$probsrc" type="start" title="question_0001"></resource>|; |
if (@allids == 1) { |
if (@allids == 1) { |
Line 1713 sub process_assessment {
|
Line 1758 sub process_assessment {
|
$curr_id = $j; |
$curr_id = $j; |
$next_id = $curr_id + 1; |
$next_id = $curr_id + 1; |
if ($context eq 'CSTR') { |
if ($context eq 'CSTR') { |
$probsrc = "/res/$udom/$uname/$resdir/problems/$dirtitle/$allids[$j].problem"; |
$probsrc = "/res/$udom/$uname/$dirname/problems/$dirtitle/$allids[$j].problem"; |
} |
} |
print $fh qq| |
print $fh qq| |
<link from="$curr_id" to="$next_id" index="$curr_id"></link> |
<link from="$curr_id" to="$next_id" index="$curr_id"></link> |
Line 2177 sub process_content {
|
Line 2222 sub process_content {
|
my $xmlfile = $docroot.'/'.$res.".dat"; |
my $xmlfile = $docroot.'/'.$res.".dat"; |
my $destresdir = $destdir; |
my $destresdir = $destdir; |
if ($context eq 'CSTR') { |
if ($context eq 'CSTR') { |
$destresdir =~ s|/home/$user/public_html/|/res/$dom/$user/|; |
# $destresdir =~ s|/home/$user/public_html/|/res/$dom/$user/|; |
|
$destresdir =~ s|/home/$user/public_html/|/priv/$user/|; |
} elsif ($context eq 'DOCS') { |
} elsif ($context eq 'DOCS') { |
$destresdir =~ s|^/home/httpd/html/userfiles|/uploaded|; |
$destresdir =~ s|^/home/httpd/html/userfiles|/uploaded|; |
} |
} |
Line 2355 sub process_content {
|
Line 2401 sub process_content {
|
} |
} |
} |
} |
|
|
open(FILE,">$destdir/resfiles/$res.html"); |
if (!open(FILE,">$destdir/resfiles/$res.html")) { |
push @{$resrcfiles}, "$res.html"; |
&Apache::lonnet::logthis("IMS import error: Cannot open file - $destdir/resfiles/$res.html - $!"); |
my $htmldoc = 0; |
} else { |
# if ($$settings{maindata}{text} =~ m-<(html|HTML)>.+<\\(html|HTML)-) { |
push @{$resrcfiles}, "$res.html"; |
if ($$settings{maindata}{text} =~ m-<(html|HTML)>-) { |
my $htmldoc = 0; |
$htmldoc = 1; |
# if ($$settings{maindata}{text} =~ m-<(html|HTML)>.+<\\(html|HTML)-) { |
} |
if ($$settings{maindata}{text} =~ m-<(html|HTML)>-) { |
unless ($htmldoc) { |
$htmldoc = 1; |
print FILE qq|<html> |
} |
|
unless ($htmldoc) { |
|
print FILE qq|<html> |
<head> |
<head> |
<title>$$settings{title}</title> |
<title>$$settings{title}</title> |
</head> |
</head> |
<body bgcolor='#ffffff'> |
<body bgcolor='#ffffff'> |
$fontcol |
$fontcol |
|; |
|; |
} |
} |
unless ($$settings{title} eq '') { |
unless ($$settings{title} eq '') { |
print FILE qq|$$settings{title}<br/><br/>\n|; |
print FILE qq|$$settings{title}<br/><br/>\n|; |
} |
|
print FILE qq| |
|
$$settings{maindata}{text} |
|
$linktag|; |
|
unless ($htmldoc) { |
|
if (defined($$settings{maindata}{textcolor})) { |
|
print FILE qq|</font>|; |
|
} |
} |
print FILE qq| |
print FILE qq| |
|
$$settings{maindata}{text} |
|
$linktag|; |
|
unless ($htmldoc) { |
|
if (defined($$settings{maindata}{textcolor})) { |
|
print FILE qq|</font>|; |
|
} |
|
print FILE qq| |
</body> |
</body> |
</html>|; |
</html>|; |
|
} |
|
close(FILE); |
} |
} |
close(FILE); |
|
} |
} |
|
|
|
|