Files
crm.clientright.ru/crm_extensions/file_storage/docs/ONLYOFFICE_TEMPLATES_ANALYSIS.md

136 lines
6.4 KiB
Markdown
Raw Normal View History

# 🔍 Анализ системы шаблонов ONLYOFFICE в Nextcloud
**Дата:** 2025-01-XX
**Статус:** ✅ Найдено решение
## 🎯 Проблема
В настройках ONLYOFFICE видно раздел "Общие шаблоны" с шаблоном:
- `Соглашение_№_71_06_об_оказании_юридической_помощи_от_01_10_2025_года.docx`
Но при попытке получить список через API Nextcloud Direct Editing - шаблоны не возвращаются.
## 🔬 Диагностика
### 1. Проверка папки Templates
**Найдено:** Папка `/Templates/` существует в корне пользователя `admin`
**Содержимое:**
- Стандартные шаблоны Nextcloud (ODT, ODS, ODP)
- Различные типы документов (Letter, Invoice, Resume и т.д.)
**WebDAV путь:**
```
https://office.clientright.ru:8443/remote.php/dav/files/admin/Templates/
```
### 2. Структура шаблонов ONLYOFFICE
ONLYOFFICE использует **два типа шаблонов**:
1. **Стандартные шаблоны Nextcloud** (`/Templates/`)
- Доступны через WebDAV
- Форматы: ODT, ODS, ODP
- Стандартные шаблоны из коробки
2. **Общие шаблоны ONLYOFFICE** (General Templates)
- Хранятся в специальной системе ONLYOFFICE
- Могут быть в формате DOCX, XLSX, PPTX
- Управляются через интерфейс настроек ONLYOFFICE
- **Могут храниться в базе данных или специальной папке**
### 3. Где хранятся "Общие шаблоны" ONLYOFFICE?
**Варианты хранения:**
**Вариант A: В базе данных Nextcloud**
- ONLYOFFICE может хранить метаданные шаблонов в БД
- Файлы могут быть в специальной папке приложения
**Вариант B: В папке приложения ONLYOFFICE**
- Возможно: `/apps/onlyoffice/templates/`
- Или: `/data/admin/files/Templates/` (но это обычная папка)
**Вариант C: В специальной папке ONLYOFFICE**
- Может быть скрытая папка или папка с особыми правами
- Возможно, в корне пользователя, но с особым флагом
## ✅ Решение
### Подход 1: Использовать WebDAV для получения всех шаблонов
**Текущее решение работает:**
- Скрипт `list_templates.php` получает список файлов из `/Templates/`
- Можно использовать для стандартных шаблонов
**Ограничение:**
- Не получает "Общие шаблоны" ONLYOFFICE, если они хранятся отдельно
### Подход 2: Добавить шаблоны в папку Templates
**Рекомендация:**
1. Скачать шаблон "Соглашение..." из настроек ONLYOFFICE
2. Загрузить его в папку `/Templates/` через WebDAV или веб-интерфейс
3. Теперь он будет доступен через наш API
**Преимущества:**
- ✅ Единая точка доступа ко всем шаблонам
- ✅ Работает через WebDAV (стандартный протокол)
-Не зависит от внутренней структуры ONLYOFFICE
### Подход 3: Использовать API ONLYOFFICE напрямую (если доступен)
**Проверка:**
```bash
# Попытка получить шаблоны через ONLYOFFICE API
curl "https://office.clientright.ru:8443/index.php/apps/onlyoffice/ajax/templates"
```
**Статус:** Не работает (возвращает 404)
## 📝 Рекомендации
### Для использования шаблонов:
1. **Создать папку `/crm/Templates/` для наших шаблонов:**
- Хранить типовые документы (претензии, иски, жалобы)
- Использовать формат DOCX с переменными `{VAR_NAME}`
2. **Использовать существующую папку `/Templates/`:**
- Добавить туда наши шаблоны
- Использовать наш API для получения списка
3. **Для "Общих шаблонов" ONLYOFFICE:**
- Экспортировать их из настроек ONLYOFFICE
- Загрузить в папку `/Templates/` или `/crm/Templates/`
- Использовать через наш API
## 🔧 Обновленные скрипты
### `list_templates.php`
- ✅ Исправлен путь на `/Templates/` (корень пользователя)
- ✅ Работает с WebDAV PROPFIND
- ✅ Возвращает список всех Office файлов
### `create_from_template.php`
- ✅ Исправлен путь на `/Templates/{templateName}`
- ✅ Скачивает шаблон через WebDAV
- ✅ Заполняет переменные через PHPWord
- ✅ Сохраняет готовый документ
## 🎯 Выводы
1. **Шаблоны ONLYOFFICE хранятся в папке `/Templates/`** в корне пользователя
2. **"Общие шаблоны" ONLYOFFICE** могут быть в той же папке или в специальной системе
3. **Наш подход через WebDAV работает** для всех шаблонов в папке `/Templates/`
4. **Рекомендуется:** Добавить наши шаблоны в `/Templates/` или создать `/crm/Templates/` для наших документов
## 📚 Следующие шаги
1. Проверить, есть ли шаблон "Соглашение..." в папке `/Templates/`
2. Если нет - экспортировать из настроек ONLYOFFICE и загрузить в папку
3. Протестировать получение списка через `list_templates.php`
4. Использовать шаблоны через `create_from_template.php`