From 394c0c1ce48314fc6d52f3b8d29e5d4f21c3bfdc Mon Sep 17 00:00:00 2001 From: TheTroll Date: Thu, 18 Mar 2010 18:12:03 +0100 Subject: Optimizing file browsing --- bin/files.php | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) (limited to 'bin') diff --git a/bin/files.php b/bin/files.php index 34db5bf..be2a364 100755 --- a/bin/files.php +++ b/bin/files.php @@ -158,11 +158,12 @@ function generatelogo($type, $name, $dest) function filesgetlisting($dir) { - $listing = array(); + $filelisting = array(); + $folderlisting = array(); $dir_handle = @opendir($dir); if (!$dir_handle) - return $listing; + return array(); while ($medianame = readdir($dir_handle)) { @@ -173,38 +174,19 @@ function filesgetlisting($dir) } if ($medianame_array[0] == NULL) - return $listing; + return array(); // Alphabetical sorting sort($medianame_array); - // List folders - foreach($medianame_array as $value) - { - $type = filegettype($dir ."/" .$value); - - if ($type != 'folder') - continue; - - $newentry = array(); - $newentry['name'] = $value; - $newentry['path'] = $dir ."/" .$value .'/'; - $newentry['type'] = 'folder'; - - $listing[] = $newentry; - } - $number = 1; - // List files + // List files and folders foreach($medianame_array as $value) { $type = filegettype($dir ."/" .$value); - if ($type == 'folder') - continue; - $newentry = array(); $newentry['name'] = $value; $newentry['path'] = $dir ."/" .$value; @@ -217,14 +199,21 @@ function filesgetlisting($dir) $newentry['number'] = $number; $number++; case 'video': + case 'folder': case 'rec': - $listing[] = $newentry; + if ($type == 'folder') + { + $newentry['path'] = $newentry['path'] .'/'; + $folderlisting[] = $newentry; + } + else + $filelisting[] = $newentry; break; default: } } - return $listing; + return array_merge($folderlisting, $filelisting); } ?> -- cgit v1.2.3