Files
crm.clientright.ru/СОЗДАНИЕ_ФАЙЛОВ_В_NEXTCLOUD_ИЗ_CRM.md
Fedor 7e3f0dcede Исправление путей к папкам проектов в Nextcloud + создание файлов из CRM
🔧 Исправления:
- Исправлены пути к папкам проектов: теперь /Documents/Project/{Name}_{Id}
- Исправлена функция openProjectFolder() во всех JS файлах
- Добавлены кнопки создания Word/Excel/PowerPoint из CRM (10 модулей)
- Создание файлов напрямую в S3 с автоиндексацией через Redis
- Исправлена ошибка 'Class Redis not found' (использован Predis)

📁 Изменённые файлы:
- layouts/v7/lib/nextcloud-editor.js
- crm_extensions/nextcloud_editor/js/nextcloud-editor.js
- layouts/v7/lib/nextcloud-editor-v3.js
- crm_extensions/file_storage/api/create_nextcloud_file.php
- layouts/v7/modules/*/DetailViewHeaderTitle.tpl (10 модулей)
- layouts/v7/modules/Documents/*.tpl (кнопки редактирования)

🎯 Результат:
- Кнопка 'Папка в Nextcloud' открывает правильную папку
- Создание файлов работает молниеносно (прямо в S3)
- Redis события публикуются корректно
- OnlyOffice открывается для редактирования

Проект 391552 теперь открывается по правильному пути!
2025-11-01 12:22:12 +03:00

10 KiB
Raw Blame History

Создание файлов в Nextcloud из CRM

Дата: 1 ноября 2025
Цель: Добавить возможность создания новых Office файлов в Nextcloud прямо из CRM


Что сделано

1. Добавлена функция createFileInNextcloud() в JavaScript

Файл: layouts/v7/lib/nextcloud-editor.js

Что делает:

  • Запрашивает имя файла у пользователя
  • Формирует путь к папке записи
  • Редиректит в Nextcloud для создания файла
  • Nextcloud создаёт файл и открывает в OnlyOffice

2. Добавлены кнопки создания в 9 модулей

Модули с кнопками:

  1. Project (Проекты)
  2. Contacts (Контакты)
  3. Accounts (Контрагенты)
  4. Potentials (Сделки)
  5. Leads (Лиды)
  6. HelpDesk (Тикеты)
  7. Invoice (Счета)
  8. Quotes (Коммерческие предложения)
  9. SalesOrder (Заказы на продажу)
  10. PurchaseOrder (Заказы на закупку)

3. Расположение кнопок

Рядом с кнопкой "Папка в Nextcloud":

[📁 Папка в Nextcloud] [📄] [📊] [📽️]
                        ↑   ↑   ↑
                      Word Excel PPT

Иконки:

  • 📄 fa-file-word-o (синяя) - создать .docx
  • 📊 fa-file-excel-o (зелёная) - создать .xlsx
  • 📽️ fa-file-powerpoint-o (красная) - создать .pptx

🔄 Как работает

Шаг 1: Пользователь нажимает иконку (например, 📄 Word)

createFileInNextcloud('Project', '12345', оговор_с_клиентом', 'docx')

Шаг 2: Появляется диалог

Введите название файла (без расширения):
[Документ_2025-11-01                      ] [OK] [Отмена]

Шаг 3: Скрипт формирует путь

Module: Project
Record ID: 12345
Record Name: Договор_с_клиентом
File Name: Документ_2025-11-01
File Type: docx

Nextcloud Path:
/crm/crm2/CRM_Active_Files/Documents/Project/Договор_с_клиентом_12345/Документ_2025-11-01.docx

Шаг 4: Редирект в Nextcloud

https://office.clientright.ru:8443/apps/files/?
  dir=/crm/crm2/CRM_Active_Files/Documents/Project/Договор_с_клиентом_12345
  &openfile=Документ_2025-11-01.docx
  &filetype=docx

Шаг 5: Nextcloud создаёт файл

Nextcloud обнаруживает параметр openfile
     ↓
Создаёт пустой .docx файл
     ↓
Открывает в OnlyOffice для редактирования
     ↓
Пользователь начинает работу! ✅

🎨 Внешний вид

В детальном виде записи (под названием):

┌─────────────────────────────────────┐
│  🏢 Контрагент: ООО "Ромашка"      │
│  ИНН: 1234567890                    │
├─────────────────────────────────────┤
│  [📁 Папка в Nextcloud] [📄] [📊] [📽️] │
└─────────────────────────────────────┘

📂 Куда сохраняются файлы

Структура папок по модулям:

/crm/crm2/CRM_Active_Files/Documents/
├── Project/
│   └── Название_проекта_ID/
│       └── Новый_файл.docx  ← Создаётся здесь
├── Contacts/
│   └── Имя_Фамилия_ID/
│       └── Новый_файл.xlsx
├── Accounts/
│   └── Названиеомпании_ID/
│       └── Новый_файл.pptx
├── Invoice/
│   └── Invoice_номер_ID/
│       └── Новый_файл.docx
└── ... и т.д.

Логика:

  • Каждая запись → своя папка
  • Имя папки = {RecordName}_{RecordID}
  • Файлы автоматически привязываются к папке записи

🧪 Как протестировать

Шаг 1: Обнови страницу CRM

Ctrl+F5

Шаг 2: Открой любую запись

Например:
- Проект → откроетсякарточка
- Контакт → откроется карточка
- Контрагент → откроется карточка

Шаг 3: Найди кнопки под названием

[📁 Папка в Nextcloud] [📄] [📊] [📽️]

Шаг 4: Нажми на иконку (например, 📄 Word)

1. Появится диалог с именем файла
2. Введи название (или оставь по умолчанию)
3. Нажми OK
4. Откроется Nextcloud → файл создастся → откроется OnlyOffice! ✅

🎯 Примеры использования

Пример 1: Создание договора для проекта

1. Открой проект "Разработка сайта"
2. Нажми иконку 📄 (Word)
3. Введи: "Договора_разработку"
4. Файл создастся в:
   /Documents/Project/Разработка_сайта_12345/Договора_разработку.docx
5. Откроется OnlyOffice для редактирования
6. Заполни договор
7. Автосохранение → файл в Nextcloud + версия!

Пример 2: Создание таблицы для контакта

1. Открой контакт "Иванов Иван"
2. Нажми иконку 📊 (Excel)
3. Введи: "Расчёт_стоимости"
4. Файл создастся в:
   /Documents/Contacts/Иван_Иванов_67890/Расчёт_стоимости.xlsx
5. Заполни таблицу в OnlyOffice

Пример 3: Создание презентации для сделки

1. Открой сделку "Поставка оборудования"
2. Нажми иконку 📽️ (PowerPoint)
3. Введи: "Презентация_продукта"
4. Файл создастся в:
   /Documents/Potentials/Поставка_оборудования_11111/Презентация_продукта.pptx
5. Создай презентацию в OnlyOffice

📊 Где видны кнопки

Модуль Где кнопки Иконки
Project Детальный вид 📁 📄 📊 📽️
Contacts Детальный вид 📁 📄 📊 📽️
Accounts Детальный вид 📁 📄 📊 📽️
Potentials Детальный вид 📁 📄 📊 📽️
Leads Детальный вид 📁 📄 📊 📽️
HelpDesk Детальный вид 📁 📄 📊 📽️
Invoice Детальный вид 📁 📄 📊 📽️
Quotes Детальный вид 📁 📄 📊 📽️
SalesOrder Детальный вид 📁 📄 📊 📽️
PurchaseOrder Детальный вид 📁 📄 📊 📽️

🔧 Технические детали

Файлы:

1. JavaScript функция:

// layouts/v7/lib/nextcloud-editor.js
function createFileInNextcloud(module, recordId, recordName, fileType) {
    // Запрашивает имя файла
    // Вызывает create_nextcloud_file.php
    // Открывает в новом окне
}

2. PHP скрипт:

// crm_extensions/file_storage/api/create_nextcloud_file.php
// Формирует путь к файлу в Nextcloud
// Редиректит в Nextcloud Files UI
// Nextcloud создаёт файл и открывает редактор

3. Шаблоны (10 файлов):

layouts/v7/modules/*/DetailViewHeaderTitle.tpl

