--- loncom/interface/loncreatecourse.pm 2004/06/29 14:56:32 1.61 +++ loncom/interface/loncreatecourse.pm 2004/07/01 21:54:24 1.62 @@ -1,7 +1,7 @@ #meserver The LearningOnline Network # Create a course # -# $Id: loncreatecourse.pm,v 1.61 2004/06/29 14:56:32 raeburn Exp $ +# $Id: loncreatecourse.pm,v 1.62 2004/07/01 21:54:24 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -42,19 +42,34 @@ use localenroll; # ================================================ Get course directory listing -#FIXME - doesn't support directories under /userfiles/ BUG#2999 +my @output=(); + sub crsdirlist { my ($courseid,$which)=@_; + @output=(); + return &innercrsdirlist($courseid,$which); +} + +sub innercrsdirlist { + my ($courseid,$which,$path)=@_; + my $dirptr=16384; unless ($which) { $which=''; } + unless ($path) { $path=''; } my %crsdata=&Apache::lonnet::coursedescription($courseid); my @listing=&Apache::lonnet::dirlist ($which,$crsdata{'domain'},$crsdata{'num'}, &Apache::loncommon::propath($crsdata{'domain'},$crsdata{'num'})); - my @output=(); foreach (@listing) { - #FIXME if list is a DIR need to recurse unless ($_=~/^\./) { - push (@output,(split(/\&/,$_))[0]); + my @unpackline = split (/\&/,$_); + if ($unpackline[3]&$dirptr) { +# is a directory, recurse + &innercrsdirlist($courseid,$which.'/'.$unpackline[0], + $path.'/'.$unpackline[0]); + } else { +# is a file, put into output + push (@output,$path.'/'.$unpackline[0]); + } } } return @output;