Update README with sorting, admin flow, covers and cache-busting
This commit is contained in:
parent
fa3fb2c77c
commit
9635859c2e
22
README.md
22
README.md
|
|
@ -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.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user