✨ Features: - Migrated ALL files to new S3 structure (Projects, Contacts, Accounts, HelpDesk, Invoice, etc.) - Added Nextcloud folder buttons to ALL modules - Fixed Nextcloud editor integration - WebSocket server for real-time updates - Redis Pub/Sub integration - File path manager for organized storage - Redis caching for performance (Functions.php) 📁 New Structure: Documents/Project/ProjectName_ID/file_docID.ext Documents/Contacts/FirstName_LastName_ID/file_docID.ext Documents/Accounts/AccountName_ID/file_docID.ext 🔧 Technical: - FilePathManager for standardized paths - S3StorageService integration - WebSocket server (Node.js + Docker) - Redis cache for getBasicModuleInfo() - Predis library for Redis connectivity 📝 Scripts: - Migration scripts for all modules - Test pages for WebSocket/SSE/Polling - Documentation (MIGRATION_*.md, REDIS_*.md) 🎯 Result: 15,000+ files migrated successfully!
5.5 KiB
5.5 KiB
🚀 SSE СИНХРОНИЗАЦИЯ ФАЙЛОВ - ИНСТРУКЦИЯ ПО НАСТРОЙКЕ
📋 ЧТО СОЗДАНО:
✅ ШАГ 1-4 ЗАВЕРШЕНЫ:
- FilePathManager.php - универсальный класс для генерации путей
- S3StorageService.php - обновлен для поддержки универсальной структуры
- SSE endpoint -
/crm_extensions/file_storage/api/sse_events.php - Webhook endpoint -
/crm_extensions/file_storage/api/nextcloud_webhook.php
🔧 ШАГ 5: НАСТРОЙКА UI ДЛЯ SSE
1. Подключение JavaScript в CRM:
Добавить в основной шаблон CRM (например, layouts/v7/modules/Vtiger/Header.tpl):
<!-- SSE для синхронизации файлов -->
<script type="text/javascript" src="crm_extensions/file_storage/js/file_sync_sse.js"></script>
2. Проверка подключения:
Откройте CRM в браузере → F12 (консоль разработчика) → проверьте:
🔄 Инициализация SSE для синхронизации файлов...
✅ SSE подключение установлено
3. Индикатор статуса:
В правом верхнем углу должен появиться индикатор:
- 🟢 "Файлы синхронизируются" - все работает
- 🟡 "Переподключение..." - временные проблемы
- 🔴 "Синхронизация недоступна" - проблемы с подключением
🔗 ШАГ 6: НАСТРОЙКА NEXTCLOUD WEBHOOK
1. В Nextcloud Admin:
- Перейдите в Settings → Administration → Webhooks
- Добавьте новый 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: (опционально, для безопасности)
- URL:
2. Тестирование webhook:
# Тестовый запрос
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. Запуск тестов:
cd /var/www/fastuser/data/www/crm.clientright.ru
php crm_extensions/file_storage/test_sse_simple.php
2. Проверка логов:
# Логи webhook
tail -f /var/log/crm_nextcloud_webhook.log
# SSE события
tail -f /tmp/crm_sse_events.json
3. Тестирование в браузере:
- Откройте CRM → проект с файлами
- Откройте консоль разработчика (F12)
- Добавьте файл в Nextcloud папку проекта
- Проверьте, что файл появился в 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
🎯 СЛЕДУЮЩИЕ ШАГИ:
- ✅ Настроить UI - добавить JavaScript в CRM
- ✅ Настроить Nextcloud - добавить webhook
- ✅ Протестировать - проверить синхронизацию
- ✅ Мигрировать Contacts - применить к другим модулям
📞 ПОДДЕРЖКА:
При проблемах проверьте:
- Логи:
/var/log/crm_nextcloud_webhook.log - SSE события:
/tmp/crm_sse_events.json - Консоль браузера: F12 → Console
- Тестовый скрипт:
php crm_extensions/file_storage/test_sse_simple.php