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;
}
Example #2
0
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;
}