Pith - miter
miter/back/tenon/tenon_files.php [4.4 kb]
Modified: 15:07:25 131 026 (28 Jul 026)
33 Days Ago
<?php
declare(strict_types=1);
session_start();

if (empty($_SESSION['miter'])) {
	header('Location: ../../index.php');
	exit;
}

function formatbytes(int $bytes, int $precision = 2): string { 
	$units = array('b', 'kb', 'mb', 'gb', 'tb'); 
	$bytes = max($bytes, 0); 
	$pow = floor(($bytes ? log($bytes) : 0) / log(1024)); 
	$pow = (int)min($pow, count($units) - 1); 
	$bytes /= (1 << (10 * $pow)); 
	return round($bytes, $precision) . ' ' . $units[$pow]; 
}

if (!function_exists('calculate_directory_size')) {
	function calculate_directory_size(string $dir): int {
		$total_size = 0;
		$files = glob($dir . '/*');
		if ($files !== false) {
			foreach ($files as $path) {
				if (is_file($path)) {
					$total_size += filesize($path);
				} elseif (is_dir($path) && function_exists('get_dir_size')) {
					$total_size += get_dir_size($path);
				}
			}
		}
		return $total_size;
	}
}
$docs_count = count(glob('docs/*.*') ?: []);
$doc_dir_size = calculate_directory_size('docs');
$doc_size = formatbytes($doc_dir_size);

$var_sort = $_GET['sort'] ?? '';
?>

<div class='tenon_header'>
	<div class='tenon_header_td'>
		<span class='title'>Upload <span style='opacity: 0.5;'>| docs/</span></span>
	</div>
</div>
<form name='upform' enctype='multipart/form-data' method='post' action='back/tenon/upload_files.php' target='_blank' onsubmit='setTimeout(function(){window.location.reload();},1500);'>
	<div class='full_tenon_table'>
		<div class='full_upload_td'>
			<input type='file' name='docfiles[]' id='docfiles' class='upload_file_field' multiple>
		</div>
	</div>
	<input type='submit' name='submit' class='full_submit_button' value='Upload File(s)'>
</form>

<div class='bump'></div>

<div class='tenon_header'>
	<div class='tenon_header_td_left'>
		<span class='title'>Documents <span style='opacity: 0.5;'>| <?php echo $docs_count . " - " . $doc_size; ?></span></span>
	</div>
	<div class='tenon_header_td_right'>
		<?php if ($var_sort == 'date') { ?>
				<a href='?u=tenon_files&sort=abc'>
					<span role="img" aria-label="Sort A-Z" class="tenon_list_button" style="-webkit-mask:url(images/icons/sort_abc.png) no-repeat center / contain;mask:url(images/icons/sort_abc.png) no-repeat center / contain;"></span>
				</a>
				<span role="img" aria-label="Sort by Date" class="tenon_list_button" style="-webkit-mask:url(images/icons/sort_date.png) no-repeat center / contain;mask:url(images/icons/sort_date.png) no-repeat center / contain;"></span>
		<?php } else { ?>
				<span role="img" aria-label="Sort A-Z" class="tenon_list_button" style="-webkit-mask:url(images/icons/sort_abc.png) no-repeat center / contain;mask:url(images/icons/sort_abc.png) no-repeat center / contain;"></span>
				<a href='?u=tenon_files&sort=date'>
					<span role="img" aria-label="Sort by Date" class="tenon_list_button" style="-webkit-mask:url(images/icons/sort_date.png) no-repeat center / contain;mask:url(images/icons/sort_date.png) no-repeat center / contain;"></span>
				</a>
		<?php } ?>
	</div>
</div>
<div class='tenon_table'>
	<div class='tenon_td'>
<?php
if (function_exists('isMobile') && isMobile()) {
	$char_count = 25;
} else {
	$char_count = 45;
}
$i = 1;
$file_list = glob("docs/*.*");	

if ($file_list !== false) {
	if ($var_sort === 'date') {
		usort($file_list, function($newest, $oldest) {
			return filemtime($oldest) <=> filemtime($newest);
		});
	}
	
	foreach ($file_list as $file_name) {
		$file_name = str_replace("docs/", "", $file_name);
		$file_loc = "docs/" . $file_name;
		
		if (file_exists($file_loc) && is_file($file_loc)) {
			$file_size = filesize($file_loc);
			$display_size = formatbytes($file_size !== false ? $file_size : 0);
			?>
			<div class='list_doc'>
				<div class='list_doc_left'>
					<span class='text'><?php echo $i++; ?>. </span>
					<a href='docs/<?php echo htmlspecialchars($file_name, ENT_QUOTES, 'UTF-8'); ?>' target='_blank'><?php echo htmlspecialchars(substr($file_name, 0, $char_count), ENT_QUOTES, 'UTF-8'); ?></a>
				</div>
				<span class='span_right'>
					<span class='grey'><?php echo htmlspecialchars($display_size, ENT_QUOTES, 'UTF-8'); ?></span> 
					<a href='back/tenon/delete_file.php?d=<?php echo urlencode($file_name); ?>' onclick='return confirm_delete()'>
						<img src='images/icons/delete_line.png' class='tenon_list_button_end' alt='delete'>
					</a>
				</span>
			</div>
			<?php
		}
	}
}
?>
	</div>
</div>
Updates
Stave - Android 158.026
Kerf - Android 157.026
Kiln - Android 157.026
Wedge - Android 156.026
Whittle - Linux 155.026

Menu
Calendar
Project Tin (024/029)
Miter
RSS Feed
User Avatar
@vgmlr
=SUM(parts)
0.00333
261,339 (+1,753)