--- loncom/interface/loncreatecourse.pm 2003/09/08 21:55:46 1.36 +++ loncom/interface/loncreatecourse.pm 2003/11/12 21:37:07 1.39 @@ -1,7 +1,7 @@ # The LearningOnline Network # Create a course # -# $Id: loncreatecourse.pm,v 1.36 2003/09/08 21:55:46 www Exp $ +# $Id: loncreatecourse.pm,v 1.39 2003/11/12 21:37:07 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -47,18 +47,7 @@ use Apache::lonnet; use Apache::loncommon; use Apache::lonratedt; use Apache::londocs; - -# -------------------------------------------- Return path to profile directory - -sub propath { - my ($udom,$uname)=@_; - $udom=~s/\W//g; - $uname=~s/\W//g; - my $subdir=$uname.'__'; - $subdir =~ s/(.)(.)(.).*/$1\/$2\/$3/; - my $proname="$Apache::lonnet::perlvar{'lonUsersDir'}/$udom/$subdir/$uname"; - return $proname; -} +use Apache::lonlocal; # ================================================ Get course directory listing @@ -68,7 +57,7 @@ sub crsdirlist { my %crsdata=&Apache::lonnet::coursedescription($courseid); my @listing=&Apache::lonnet::dirlist ($which,$crsdata{'domain'},$crsdata{'num'}, - &propath($crsdata{'domain'},$crsdata{'num'})); + &Apache::loncommon::propath($crsdata{'domain'},$crsdata{'num'})); my @output=(); foreach (@listing) { unless ($_=~/^\./) { @@ -175,6 +164,18 @@ sub copyresourcedb { 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 foreach (keys %data) { my $thiskey=$_; @@ -421,10 +422,14 @@ ENDENHEAD } else { $r->print( '
Cloning course from '.$clonehome.''); + my %oldcenv=&Apache::lonnet::dump('environment',$crsudom,$crsunum); # Copy all files ©coursefiles($cloneid,$courseid); +# Restore URL + $cenv{'url'}=$oldcenv{'url'}; # Restore title - $cenv{'description'}=$cdescr; + $cenv{'description'}=$oldcenv{'description'}; +# Mark as cloned $cenv{'clonedfrom'}=$cloneid; } } @@ -526,13 +531,13 @@ sub handler { my $r = shift; if ($r->header_only) { - $r->content_type('text/html'); + &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; return OK; } if (&Apache::lonnet::allowed('ccc',$ENV{'request.role.domain'})) { - $r->content_type('text/html'); + &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; if ($ENV{'form.phase'} eq 'two') {