version 1.35, 2003/09/03 23:15:27
|
version 1.37, 2003/09/09 17:26:03
|
Line 98 sub writefile {
|
Line 98 sub writefile {
|
'output',$which); |
'output',$which); |
} |
} |
|
|
|
# ===================================================================== Rewrite |
|
|
|
sub rewritefile { |
|
my ($contents,%rewritehash)=@_; |
|
foreach (keys %rewritehash) { |
|
my $pattern=$_; |
|
$pattern=~s/(\W)/\\$1/gs; |
|
my $new=$rewritehash{$_}; |
|
$contents=~s/$pattern/$new/gs; |
|
} |
|
return $contents; |
|
} |
|
|
# ============================================================= Copy a userfile |
# ============================================================= Copy a userfile |
|
|
sub copyfile { |
sub copyfile { |
my ($origcrsid,$newcrsid,$which)=@_; |
my ($origcrsid,$newcrsid,$which)=@_; |
return &writefile($newcrsid,$which,&readfile($origcrsid,$which)); |
unless ($which=~/\.sequence$/) { |
|
return &writefile($newcrsid,$which, |
|
&readfile($origcrsid,$which)); |
|
} else { |
|
my %origcrsdata=&Apache::lonnet::coursedescription($origcrsid); |
|
my %newcrsdata= &Apache::lonnet::coursedescription($newcrsid); |
|
return &writefile($newcrsid,$which, |
|
&rewritefile( |
|
&readfile($origcrsid,$which), |
|
( |
|
'/uploaded/'.$origcrsdata{'domain'}.'/'.$origcrsdata{'num'}.'/' |
|
=> '/uploaded/'. $newcrsdata{'domain'}.'/'. $newcrsdata{'num'}.'/' |
|
))); |
|
} |
} |
} |
|
|
# =============================================================== Copy a dbfile |
# =============================================================== Copy a dbfile |
Line 149 sub copyresourcedb {
|
Line 175 sub copyresourcedb {
|
delete $data{$_}; |
delete $data{$_}; |
} |
} |
} |
} |
|
# adjust symbs |
|
my $pattern='uploaded/'.$origcrsdata{'domain'}.'/'.$origcrsdata{'num'}.'/'; |
|
$pattern=~s/(\W)/\\$1/gs; |
|
my $new= 'uploaded/'. $newcrsdata{'domain'}.'/'. $newcrsdata{'num'}.'/'; |
|
foreach (keys %data) { |
|
if ($_=~/$pattern/) { |
|
my $newkey=$_; |
|
$newkey=~s/$pattern/$new/; |
|
$data{$newkey}=$data{$_}; |
|
delete $data{$_}; |
|
} |
|
} |
# adjust dates |
# adjust dates |
foreach (keys %data) { |
foreach (keys %data) { |
my $thiskey=$_; |
my $thiskey=$_; |
Line 395 ENDENHEAD
|
Line 433 ENDENHEAD
|
} else { |
} else { |
$r->print( |
$r->print( |
'<br /><font color="green">Cloning course from '.$clonehome.'</font>'); |
'<br /><font color="green">Cloning course from '.$clonehome.'</font>'); |
|
my %oldcenv=&Apache::lonnet::dump('environment',$crsudom,$crsunum); |
# Copy all files |
# Copy all files |
©coursefiles($cloneid,$courseid); |
©coursefiles($cloneid,$courseid); |
|
# Restore URL |
|
$cenv{'url'}=$oldcenv{'url'}; |
# Restore title |
# Restore title |
$cenv{'description'}=$cdescr; |
$cenv{'description'}=$oldcenv{'description'}; |
|
# Mark as cloned |
$cenv{'clonedfrom'}=$cloneid; |
$cenv{'clonedfrom'}=$cloneid; |
} |
} |
} |
} |