version 1.61, 2004/06/29 14:56:32
|
version 1.63, 2004/07/02 00:27:44
|
Line 42 use localenroll;
|
Line 42 use localenroll;
|
|
|
# ================================================ Get course directory listing |
# ================================================ Get course directory listing |
|
|
#FIXME - doesn't support directories under /userfiles/ BUG#2999 |
my @output=(); |
|
|
sub crsdirlist { |
sub crsdirlist { |
my ($courseid,$which)=@_; |
my ($courseid,$which)=@_; |
unless ($which) { $which=''; } |
@output=(); |
|
return &innercrsdirlist($courseid,$which); |
|
} |
|
|
|
sub innercrsdirlist { |
|
my ($courseid,$which,$path)=@_; |
|
my $dirptr=16384; |
|
unless ($which) { $which=''; } else { $which.='/'; } |
|
unless ($path) { $path=''; } else { $path.='/'; } |
my %crsdata=&Apache::lonnet::coursedescription($courseid); |
my %crsdata=&Apache::lonnet::coursedescription($courseid); |
my @listing=&Apache::lonnet::dirlist |
my @listing=&Apache::lonnet::dirlist |
($which,$crsdata{'domain'},$crsdata{'num'}, |
($which,$crsdata{'domain'},$crsdata{'num'}, |
&Apache::loncommon::propath($crsdata{'domain'},$crsdata{'num'})); |
&Apache::loncommon::propath($crsdata{'domain'},$crsdata{'num'})); |
my @output=(); |
|
foreach (@listing) { |
foreach (@listing) { |
#FIXME if list is a DIR need to recurse |
|
unless ($_=~/^\./) { |
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; |
return @output; |