# 🚀 SSE СИНХРОНИЗАЦИЯ ФАЙЛОВ - ИНСТРУКЦИЯ ПО НАСТРОЙКЕ ## 📋 ЧТО СОЗДАНО: ### ✅ **ШАГ 1-4 ЗАВЕРШЕНЫ:** 1. **FilePathManager.php** - универсальный класс для генерации путей 2. **S3StorageService.php** - обновлен для поддержки универсальной структуры 3. **SSE endpoint** - `/crm_extensions/file_storage/api/sse_events.php` 4. **Webhook endpoint** - `/crm_extensions/file_storage/api/nextcloud_webhook.php` --- ## 🔧 **ШАГ 5: НАСТРОЙКА UI ДЛЯ SSE** ### **1. Подключение JavaScript в CRM:** Добавить в основной шаблон CRM (например, `layouts/v7/modules/Vtiger/Header.tpl`): ```html ``` ### **2. Проверка подключения:** Откройте CRM в браузере → F12 (консоль разработчика) → проверьте: ``` 🔄 Инициализация SSE для синхронизации файлов... ✅ SSE подключение установлено ``` ### **3. Индикатор статуса:** В правом верхнем углу должен появиться индикатор: - 🟢 **"Файлы синхронизируются"** - все работает - 🟡 **"Переподключение..."** - временные проблемы - 🔴 **"Синхронизация недоступна"** - проблемы с подключением --- ## 🔗 **ШАГ 6: НАСТРОЙКА NEXTCLOUD WEBHOOK** ### **1. В Nextcloud Admin:** 1. Перейдите в **Settings** → **Administration** → **Webhooks** 2. Добавьте новый webhook: - **URL**: `https://crm.clientright.ru/crm_extensions/file_storage/api/nextcloud_webhook.php` - **Events**: `file_created`, `file_updated`, `file_deleted`, `folder_renamed`, `folder_deleted` - **Secret**: (опционально, для безопасности) ### **2. Тестирование webhook:** ```bash # Тестовый запрос curl -X POST https://crm.clientright.ru/crm_extensions/file_storage/api/nextcloud_webhook.php \ -H "Content-Type: application/json" \ -d '{ "action": "file_created", "file_path": "crm2/CRM_Active_Files/Documents/Project_123/test_file_456.pdf", "project_id": "123" }' ``` --- ## 🧪 **ТЕСТИРОВАНИЕ:** ### **1. Запуск тестов:** ```bash cd /var/www/fastuser/data/www/crm.clientright.ru php crm_extensions/file_storage/test_sse_simple.php ``` ### **2. Проверка логов:** ```bash # Логи webhook tail -f /var/log/crm_nextcloud_webhook.log # SSE события tail -f /tmp/crm_sse_events.json ``` ### **3. Тестирование в браузере:** 1. Откройте CRM → проект с файлами 2. Откройте консоль разработчика (F12) 3. Добавьте файл в Nextcloud папку проекта 4. Проверьте, что файл появился в CRM без перезагрузки --- ## 📁 **СТРУКТУРА ФАЙЛОВ:** ``` crm_extensions/file_storage/ ├── api/ │ ├── sse_events.php # SSE endpoint │ └── nextcloud_webhook.php # Webhook endpoint ├── js/ │ └── file_sync_sse.js # JavaScript клиент ├── FilePathManager.php # Универсальный менеджер путей ├── test_sse_simple.php # Тестовый скрипт └── README_SSE_SETUP.md # Эта инструкция ``` --- ## 🔄 **КАК РАБОТАЕТ:** ### **1. Файл добавлен в Nextcloud:** ``` Nextcloud → Webhook → CRM API → SSE → Браузер → UI обновляется ``` ### **2. Файл добавлен в CRM:** ``` CRM → S3 → Nextcloud → Webhook → SSE → UI обновляется ``` ### **3. Переименование папки:** ``` Nextcloud → Webhook → CRM обновляет БД → SSE → UI обновляется ``` --- ## ⚠️ **ВОЗМОЖНЫЕ ПРОБЛЕМЫ:** ### **1. SSE не подключается:** - Проверьте права доступа к файлам - Проверьте настройки PHP (timeout, memory) - Проверьте логи веб-сервера ### **2. Webhook не работает:** - Проверьте URL в Nextcloud - Проверьте логи: `/var/log/crm_nextcloud_webhook.log` - Проверьте права доступа к файлам ### **3. Файлы не синхронизируются:** - Проверьте подключение к S3 - Проверьте права доступа к папкам - Проверьте логи FilePathManager --- ## 🎯 **СЛЕДУЮЩИЕ ШАГИ:** 1. ✅ **Настроить UI** - добавить JavaScript в CRM 2. ✅ **Настроить Nextcloud** - добавить webhook 3. ✅ **Протестировать** - проверить синхронизацию 4. ✅ **Мигрировать Contacts** - применить к другим модулям --- ## 📞 **ПОДДЕРЖКА:** При проблемах проверьте: - Логи: `/var/log/crm_nextcloud_webhook.log` - SSE события: `/tmp/crm_sse_events.json` - Консоль браузера: F12 → Console - Тестовый скрипт: `php crm_extensions/file_storage/test_sse_simple.php`