function php_file_tree_dir($directory, $return_link, $extensions = array(), $first_call = true) { // Recursive function called by php_file_tree() to list directories/files // Get and sort directories/files if (function_exists("scandir")) { $file = scandir($directory); } else { $file = php4_scandir($directory); } natcasesort($file); // Make directories first $files = $dirs = array(); foreach ($file as $this_file) { if (is_dir("{$directory}/{$this_file}")) { $dirs[] = $this_file; } else { $files[] = $this_file; } } $file = array_merge($dirs, $files); // Filter unwanted extensions if (!empty($extensions)) { foreach (array_keys($file) as $key) { if (!is_dir("{$directory}/{$file[$key]}")) { $ext = substr($file[$key], strrpos($file[$key], ".") + 1); if (!in_array($ext, $extensions)) { unset($file[$key]); } } } } if (count($file) > 2) { // Use 2 instead of 0 to account for . and .. "directories" $php_file_tree = "<ul"; if ($first_call) { $php_file_tree .= " class=\"php-file-tree\""; $first_call = false; } $php_file_tree .= ">"; foreach ($file as $this_file) { if ($this_file != "." && $this_file != "..") { if (is_dir("{$directory}/{$this_file}")) { // Directory $link = str_replace("[link]", "{$directory}/{$this_file}", $return_link); $php_file_tree .= "<li class=\"pft-directory\"><input type='checkbox' id='test' name='test[]' value=\"{$link}\"><a href=/tests/gui//"#/">{$this_file}</a>"; $php_file_tree .= php_file_tree_dir("{$directory}/{$this_file}", $return_link, $extensions, false); $php_file_tree .= "</li>"; } else { // File // Get extension (prepend 'ext-' to prevent invalid classes from extensions that begin with numbers) $ext = "ext-" . substr($this_file, strrpos($this_file, ".") + 1); $link = str_replace("[link]", "{$directory}/{$this_file}", $return_link); $php_file_tree .= "<li class=\"pft-file " . strtolower($ext) . "\"><input type='checkbox' name='test[]' value=\"{$link}\">{$this_file}</a></li>"; } } } $php_file_tree .= "</ul>"; } return $php_file_tree; }
/** * Recursive funciton to map a directory structure to * an unordered list * * @author http://goo.gl/Ft7m5 **/ function php_file_tree_dir($directory, $return_link, $first_call = true) { // Recursive function called by php_file_tree() to list directories/files $php_file_tree = ''; // Get and sort directories/files $file = scandir($directory); natcasesort($file); // Make directories first $files = $dirs = array(); foreach ($file as $this_file) { if (is_dir("{$directory}/{$this_file}")) { $dirs[] = $this_file; } else { $files[] = $this_file; } } $file = array_merge($dirs, $files); // Use 2 instead of 0 to account for . and .. "directories" if (count($file) > 2) { $php_file_tree = "<ul"; if ($first_call) { $php_file_tree .= " class=\"php-file-tree\""; $first_call = false; } $php_file_tree .= ">"; foreach ($file as $this_file) { if ($this_file != "." && $this_file != "..") { if (is_dir("{$directory}/{$this_file}")) { // Directory $php_file_tree .= "<li class=\"pft-directory\"><a href=\"#\">" . htmlspecialchars($this_file) . "</a>"; $php_file_tree .= php_file_tree_dir("{$directory}/{$this_file}", $return_link, false); $php_file_tree .= "</li>"; } else { // Get extension // (prepend 'ext-' to prevent invalid classes from // extensions that begin with numbers) $ext = "ext-" . substr($this_file, strrpos($this_file, ".") + 1); $link = str_replace("[link]", "{$directory}/" . urlencode($this_file), $return_link); $php_file_tree .= "<li class=\"pft-file " . strtolower($ext) . "\"><a href=\"{$link}\">" . htmlspecialchars($this_file) . "</a></li>"; } } } $php_file_tree .= "</ul>"; } return $php_file_tree; }
function php_file_tree_dir($directory, $return_link, $extensions = array(), $first_call = true) { # Recursive function called by php_file_tree() to list directories/files # Get and sort directories/files if (function_exists("scandir")) { $file = scandir($directory); } else { $file = php4_scandir($directory); } natcasesort($file); # Make directories first $files = $dirs = array(); foreach ($file as $this_file) { if (is_dir("{$directory}/{$this_file}")) { $dirs[] = $this_file; } else { $files[] = $this_file; } } #unset($dirs[$key = array_search('images', $dirs)]); $file = array_merge($dirs, $files); # Filter unwanted extensions if (!empty($extensions)) { foreach (array_keys($file) as $key) { if (!is_dir("{$directory}/{$file[$key]}")) { $ext = substr($file[$key], strrpos($file[$key], ".") + 1); if (!in_array($ext, $extensions)) { unset($file[$key]); } } } } $theme_file_tree = ""; if (count($file) > 2) { # Use 2 instead of 0 to account for . and .. "directories" $theme_file_tree = "<ul"; if ($first_call) { $theme_file_tree .= " class=\"theme-file-tree\""; $first_call = false; } $theme_file_tree .= ">"; foreach ($file as $this_file) { if ($this_file != "." && $this_file != "..") { if (is_dir("{$directory}/{$this_file}")) { # Directory $theme_file_tree .= "<li class=\"pft-dir\"><a href=\"#\">" . htmlspecialchars($this_file) . "</a>"; $theme_file_tree .= php_file_tree_dir("{$directory}/{$this_file}", $return_link, $extensions, false); $theme_file_tree .= "</li>"; } else { # File - Get extension (prepend 'ext-' to prevent invalid classes from extensions that begin with numbers) # $ext = "ext-" . substr($this_file, strrpos($this_file, ".") + 1); $theme = Config::current()->theme; $len = strlen($theme); $dir = substr(stristr($directory, $theme . "/"), $len); $link = str_replace("[link]", "{$dir}/" . urlencode($this_file), $return_link); $theme_file_tree .= "<li class=\"pft-file\"><em><a href=\"{$link}\">" . htmlspecialchars($this_file) . "</a></em></li>"; } } } $theme_file_tree .= "</ul>"; } return $theme_file_tree; }
function php_file_tree_dir($directory, $return_link, $extensions = array(), $first_call = true) { global $i; // Recursive function called by php_file_tree() to list directories/files $php_file_tree = ''; // Get and sort directories/files if (function_exists("scandir")) { $file = @scandir($directory); } else { $file = @php4_scandir($directory); } @natcasesort($file); // Make directories first $files = $dirs = array(); if (is_array($file) || is_object($file)) { foreach ($file as $this_file) { if (is_dir("{$directory}/{$this_file}")) { $dirs[] = $this_file; } else { $files[] = $this_file; } } } $file = array_merge($dirs, $files); // Filter unwanted extensions if (!empty($extensions)) { foreach (array_keys($file) as $key) { if (!is_dir("{$directory}/{$file[$key]}")) { $ext = substr($file[$key], strrpos($file[$key], ".") + 1); if (!in_array($ext, $extensions)) { unset($file[$key]); } } } } if (count($file) > 2) { // Use 2 instead of 0 to account for . and .. "directories" $php_file_tree = "<ul"; if ($first_call) { $php_file_tree .= " class=\"php-file-tree\""; $first_call = false; } $php_file_tree .= ">"; foreach ($file as $this_file) { if ($this_file != "." && $this_file != "..") { if (is_dir("{$directory}/{$this_file}")) { // Directory $php_file_tree .= "<li class=\"pft-directory\"><a href=\"#\">" . htmlspecialchars($this_file) . "</a>"; $php_file_tree .= php_file_tree_dir("{$directory}/{$this_file}", $return_link, $extensions, false); $php_file_tree .= "</li>"; } else { // File // Get extension (prepend 'ext-' to prevent invalid classes from extensions that begin with numbers) $i++; $ext = "ext-" . substr($this_file, strrpos($this_file, ".") + 1); $link = str_replace("[link]", "{$directory}/" . urlencode($this_file), $return_link); $link = str_replace("[id]", $i, $link); $php_file_tree .= "<li class=\"pft-file " . strtolower($ext) . "\"><a class='FileTree' id='FileTreeId_" . $i . "' href=\"{$link}\">" . htmlspecialchars($this_file) . "</a></li>"; } } } $php_file_tree .= "</ul>"; } return $php_file_tree; }
function php_file_tree_dir($directory, $return_link, $extensions = array(), $first_call = true) { // Recursive function called by php_file_tree() to list directories/files // Get and sort directories/files if (function_exists("scandir")) { $file = scandir($directory); } else { $file = php4_scandir($directory); } natcasesort($file); // Make directories first $files = $dirs = array(); foreach ($file as $this_file) { if (is_dir("{$directory}/{$this_file}")) { $dirs[] = $this_file; } else { $files[] = $this_file; } } $file = array_merge($dirs, $files); // Filter unwanted extensions if (!empty($extensions)) { foreach (array_keys($file) as $key) { if (!is_dir("{$directory}/{$file[$key]}")) { $ext = substr($file[$key], strrpos($file[$key], ".") + 1); if (!in_array($ext, $extensions)) { unset($file[$key]); } } } } if (count($file) > 2) { // Use 2 instead of 0 to account for . and .. "directories" $php_file_tree = "<ul id='tree-theme'"; if ($first_call) { $php_file_tree .= " class=\"php-file-tree\""; $first_call = false; } $php_file_tree .= ">"; foreach ($file as $this_file) { $files = htmlspecialchars($this_file); if ($this_file != "." && $this_file != "..") { if (is_dir("{$directory}/{$this_file}")) { // Directory $php_file_tree .= "<li class=\"pft-directory\"><a href=\"#\">" . htmlspecialchars($this_file) . "</a>"; $php_file_tree .= php_file_tree_dir("{$directory}/{$this_file}", $return_link, $extensions, false); $php_file_tree .= "</li>"; } else { if ($files != 'spot_position.php' and $files != 'spot_position.gif' and $files != 'theme_details.php' and $files != 'theme_image.gif' and $files != 'theme_image.jpg' and $files != 'theme_image.png' and $files != 'theme_details.jpg' and $files != 'Thumbs.db' and $files != 'theme_details.png' and $files != 'index.html') { // File // Get extension (prepend 'ext-' to prevent invalid classes from extensions that begin with numbers) $ext = "ext-" . substr($this_file, strrpos($this_file, ".") + 1); $link = str_replace("[link]", "{$directory}/" . urlencode($this_file), $return_link); $php_file_tree .= "<li class=\"pft-file " . strtolower($ext) . "\"><a class=\"thmfile\" src=\"{$directory}\" style=\"cursor : pointer;\" >" . htmlspecialchars($this_file) . "</a></li>"; } } } } $php_file_tree .= "</ul>"; } return $php_file_tree; }
function php_file_tree_dir($directory, $return_link, $whole, $extensions = array(), $ignored_files = array(), $call_level = 0) { global $main_folder, $default_content; $php_file_tree = ''; $page = isset($_GET['p']) ? $_GET['p'] : $default_content; // Show only entries related to current path (one level more) if ($whole == false && should_hide($directory, $page, $call_level)) { return ""; } // Get and sort directories/files if (function_exists("scandir")) { $file = scandir($directory); } else { $file = php4_scandir($directory); } natcasesort($file); // Purge unwanted / unneeded elements from the scanned array foreach (array_keys($file) as $key) { // Filter unwanted extensions if (!empty($extensions)) { if (!is_dir("{$directory}/{$file[$key]}")) { $ext = substr($file[$key], strrpos($file[$key], ".") + 1); if (!in_array($ext, $extensions)) { unset($file[$key]); continue; } } } // Filter unwanted files (array) if (!empty($ignored_files)) { if (in_array($file[$key], $ignored_files)) { unset($file[$key]); continue; } } // Filter unwanted files (filename) if (substr($file[$key], 0, 1) == "_") { unset($file[$key]); continue; } } if (count($file) > 0) { $php_file_tree = "<ul>"; foreach ($file as $this_file) { if ($this_file[0] != ".") { $link = str_replace("[link]", "{$directory}/" . urlencode(pathinfo($this_file, PATHINFO_FILENAME)), $return_link); $link = str_replace($main_folder, "", $link); $menu_name = apply_menu_icon(htmlspecialchars(sanitize_entry($this_file))); if (is_dir("{$directory}/{$this_file}")) { // Directory $php_file_tree .= "<li><a href=\"{$link}\">" . $menu_name . "</a>"; $php_file_tree .= php_file_tree_dir("{$directory}/{$this_file}", $return_link, $whole, $extensions, $ignored_files, $call_level + 1); $php_file_tree .= "</li>"; } else { // File $php_file_tree .= "<li><a href=\"{$link}\">" . $menu_name . "</a></li>"; } } } $php_file_tree .= "</ul>"; } return $php_file_tree; }
function php_file_tree_dir($directory, $return_link, $extensions = array(), $chkOn, $first_call = true) { // Recursive function called by php_file_tree() to list directories/files // Get and sort directories/files if (function_exists("scandir")) { $file = scandir($directory); } else { $file = php4_scandir($directory); } natcasesort($file); // Make directories first $files = $dirs = array(); foreach ($file as $this_file) { if (is_dir("{$directory}/{$this_file}")) { $dirs[] = $this_file; } else { $files[] = $this_file; } } array_sort_by_month($dirs); // rsort($dirs); // ss - reverse sort years/days, by most recent first // echo '<pre>'; // print_r($dirs); $file = array_merge($dirs, $files); // var_dump($dirs);die(); // Filter unwanted extensions if (!empty($extensions)) { foreach (array_keys($file) as $key) { if (!is_dir("{$directory}/{$file[$key]}")) { $ext = substr($file[$key], strrpos($file[$key], ".") + 1); if (!in_array($ext, $extensions)) { unset($file[$key]); } } } } // SS - initialize $php_file_tree as appears to throw an error sometimes for unknown reason $php_file_tree = ''; if (count($file) > 2) { // Use 2 instead of 0 to account for . and .. "directories" $php_file_tree = "<ul"; if ($first_call) { $php_file_tree .= " class=\"php-file-tree\""; $first_call = false; } $php_file_tree .= ">"; foreach ($file as $this_file) { if ($this_file != "." && $this_file != "..") { if (is_dir("{$directory}/{$this_file}")) { // Directory $php_file_tree .= "<li class=\"pft-directory\"><a href=\"#\">" . htmlspecialchars($this_file) . "</a>"; $php_file_tree .= php_file_tree_dir("{$directory}/{$this_file}", $return_link, $extensions, $chkOn, false); $php_file_tree .= "</li>"; } else { // File // Get extension (prepend 'ext-' to prevent invalid classes from extensions that begin with numbers) $ext = "ext-" . substr($this_file, strrpos($this_file, ".") + 1); $link = str_replace("[link]", "{$directory}/" . urlencode($this_file), $return_link); if ($chkOn === true) { // append checkbox $php_file_tree .= "<li class=\"pft-file " . strtolower($ext) . "\"><input type=\"checkbox\" value=\"{$link}\" name=\"CheckBxFile\" id=\"CheckBxFile\"/>" . htmlspecialchars($this_file) . "</li>"; } else { $php_file_tree .= "<li class=\"pft-file " . strtolower($ext) . "\"><a href=\"#noLink\" {$link}>" . htmlspecialchars($this_file) . "</a></li>"; // #noLink used in URL href to avoid when click on file that the page jumps to top } } } } $php_file_tree .= "</ul>"; } return $php_file_tree; }
function php_file_tree_dir($directory, $first_call = true) { $file = scandir($directory); natcasesort($file); $files = $dirs = array(); $php_file_tree = ""; foreach ($file as $this_file) { if (is_dir("{$directory}/{$this_file}")) { $dirs[] = $this_file; } else { $files[] = $this_file; } } $file = array_merge($dirs, $files); if (count($file) > 2) { $php_file_tree = "<ul"; if ($first_call) { $php_file_tree .= " class=\"php-file-tree\""; $first_call = false; } $php_file_tree .= ">"; foreach ($file as $this_file) { if ($this_file != "." && $this_file != "..") { if (is_dir("{$directory}/{$this_file}")) { $php_file_tree .= "<li class=\"pft-directory\"><input type=\"checkbox\" name=\"pathChecked[]\" value=\"{$directory}/{$this_file}\"> <a href=\"#\"><strong>" . htmlspecialchars($this_file) . "</strong></a>"; $php_file_tree .= php_file_tree_dir("{$directory}/{$this_file}", false); $php_file_tree .= "</li>"; } else { $php_file_tree .= "<li class=\"pft-file\"><input type=\"checkbox\" name=\"pathChecked[]\" value=\"{$directory}/{$this_file}\"> <strong>" . htmlspecialchars($this_file) . "</strong> (" . humanFileSize(filesize("{$directory}/{$this_file}")) . ")</li>"; } } } $php_file_tree .= "</ul>"; } return $php_file_tree; }
<p><a class="btn btn-success" href="purge.php">Back</a></p> </div>'; break; } } else { $topn = 50; echo ' <div id="purgeTree" style="display:none;"> <form action="purge.php" method="post"> <ul class="nav nav-tabs" role="tablist"> <li role="presentation" class="active"><a href="#whisper" aria-controls="whisper" role="tab" data-toggle="tab">Whisper repository</a></li> <li role="presentation"><a href="#vcenter" aria-controls="vcenter" role="tab" data-toggle="tab">vCenter session files</a></li> <li role="presentation"><a href="#oldies" aria-controls="oldies" role="tab" data-toggle="tab">Top ' . $topn . ' oldest whisper files</a></li> </ul> <div class="tab-content" style="padding-top: 10px;"> <div role="tabpanel" class="tab-pane fade in active" id="whisper"> ' . php_file_tree_dir("/var/lib/graphite/whisper") . ' </div> <div role="tabpanel" class="tab-pane fade" id="vcenter"> ' . php_file_tree("/tmp", "dat") . ' </div> <div role="tabpanel" class="tab-pane fade" id="oldies"> ' . php_file_tree_top_oldest("/var/lib/graphite/whisper", $topn) . ' </div> </div> <button name="submit" class="btn btn-danger" value="purge-files">Purge</button> </form> </div><br /> <script type="text/javascript"> document.getElementById("purgeTree").style.display = "block"; document.getElementById("purgeLoading").style.display = "none"; </script>';