🐛 Если не работает

Проблема 1: Кнопки не появились

# Очистить кеш Smarty
rm -rf /var/www/fastuser/data/www/crm.clientright.ru/test/templates_c/v7/*

# Обновить страницу CRM
Ctrl+F5

Проблема 2: Файл не создаётся

- Проверь что папка записи существует в Nextcloud
- Проверь права доступа
- Посмотри логи: tail -f /var/log/apache2/error.log | grep "CREATE NEXTCLOUD FILE"

Проблема 3: OnlyOffice не открывается

- Проверь что OnlyOffice приложение включено в Nextcloud
- docker exec -u www-data nextcloud-fresh php occ app:list | grep onlyoffice

🎯 Итог

Что работает:

  1. Редактирование через CRM

    • Прямой OnlyOffice (1-2 сек)
    • 📚 Через Nextcloud (3-5 сек, с версиями)
  2. Создание новых файлов

    • 📄 Word (.docx)
    • 📊 Excel (.xlsx)
    • 📽️ PowerPoint (.pptx)
    • Прямо из карточки записи!
    • Автоматическое сохранение в правильную папку!
  3. Версионирование

    • Файлы созданные через Nextcloud имеют историю
    • Можно откатить изменения
    • Можно посмотреть кто и когда редактировал

Изменённые файлы (всего 11):

  • layouts/v7/lib/nextcloud-editor.js
  • 10 шаблонов DetailViewHeaderTitle.tpl

Созданные файлы:

  • crm_extensions/file_storage/api/create_nextcloud_file.php

Обнови страницу CRM (Ctrl+F5) и попробуй создать файл! 🚀

Нажми на любую иконку (📄 📊 📽️) и увидишь магию!