Having looked at it, it seems to be along the lines of what I was thinking of... I would be very grateful if you could post the code, since I do think it will be very useful. The main difference I was thinking of was to have a menu in the form of a page of links, rather than a drop-down menu, but having seen that, I would much prefer the drop-down menu approach!!!
Thanks very much, Ben.
Sorry I didn't get to this in a while -- had to fix my filters :)
Anyhow, the functions that I used to create my drop down box :
function getSubDir($rootdirpath) { if ($dir = @opendir($rootdirpath)) { $array[] = $rootdirpath; while (($file = readdir($dir)) !== false) { if (is_dir($rootdirpath."/".$file) && $file != "." && $file != "..") { $array = array_merge($array,getSubDir($rootdirpath."/".$file)); } } closedir($dir); } return $array; } function getFiles($dirname) { $handle=opendir($dirname); while ($file = readdir($handle)) { if($file=='.'||$file=='..') continue; else $result_array[]=$file; } closedir($handle); return $result_array; }
The first function returns all the subdirs in a directory (given as $rootdirpath).
The second functions returns an array of all files in a directory.
Simply combine these two functions to get a listing of all files in subdirectories :
$subdirs = getSubDir("/path/to/main"); //no trailing /
array_shift($subdirs); //gets rid of the parent dir
$count = 0;
while (list(,$val) = each($subdirs)) {
$files[substr(strrchr($val,"/"),1,strlen(strrchr($val,"/")))] = getFiles($val);
$count += count(getFiles($val));
}
This while loop gets a list of all the files and counts the total number of files in the subdirs. The list of files is in an array called $files.
Now, to build the drop down :
while(list($key,$val) = each($files)) { echo "<option value=\"NULL\" >Section $key :</option>\n"; while(list(,$name) = each ($val)) { echo "<option value=\"$key/$name\" > -=> "; echo substr($name,0,strlen($name)-4); echo "</option>\n"; } echo "<option value=\"NULL\" ></option>\n"; // space }
I hope this helps you out. Let me know if you can't understand anything :)
-- Burhan Khalid phplist[at]meidomus[dot]com
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php