alice_index/pages/file_index.php

65 lines
2.0 KiB
PHP

---
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>