65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
---
 | 
						|
layout: default
 | 
						|
permalink: file_index.php
 | 
						|
---
 | 
						|
 | 
						|
<div class="publication">
 | 
						|
		<div>
 | 
						|
			<input type="text" id="searchBox" placeholder="Buscar arquivos..." onkeyup="filterList()">
 | 
						|
		</div>
 | 
						|
  <div class="pub-header">
 | 
						|
 | 
						|
<?php
 | 
						|
// Pega o tipo de arquivo da query string
 | 
						|
$queries = array();
 | 
						|
parse_str($_SERVER['QUERY_STRING'], $queries);
 | 
						|
$filetype = isset($queries['filetype']) ? $queries['filetype'] : '';
 | 
						|
 | 
						|
// Lê o arquivo de texto em um array, cada linha como um elemento
 | 
						|
$lines = file("assets/data/$filetype.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
 | 
						|
 | 
						|
// Inicia a lista não ordenada
 | 
						|
 | 
						|
echo "<ul id=\"fileList\">";
 | 
						|
 | 
						|
foreach ($lines as $line) {
 | 
						|
		// Obtém o nome do arquivo e o caminho
 | 
						|
		$filename = basename($line);
 | 
						|
		$parts = explode('/', $line);
 | 
						|
		$username = $parts[2];
 | 
						|
		$path_after_public_html = implode('/', array_slice($parts, 4));
 | 
						|
		$dir_after_public_html = dirname($path_after_public_html);
 | 
						|
 | 
						|
		// Cria o item da lista com o link para o diretório
 | 
						|
		echo "<li data-filename=\"$filename\" data-username=\"$username\" data-path=\"$dir_after_public_html\">($username) <a href=\"/~$username/$path_after_public_html\">$filename</a> ($dir_after_public_html)</li>";
 | 
						|
}
 | 
						|
 | 
						|
// Fecha a lista não ordenada
 | 
						|
echo "</ul>";
 | 
						|
?>
 | 
						|
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
<script>
 | 
						|
		function filterList() {
 | 
						|
				// Pega o valor do campo de busca
 | 
						|
				var filter = document.getElementById('searchBox').value.toLowerCase();
 | 
						|
				var ul = document.getElementById('fileList');
 | 
						|
				var li = ul.getElementsByTagName('li');
 | 
						|
 | 
						|
				// Itera sobre os itens da lista e esconde os que não correspondem
 | 
						|
				for (var i = 0; i < li.length; i++) {
 | 
						|
						var filename = li[i].getAttribute('data-filename').toLowerCase();
 | 
						|
						var username = li[i].getAttribute('data-username').toLowerCase();
 | 
						|
						var path = li[i].getAttribute('data-path').toLowerCase();
 | 
						|
 | 
						|
						if (filename.indexOf(filter) > -1 || username.indexOf(filter) > -1 || path.indexOf(filter) > -1) {
 | 
						|
								li[i].style.display = "";
 | 
						|
						} else {
 | 
						|
								li[i].style.display = "none";
 | 
						|
						}
 | 
						|
				}
 | 
						|
		}
 | 
						|
</script>
 | 
						|
 |