2025-09-26 10:43:05 +03:00
|
|
|
|
# ✏️ Nextcloud Editor Integration
|
|
|
|
|
|
|
|
|
|
|
|
Интеграция редактора документов Nextcloud с vTiger CRM
|
|
|
|
|
|
|
|
|
|
|
|
## 🎯 Функциональность
|
|
|
|
|
|
|
|
|
|
|
|
### ✅ Что реализовано:
|
|
|
|
|
|
- **Кнопка "Редактировать"** в превью документов
|
|
|
|
|
|
- **Автоматическая подготовка** файлов для редактирования
|
|
|
|
|
|
- **Встроенный редактор** в модальном окне CRM
|
|
|
|
|
|
- **Синхронизация изменений** обратно в систему
|
|
|
|
|
|
- **Поддержка форматов**: DOC, DOCX, XLS, XLSX, PPT, PPTX, ODT, ODS, ODP, TXT
|
|
|
|
|
|
|
|
|
|
|
|
### 🔄 Workflow:
|
|
|
|
|
|
1. Пользователь нажимает "Редактировать" в CRM
|
|
|
|
|
|
2. Файл копируется в Nextcloud (если не там)
|
|
|
|
|
|
3. Создаётся ссылка для редактирования
|
|
|
|
|
|
4. Открывается встроенный редактор OnlyOffice/Collabora
|
|
|
|
|
|
5. После редактирования - синхронизация в S3 и CRM
|
|
|
|
|
|
|
|
|
|
|
|
## 🏗️ Архитектура
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
vTiger CRM Documents Module
|
|
|
|
|
|
↓
|
|
|
|
|
|
FileStorageManager
|
|
|
|
|
|
↓
|
|
|
|
|
|
┌─────────────────┬─────────────────┐
|
|
|
|
|
|
│ S3 Storage │ Nextcloud │
|
|
|
|
|
|
│ (Долгосрочное │ (Активное │
|
|
|
|
|
|
│ хранение) │ редактирование) │
|
|
|
|
|
|
└─────────────────┴─────────────────┘
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 📁 Файлы интеграции
|
|
|
|
|
|
|
|
|
|
|
|
### PHP Backend:
|
|
|
|
|
|
- `file_storage/NextcloudClient.php` - WebDAV клиент
|
|
|
|
|
|
- `file_storage/S3Client.php` - S3 клиент
|
|
|
|
|
|
- `file_storage/FileStorageManager.php` - координатор
|
|
|
|
|
|
- `modules/Documents/views/NextcloudEdit.php` - vTiger представление
|
|
|
|
|
|
|
|
|
|
|
|
### Frontend:
|
|
|
|
|
|
- `nextcloud_editor/js/nextcloud-editor.js` - JavaScript интеграция
|
|
|
|
|
|
- `layouts/v7/modules/Documents/FilePreview.tpl` - модифицированный шаблон
|
|
|
|
|
|
|
|
|
|
|
|
### Конфигурация:
|
|
|
|
|
|
- `.env` - секретные данные
|
|
|
|
|
|
- `file_storage/config.php` - настройки интеграции
|
|
|
|
|
|
|
|
|
|
|
|
## 🧪 Тестирование
|
|
|
|
|
|
|
|
|
|
|
|
### Автоматические тесты:
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# Тест S3
|
|
|
|
|
|
php crm_extensions/tests/test_s3_simple.php
|
|
|
|
|
|
|
|
|
|
|
|
# Тест Nextcloud
|
|
|
|
|
|
php crm_extensions/tests/test_nextcloud.php
|
|
|
|
|
|
|
|
|
|
|
|
# Полный тест интеграции
|
|
|
|
|
|
открыть: /crm_extensions/tests/test_full_integration.html
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Ручное тестирование:
|
|
|
|
|
|
1. Откройте любой документ в CRM
|
|
|
|
|
|
2. Нажмите "Просмотр"
|
|
|
|
|
|
3. Должна появиться кнопка "Редактировать"
|
|
|
|
|
|
4. Нажмите кнопку - откроется редактор
|
|
|
|
|
|
5. Внесите изменения и синхронизируйте
|
|
|
|
|
|
|
|
|
|
|
|
## 🔧 Настройка
|
|
|
|
|
|
|
|
|
|
|
|
### Требования к Nextcloud:
|
|
|
|
|
|
- ✅ Nextcloud AIO установлен
|
|
|
|
|
|
- ✅ OnlyOffice или Collabora Online настроен
|
|
|
|
|
|
- ✅ Пользователь с правами WebDAV
|
|
|
|
|
|
- ✅ Папка `/CRM_Active_Files/` создана
|
|
|
|
|
|
|
|
|
|
|
|
### Переменные .env:
|
|
|
|
|
|
```bash
|
2025-10-20 17:17:34 +03:00
|
|
|
|
NEXTCLOUD_URL=https://office.clientright.ru
|
2025-09-26 10:43:05 +03:00
|
|
|
|
NEXTCLOUD_USERNAME=admin
|
|
|
|
|
|
NEXTCLOUD_PASSWORD=ваш_app_password
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Поддерживаемые форматы:
|
|
|
|
|
|
- **Документы**: .doc, .docx, .odt, .rtf, .txt
|
|
|
|
|
|
- **Таблицы**: .xls, .xlsx, .ods, .csv
|
|
|
|
|
|
- **Презентации**: .ppt, .pptx, .odp
|
|
|
|
|
|
- **Текст**: .txt, .md, .html
|
|
|
|
|
|
|
|
|
|
|
|
## 🚀 Использование
|
|
|
|
|
|
|
|
|
|
|
|
### Для пользователей:
|
|
|
|
|
|
1. Откройте документ в CRM
|
|
|
|
|
|
2. Нажмите "Просмотр"
|
|
|
|
|
|
3. Нажмите "Редактировать"
|
|
|
|
|
|
4. Редактируйте в браузере
|
|
|
|
|
|
5. Нажмите "Синхронизировать изменения"
|
|
|
|
|
|
|
|
|
|
|
|
### Для разработчиков:
|
|
|
|
|
|
```javascript
|
|
|
|
|
|
// Открытие редактора программно
|
|
|
|
|
|
openNextcloudEditor(recordId, fileName);
|
|
|
|
|
|
|
|
|
|
|
|
// Синхронизация изменений
|
|
|
|
|
|
syncFileChanges(recordId, fileName);
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 🔒 Безопасность
|
|
|
|
|
|
|
|
|
|
|
|
- ✅ Аутентификация через app password
|
|
|
|
|
|
- ✅ Временные ссылки для редактирования
|
|
|
|
|
|
- ✅ Контроль доступа через роли CRM
|
|
|
|
|
|
- ✅ Автоматическая очистка временных файлов
|
|
|
|
|
|
|
|
|
|
|
|
## 📈 Преимущества
|
|
|
|
|
|
|
|
|
|
|
|
### Для пользователей:
|
|
|
|
|
|
- **Совместное редактирование** документов
|
|
|
|
|
|
- **Версионирование** файлов
|
|
|
|
|
|
- **Онлайн редактирование** без скачивания
|
|
|
|
|
|
- **Интеграция с CRM** workflow
|
|
|
|
|
|
|
|
|
|
|
|
### Для бизнеса:
|
|
|
|
|
|
- **Повышение продуктивности** команды
|
|
|
|
|
|
- **Централизованное управление** документами
|
|
|
|
|
|
- **Соответствие требованиям** безопасности
|
|
|
|
|
|
- **Масштабируемость** решения
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
*Интеграция готова к использованию!*
|