version 1.148, 2013/07/27 21:38:54
|
version 1.150, 2014/03/11 01:16:49
|
Line 46 sub handler {
|
Line 46 sub handler {
|
|
|
my $r=shift; |
my $r=shift; |
|
|
# Validate access to the construction space and get username@domain. |
# Validate access to the construction space and get username:domain. |
|
|
my $uname; |
my $uname; |
my $udom; |
my $udom; |
Line 79 sub handler {
|
Line 79 sub handler {
|
my $numdir = 0; |
my $numdir = 0; |
my $numres = 0; |
my $numres = 0; |
|
|
|
# Retrieving value for sortby from QUERY_STRING |
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['sortby']); |
|
|
|
# Default sort by 'Name' |
|
if (! exists($env{'form.sortby'})) { |
|
$env{'form.sortby'} = 'filename'; |
|
} |
|
|
# Start off the directory table. |
# Start off the directory table. |
$r->print(&Apache::loncommon::start_data_table() |
$r->print(&Apache::loncommon::start_data_table() |
.&Apache::loncommon::start_data_table_header_row() |
.&Apache::loncommon::start_data_table_header_row() |
.'<th>'.&mt('Type').'</th>' |
.'<th>'.&mt('Type').'</th>' |
.'<th>'.&mt('Actions').'</th>' |
.'<th>'.&mt('Actions').'</th>' |
.'<th>'.&mt('Name').'</th>' |
.'<th><a href="'.$linkdir.'/?sortby=filename">Name<span class="LC_fontsize_small"> ▼</span></a></th>' |
.'<th>'.&mt('Title').'</th>' |
.'<th>'.&mt('Title').'</th>' |
.'<th colspan="2">'.&mt('Status').'</th>' |
.'<th colspan="2">'.&mt('Status').'</th>' |
.'<th>'.&mt('Last Modified').'</th>' |
.'<th><a href="'.$linkdir.'/?sortby=cmtime">Last Modified<span class="LC_fontsize_small"> ▼</span></a></th>' |
.&Apache::loncommon::end_data_table_header_row() |
.&Apache::loncommon::end_data_table_header_row() |
); |
); |
|
|
Line 95 sub handler {
|
Line 103 sub handler {
|
my $dirptr=16384; # Mask indicating a directory in stat.cmode. |
my $dirptr=16384; # Mask indicating a directory in stat.cmode. |
|
|
opendir(DIR,$fn); |
opendir(DIR,$fn); |
|
my $filehash = {}; |
|
my $sortby = $env{'form.sortby'}; |
my @files=sort {uc($a) cmp uc($b)} (readdir(DIR)); |
my @files=sort {uc($a) cmp uc($b)} (readdir(DIR)); |
foreach my $filename (@files) { |
foreach my $filename (@files) { |
next if ($filename eq '.DS_Store'); |
next if ($filename eq '.DS_Store'); |
my ($cdev,$cino,$cmode,$cnlink, |
my ($cmode,$cmtime)=(stat($fn.'/'.$filename))[2,9]; |
$cuid,$cgid,$crdev,$csize, |
# If you want to sort by "last modified", we need to make this hash. |
$catime,$cmtime,$cctime, |
if ($sortby eq 'cmtime') { |
$cblksize,$cblocks)=stat($fn.'/'.$filename); |
$filehash->{ $filename } = {"cmtime" => $cmtime,}; |
|
|
my $extension=''; |
|
if ($filename=~/\.(\w+)$/) { $extension=$1; } |
|
if ($cmode&$dirptr) { |
|
&putdirectory($r, $thisdisfn, $linkdir, $filename, $cmtime,$targetdir,\%bombs,\$numdir); |
|
} elsif (&Apache::loncommon::fileembstyle($extension) ne 'hdn') { |
|
&putresource($r, $udom, $uname, $filename, $thisdisfn, $resdir, |
|
$targetdir, $linkdir, $cmtime,\%bombs,\$numres); |
|
} else { |
|
# "hidden" extension and not a directory, so hide it away. |
|
} |
} |
} |
# Otherwise sort by name. Don't bother with filehash. Continue printing contents. |
|
else { |
|
my $extension=''; |
|
if ($filename=~/\.(\w+)$/) { $extension=$1; } |
|
if ($cmode&$dirptr) { |
|
&putdirectory($r, $thisdisfn, $linkdir, $filename, $cmtime,$targetdir,\%bombs,\$numdir); |
|
} elsif (&Apache::loncommon::fileembstyle($extension) ne 'hdn') { |
|
&putresource($r, $udom, $uname, $filename, $thisdisfn, $resdir, |
|
$targetdir, $linkdir, $cmtime,\%bombs,\$numres); |
|
} else { |
|
# "hidden" extension and not a directory, so hide it away. |
|
} |
|
} |
|
}; |
|
|
|
# Sorting files by "last modified" if that's what you selected |
|
if ($sortby eq 'cmtime') { |
|
my @sorted_files = sort { |
|
$filehash->{$b}->{$sortby} <=> $filehash->{$a}->{$sortby} |
|
} (keys(%{$filehash})); |
|
foreach my $filename (@sorted_files) { |
|
my ($cmode,$cmtime)=(stat($fn.'/'.$filename))[2,9]; |
|
my $extension=''; |
|
if ($filename=~/\.(\w+)$/) { $extension=$1; } |
|
if ($cmode&$dirptr) { |
|
&putdirectory($r, $thisdisfn, $linkdir, $filename, $cmtime,$targetdir,\%bombs,\$numdir); |
|
} elsif (&Apache::loncommon::fileembstyle($extension) ne 'hdn') { |
|
&putresource($r, $udom, $uname, $filename, $thisdisfn, $resdir, |
|
$targetdir, $linkdir, $cmtime,\%bombs,\$numres); |
|
} else { |
|
# "hidden" extension and not a directory, so hide it away. |
|
}; |
|
}; |
|
}; |
|
|
closedir(DIR); |
closedir(DIR); |
|
|
$r->print(&Apache::loncommon::end_data_table() |
$r->print(&Apache::loncommon::end_data_table() |