WordPress-плагин Med Diagnostics: шорткод, настройки, камерное сканирование
This commit is contained in:
commit
106b4bf1c0
4 files changed
+975
No files matched your search
@@ -0,0 +1,83 @@
|
||||
# Med Diagnostics — WordPress-плагин
|
||||
|
||||
Интеграция сервиса «Диагностика по видео» (API-бэкенд med.my-dpr.ru) в WordPress.
|
||||
Плагин выводит вёрстку сервиса (загрузка видео, сканирование с камеры, результат) прямо на странице сайта — без iframe.
|
||||
|
||||
## Установка
|
||||
|
||||
### Вариант 1: через админку (zip)
|
||||
|
||||
```bash
|
||||
# из корня репозитория (папка репозитория = папка плагина)
|
||||
zip -r med-diagnostics.zip . -x README.md
|
||||
```
|
||||
|
||||
1. В админке WordPress: **Плагины → Добавить новый → Загрузить плагин** → выберите `med-diagnostics.zip` → **Установить** → **Активировать**.
|
||||
|
||||
### Вариант 2: копированием файлов
|
||||
|
||||
1. Скопируйте содержимое репозитория в `wp-content/plugins/med-diagnostics/` вашего WordPress.
|
||||
2. В админке: **Плагины → Установленные** → активируйте **Med Diagnostics**.
|
||||
|
||||
### Использование
|
||||
|
||||
Вставьте шорткод в нужную страницу/запись:
|
||||
|
||||
```
|
||||
[med_diagnostics]
|
||||
```
|
||||
|
||||
Дополнительно можно задать заголовок:
|
||||
|
||||
```
|
||||
[med_diagnostics title="Проверь своё здоровье"]
|
||||
```
|
||||
|
||||
## Настройки
|
||||
|
||||
**Настройки → Med Diagnostics** — поле «URL API-бэкенда» (по умолчанию `https://med.my-dpr.ru`).
|
||||
Можно также переопределить кодом:
|
||||
|
||||
```php
|
||||
add_filter('med_diag_api_url', fn() => 'https://другой-домен.ru');
|
||||
```
|
||||
|
||||
## Как это работает
|
||||
|
||||
- Плагин выводит ту же вёрстку, что и главная страница сервиса (стили с префиксом `med-`, чтобы не конфликтовать с темой).
|
||||
- JS отправляет видео на API-бэкенд (`POST /analyze`) с абсолютным URL — поэтому нужен CORS на стороне Flask.
|
||||
- Результат (сводка, показатели, рекомендации, кнопки PDF/DOCX/видео/поделиться) рендерится на странице WordPress.
|
||||
- Сканирование с камеры работает на мобильных (canvas 720×720 + MediaRecorder).
|
||||
|
||||
## Требования к бэкенду (Flask)
|
||||
|
||||
В `app.py` серверного репозитория уже добавлена поддержка CORS:
|
||||
|
||||
- `Access-Control-Allow-Origin` — по умолчанию `*`, можно ограничить через env `CORS_ORIGINS` (список через запятую, например `https://site1.ru,https://site2.ru`).
|
||||
- Preflight `OPTIONS /analyze` возвращает `204`.
|
||||
|
||||
## Локальное тестирование
|
||||
|
||||
1. Поднимите API-бэкенд локально (см. README серверного репозитория) или используйте прод `https://med.my-dpr.ru`.
|
||||
2. Установите плагин в локальный WordPress (например, на `http://wp.loc` через Apache vhost).
|
||||
3. Создайте страницу с шорткодом `[med_diagnostics]` и откройте её.
|
||||
4. Проверьте в консоли браузера, что `MED_DIAG.apiUrl` указывает на нужный бэкенд, и что запрос `POST /analyze` проходит (CORS).
|
||||
|
||||
## Ограничения
|
||||
|
||||
- Шорткод используйте **один раз на странице** (id элементов фиксированы).
|
||||
- Для работы сканирования с камеры нужен HTTPS на сайте WordPress (getUserMedia требует secure context).
|
||||
- Загрузка видео идёт напрямую в API-бэкенд — убедитесь, что `client_max_body_size` в nginx бэкенда ≥ 100 МБ.
|
||||
|
||||
## Структура
|
||||
|
||||
Корень репозитория = папка плагина:
|
||||
|
||||
```
|
||||
med-diagnostics/
|
||||
├── med-diagnostics.php — главный файл плагина (шорткод, настройки, ассеты)
|
||||
├── README.md — этот файл (в zip не попадает)
|
||||
└── assets/
|
||||
├── css/med-diag.css — стили сервиса (префикс med-)
|
||||
└── js/med-diag.js — логика (fetch на API, сканирование, рендер результата)
|
||||
```
|
||||
Reference in new issue
Block a user