Files
crm.clientright.ru/crm_extensions/file_storage/README_SSE_SETUP.md
Fedor 9245768987 🚀 CRM Files Migration & Real-time Features
 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!
2025-10-24 19:59:28 +03:00

5.5 KiB
Raw Blame History

🚀 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):

<!-- 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:

  1. Перейдите в SettingsAdministrationWebhooks
  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:

# Тестовый запрос
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. Тестирование в браузере:

  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