b3ac9491f68a41f461b8fe045282f8fbd474d6dc
Med Diagnostics — WordPress-плагин
Репозиторий: https://git.itguild.info/apuc/sber-med-wordpress
Интеграция сервиса «Диагностика по видео» (API-бэкенд med.my-dpr.ru) в WordPress. Плагин выводит вёрстку сервиса (загрузка видео, сканирование с камеры, результат) прямо на странице сайта — без iframe.
Установка
Вариант 1: через админку (zip)
# из корня репозитория (папка репозитория = папка плагина)
zip -r med-diagnostics.zip . -x README.md
- В админке WordPress: Плагины → Добавить новый → Загрузить плагин → выберите
med-diagnostics.zip→ Установить → Активировать.
Вариант 2: копированием файлов
- Скопируйте содержимое репозитория в
wp-content/plugins/med-diagnostics/вашего WordPress. - В админке: Плагины → Установленные → активируйте Med Diagnostics.
Использование
Вставьте шорткод в нужную страницу/запись:
[med_diagnostics]
Дополнительно можно задать заголовок:
[med_diagnostics title="Проверь своё здоровье"]
Настройки
Настройки → Med Diagnostics — поле «URL API-бэкенда» (по умолчанию https://med.my-dpr.ru).
Можно также переопределить кодом:
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— по умолчанию*, можно ограничить через envCORS_ORIGINS(список через запятую, напримерhttps://site1.ru,https://site2.ru).- Preflight
OPTIONS /analyzeвозвращает204.
Локальное тестирование
- Поднимите API-бэкенд локально (см. README серверного репозитория) или используйте прод
https://med.my-dpr.ru. - Установите плагин в локальный WordPress (например, на
http://wp.locчерез Apache vhost). - Создайте страницу с шорткодом
[med_diagnostics]и откройте её. - Проверьте в консоли браузера, что
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, сканирование, рендер результата)
Description
WordPress-плагин Med Diagnostics: шорткод [med_diagnostics], камерное сканирование, интеграция с API-бэкендом
175 KiB
0 Stars
1 Watchers
0 Forks
Languages
PHP
42.6%
JavaScript
36.4%
CSS
21%