Update README with sorting, admin flow, covers and cache-busting

This commit is contained in:
Alex Assistant 2026-02-19 17:42:10 +03:00
parent fa3fb2c77c
commit 9635859c2e

View File

@ -13,15 +13,16 @@
```text ```text
photo-gallery/ photo-gallery/
├─ index.php # основной скрипт: индексация + HTML ├─ index.php # основной скрипт: индексация + HTML
├─ style.css # стили (material-like, строгий) ├─ style.css # стили (material-like, строгий)
├─ app.js # лайтбокс ├─ app.js # лайтбокс + защита от простого скачивания
├─ deploy.php # webhook-триггер деплоя ├─ deploy.php # webhook-триггер деплоя
├─ admin.php # закрытая админка (папки + загрузка фото) ├─ admin.php # закрытая админка (папки/фото/сортировка)
├─ deploy-config.php.example # пример конфига webhook ├─ deploy-config.php.example # пример конфига webhook
├─ photos/ # исходные фото по категориям (папкам) ├─ photos/ # исходные фото по категориям (папкам)
├─ thumbs/ # автогенерируемые превью ├─ thumbs/ # автогенерируемые превью
└─ data/ └─ data/
└─ last_indexed.txt # timestamp последней индексации ├─ last_indexed.txt # timestamp последней индексации
└─ sort.json # порядок категорий и фото
``` ```
## Как работает индексация ## Как работает индексация
@ -37,6 +38,8 @@ photo-gallery/
Индексация выполняется **на каждом обращении к `index.php`**. Индексация выполняется **на каждом обращении к `index.php`**.
Также на публичной странице категории показываются с обложкой (берётся превью первой фотографии по текущей сортировке).
## Требования ## Требования
- PHP 8.2+ (8.3 тоже ок) - PHP 8.2+ (8.3 тоже ок)
@ -117,6 +120,8 @@ https://<домен>/admin.php?token=<твой_секрет>
- максимум 3 МБ на файл, - максимум 3 МБ на файл,
- MIME-тип и расширение проверяются на сервере. - MIME-тип и расширение проверяются на сервере.
Загрузка новых фото выполняется в секции выбранной категории (чтобы нельзя было загрузить в неправильную папку).
## Удалённый запуск деплоя по ссылке (webhook) ## Удалённый запуск деплоя по ссылке (webhook)
1. На хостинге создай конфиг из примера: 1. На хостинге создай конфиг из примера:
@ -142,4 +147,5 @@ https://<домен>/deploy.php?token=<твой_секрет>
- Превью генерируются в формате JPEG с качеством ~82. - Превью генерируются в формате JPEG с качеством ~82.
- При первом заходе на большую папку возможно небольшое ожидание (генерация превью). - При первом заходе на большую папку возможно небольшое ожидание (генерация превью).
- CSS/JS подключаются с cache-busting параметром `?v=<filemtime>`, чтобы после деплоя пользователю не приходилось чистить кеш вручную.
- Для production обычно лучше вынести индексацию в cron/очередь, но для текущей задачи это intentionally on-request. - Для production обычно лучше вынести индексацию в cron/очередь, но для текущей задачи это intentionally on-request.