From 68db89e75c4dac8414a9ea6c21ba713cca312326 Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Wed, 1 Oct 2025 22:56:14 +0500 Subject: feat: new look for catalogue --- public/catalogue.php | 134 +++++++++++++++++++++++++++++++++++---------------- 1 file changed, 93 insertions(+), 41 deletions(-) (limited to 'public') diff --git a/public/catalogue.php b/public/catalogue.php index 817cba2..3d24162 100644 --- a/public/catalogue.php +++ b/public/catalogue.php @@ -14,10 +14,19 @@ if (!isset($_SESSION['is_moderator']) && !FILE_CATALOG_PUBLIC) { $db = new PDO(DB_URL, DB_USER, DB_PASS); $page = max(intval($_GET['p'] ?? '1') - 1, 0); -$limit = 20; +$limit = FILE_CATALOG_LIMIT; + +$sort_option = $_GET['sort'] ?? 'recent'; + +$sort = match ($sort_option) { + 'oldest' => 'ORDER BY uploaded_at ASC', + 'most_viewed' => 'ORDER BY views DESC', + 'least_viewed' => 'ORDER BY views ASC', + default => 'ORDER by uploaded_at DESC' +}; // counting max pages -$stmt = $db->query('SELECT COUNT(id) AS all_files FROM files WHERE id NOT IN (SELECT id FROM file_bans)'); +$stmt = $db->query("SELECT COUNT(id) AS all_files FROM files WHERE id NOT IN (SELECT id FROM file_bans) $sort"); $stmt->execute(); $max_pages = ceil(($stmt->fetch(PDO::FETCH_ASSOC)['all_files'] ?: 0) / $limit); @@ -26,10 +35,10 @@ $page = min($page, $max_pages - 1); // getting files $offset = $page * $limit; -$stmt = $db->query("SELECT f.id, f.mime, f.extension +$stmt = $db->query("SELECT f.id, f.mime, f.extension, f.title FROM files f WHERE f.id NOT IN (SELECT id FROM file_bans) - ORDER BY f.uploaded_at DESC + $sort LIMIT $limit OFFSET $offset "); $stmt->execute(); @@ -43,7 +52,9 @@ foreach ($files as &$f) { $f['color'] = 'red'; } - $f['thumb_title'] = "{$f['mime']} ({$f['extension']})"; + $f['name'] = $f['title'] ?: sprintf('%s.%s', $f['id'], $f['extension']); + + $f['thumb_title'] = "{$f['name']} // {$f['mime']} ({$f['extension']})"; } unset($f); ?> @@ -60,43 +71,84 @@ unset($f); -
- - -
- = 0): ?> - ← Previous page - - - → Next page - -
- -
- -
"> - - - - No thumbnail. - - No thumbnail. - - No thumbnail. - - No thumbnail. - - No thumbnail. - - - +
+ + +
+ +
+
+
+
+ Search +
+
+ + + +
+
+
+
+ + +
+ +
+
+

Files

+
+ + +
+ +
+
+ = 0): ?> + + + + + + + + + +
- -
+ +
-- cgit v1.2.3