diff --git a/new.php b/new.php index b7cbf2c..adaf314 100644 --- a/new.php +++ b/new.php @@ -55,6 +55,21 @@ function orphan_videos($config){ $videos = glob($config['videos_dir'].'/*.{mp4,webm,mov,m4v}', GLOB_BRACE) ?: []; return array_values(array_filter($videos, fn($v)=>empty($referenced[basename($v)]))); } +function paginate($items, $page, $perPage = 10){ + $total = count($items); + $pages = max(1, (int)ceil($total / $perPage)); + $page = max(1, min((int)$page, $pages)); + return [$page, $pages, array_slice($items, ($page - 1) * $perPage, $perPage), $total]; +} +function page_links($tab, $page, $pages){ + if ($pages <= 1) return ''; + $html = '
'; + for ($i = 1; $i <= $pages; $i++) { + $class = $i === $page ? 'active' : ''; + $html .= ''.$i.''; + } + return $html . '
'; +} function save_uploads($field, $dest, $allowed){ if (empty($_FILES[$field])) return []; $files = $_FILES[$field]; $saved = []; @@ -132,6 +147,9 @@ try { $dirs = input_dirs($config['uploads_dir']); $orphanVideos = orphan_videos($config); $tab = $_GET['tab'] ?? (isset($_GET['edit']) ? 'edit' : 'new'); +$page = max(1, (int)($_GET['page'] ?? 1)); +[$editPage, $editPages, $dirsPage, $dirsTotal] = paginate($dirs, $tab === 'edit' ? $page : 1); +[$videoPage, $videoPages, $orphanVideosPage, $orphanVideosTotal] = paginate($orphanVideos, $tab === 'videos' ? $page : 1); $editName = $_GET['edit'] ?? ''; $editDir = null; $editData = ['title'=>'','date'=>'','place'=>'','description'=>'','captions'=>[]]; $editFiles = []; if ($editName !== '') { try { $editDir = safe_input_dir($config['uploads_dir'], $editName); $editData = read_data($editDir); $editFiles = list_files($editDir); } catch (Throwable $e) { $err = $e->getMessage(); } } @@ -140,8 +158,8 @@ if ($editName !== '') { try { $editDir = safe_input_dir($config['uploads_dir'],

MVLog Admin

-

Videos without input dir

No orphan videos.


MB
-

Existing input dirs

No input directories yet.


· files
Edit
+

Videos without input dir

No orphan videos.


MB
+

Existing input dirs

No input directories yet.


· files
Edit

Edit input dir

in-dir/

Files and captions

No caption for audio files

Add new movie input