<?php
    ini_set("display_errors", 1);
    $array_diff = array('..', '.', "incomplete");
    $html       = display_dir("dl_files", "Downloads", $array_diff, true);
    
    function display_dir($dir, $dir_name, $array_diff = array('..', '.'), $first = false)
    {
        $scan_dir = array_diff(scandir($dir), $array_diff);
        $html     = [];
        if (!$first)
        {
            $html[] = "<table>";
            $html[] = "<tr>";
            $html[] = "<td style='width: 90%'>";
            $html[] = "<a href='#$dir' class='d-block' data-toggle='collapse' role='button' aria-expanded='false' aria-controls='$dir'>";
            $html[] = "<span class='badge badge-primary badge-pill'>" . sizeof($scan_dir) . "</span>";
            $html[] = $dir_name;
            $html[] = "</a>";
            $html[] = "<div class='collapse ml-4' id='$dir'>";
        }
        $html[] = "<div>";
        
        foreach ($scan_dir as $file)
        {
            $first_char = substr($file, 0, 1);
            if ($first_char === ".")
            {
                continue;
            }
            
            $filename = $dir . DIRECTORY_SEPARATOR . $file;
            
            if (is_dir($filename))
            {
                $html[] = display_dir($filename, $file);
            }
            else
            {
                $html[] = display_file($filename, $file);
            }
        }
        
        $html[] = "</div>";
        
        if (!$first)
        {
            $html[] = "</div>";
            $html[] = "</td>";
            $html[] = "</tr>";
            $html[] = "</table>";
        }
        return join("\n", $html);
    }
    
    function display_file($file_path, $file_name)
    {
        $file_path = addslashes($file_path);
        $html      = [];
        $html[]    = "<table>";
        $html[]    = "<tr>";
        $html[]    = "<td style='width: 90%'>";
        $html[]    = "<a href='$file_path'>$file_name</a>";
        $html[]    = "</td>";
        $html[]    = "</tr>";
        $html[]    = "</table>";
        return join("\n", $html);
    }

?>

<!DOCTYPE html>
<html>
	<head>
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
		<title>Downloader</title>
		<script src="src/jquery-3.3.1.min.js"></script>
		<script src="src/jquery-ui.min.js"></script>
		
		<link rel="stylesheet" href="src/bootstrap.min.css">
		<script src="src/popper.min.js"></script>
		<script src="src/jquery-3.3.1.min.js"></script>
		<script src="src/popper.min.js"></script>
		<script src="src/bootstrap.min.js"></script>
		<style>
		
		</style>
	</head>
	<body class="container">
        <?php
            echo $html;
        ?>
	</body>
</html>

