function directory_to_list($dir, $onlydirs = FALSE, $sub = FALSE) { $levels = explode('/', $dir); $subtab = count($levels) > 2 ? count($levels) - 2 : 0; $t = count($levels) + ($sub !== false ? 1 + $subtab : 0); $output = entab($t) . '<ul>'; $dirlist = opendir($dir); while ($file = readdir($dirlist)) { if ($file != '.' && $file != '..' && $file != '.DS_Store') { $newpath = $dir . '/' . $file; $level = explode('/', $newpath); $tabs = count($level) + ($sub !== false ? 1 + $subtab : 0); $output .= $onlydirs == TRUE && is_dir($newpath) || $onlydirs == FALSE ? entab($tabs) . '<li><a href="' . $newpath . '">' . $file . '</a>' . (is_dir($newpath) ? directory_to_list($newpath, $onlydirs, TRUE) . entab($tabs) : '') . '</li>' : ''; } } closedir($dirlist); $output .= entab($t) . '</ul>'; if ($onlydirs == TRUE) { $output = preg_replace('/\\n([\\t]+)<ul>\\n([\\t]+)<\\/ul>\\n([\\t]+)/', '', $output); } return $output; }
function directoryToList($dir, $onlydirs = false, $sub = false) { $levels = explode('/', $dir); $subtab = count($levels) > 2 ? count($levels) - 2 : 0; $t = count($levels) + ($sub !== false ? 1 + $subtab : 0); $output = entab($t) . '<ul id="parent_' . ereg_replace('/', ':', $dir) . '">'; $dirlist = opendir($dir); while ($file = readdir($dirlist)) { if ($file != '.' && $file != '..' && $file != 'index.php' && !eregi('~', $file) && !eregi('.php', $file)) { $newpath = $dir . '/' . $file; $level = explode('/', $newpath); $tabs = count($level) + ($sub !== false ? 1 + $subtab : 0); $link = ereg_replace('.php', '', ereg_replace('views/', '', $newpath)); $class = is_dir($newpath) ? ' class="parent"' : ' class="file"'; $output .= $onlydirs == true && is_dir($newpath) || $onlydirs == false ? entab($tabs) . '<li id="' . $file . '"' . $class . '><a href="?' . (is_dir($newpath) ? $link . '/index' : $link) . '">' . prettify($file) . '</a>' . (is_dir($newpath) ? directoryToList($newpath, $onlydirs, false) . entab($tabs) : '') . '</li>' : ''; } } closedir($dirlist); $output .= entab($t) . '</ul>'; //if($onlydirs == TRUE) $output = preg_replace('/<ul(.*)>\\n([\\t]+)<\\/ul>/', '', $output); return $output; }