Files
sber-med-wordpress/README.md
T

83 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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, сканирование, рендер результата)
```