From ab787233d65f8b20ac081ae78aa8257b363efaa3 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Wed, 25 Mar 2009 18:14:03 +0000 Subject: Fix for ticket #184. Sort the output children as DirectoryIterator does not provide a sort order. Separate the directory and files, sort them individually and then merge them together so directories are at the top of the list --- modules/server_add/controllers/server_add.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'modules/server_add/controllers') diff --git a/modules/server_add/controllers/server_add.php b/modules/server_add/controllers/server_add.php index fe511b46..dd6c5d00 100644 --- a/modules/server_add/controllers/server_add.php +++ b/modules/server_add/controllers/server_add.php @@ -133,7 +133,7 @@ class Server_Add_Controller extends Controller { } private function _get_children($path) { - $file_list = array(); + $directory_list = $file_list = array(); $files = new DirectoryIterator($path); foreach ($files as $file) { if ($file->isDot() || $file->isLink()) { @@ -142,7 +142,7 @@ class Server_Add_Controller extends Controller { $filename = $file->getFilename(); if ($filename[0] != ".") { if ($file->isDir()) { - $file_list[$filename] = array("path" => $file->getPathname(), "is_dir" => true); + $directory_list[$filename] = array("path" => $file->getPathname(), "is_dir" => true); } else { $extension = strtolower(substr(strrchr($filename, '.'), 1)); if ($file->isReadable() && @@ -152,6 +152,9 @@ class Server_Add_Controller extends Controller { } } } - return $file_list; + + ksort($directory_list); + ksort($file_list); + return array_merge($directory_list, $file_list); } } \ No newline at end of file -- cgit v1.2.3