!gallery_is_expired($g))); $stats = array_map(fn($g) => gallery_stats($g['slug']), $galleries); $views = array_sum(array_column($stats, 'views')); $downloads = array_sum(array_column($stats, 'downloads')); // Computed from the galleries already loaded above rather than by rescanning: // this is the page an operator lands on after an update, so it is where a // pending migration should announce itself. $pending = array_filter($galleries, fn($g) => migrate_pending_for($g) !== []); admin_header('Dashboard'); flash_render(); ?>
| Showreel images | = count($site['showreel'] ?? []) ?> | Manage → |
| Galleries | = count($galleries) ?> (= $active ?> active) | Manage → |
| Gallery views | = $views ?> | Per gallery → |
| Archive downloads | = $downloads ?> | Per gallery → |
| Front page | = e($site['intro_title']) ?> | Edit → |
| Data format | = $pending === [] ? 'up to date (v' . (int)SCHEMA_VERSION . ')' : count($pending) . ' pending' ?> | Migration → |
| Software version | = e(APP_VERSION) ?> | Update & backup → |
Tip: create a gallery under Galleries, then share its link with your client. Password and expiry date are optional per gallery.