6.4 KiB
🔍 Анализ системы шаблонов 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 использует два типа шаблонов:
-
Стандартные шаблоны Nextcloud (
/Templates/)- Доступны через WebDAV
- Форматы: ODT, ODS, ODP
- Стандартные шаблоны из коробки
-
Общие шаблоны 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
Рекомендация:
- Скачать шаблон "Соглашение..." из настроек ONLYOFFICE
- Загрузить его в папку
/Templates/через WebDAV или веб-интерфейс - Теперь он будет доступен через наш API
Преимущества:
- ✅ Единая точка доступа ко всем шаблонам
- ✅ Работает через WebDAV (стандартный протокол)
- ✅ Не зависит от внутренней структуры ONLYOFFICE
Подход 3: Использовать API ONLYOFFICE напрямую (если доступен)
Проверка:
# Попытка получить шаблоны через ONLYOFFICE API
curl "https://office.clientright.ru:8443/index.php/apps/onlyoffice/ajax/templates"
Статус: Не работает (возвращает 404)
📝 Рекомендации
Для использования шаблонов:
-
Создать папку
/crm/Templates/для наших шаблонов:- Хранить типовые документы (претензии, иски, жалобы)
- Использовать формат DOCX с переменными
{VAR_NAME}
-
Использовать существующую папку
/Templates/:- Добавить туда наши шаблоны
- Использовать наш API для получения списка
-
Для "Общих шаблонов" ONLYOFFICE:
- Экспортировать их из настроек ONLYOFFICE
- Загрузить в папку
/Templates/или/crm/Templates/ - Использовать через наш API
🔧 Обновленные скрипты
list_templates.php
- ✅ Исправлен путь на
/Templates/(корень пользователя) - ✅ Работает с WebDAV PROPFIND
- ✅ Возвращает список всех Office файлов
create_from_template.php
- ✅ Исправлен путь на
/Templates/{templateName} - ✅ Скачивает шаблон через WebDAV
- ✅ Заполняет переменные через PHPWord
- ✅ Сохраняет готовый документ
🎯 Выводы
- Шаблоны ONLYOFFICE хранятся в папке
/Templates/в корне пользователя - "Общие шаблоны" ONLYOFFICE могут быть в той же папке или в специальной системе
- Наш подход через WebDAV работает для всех шаблонов в папке
/Templates/ - Рекомендуется: Добавить наши шаблоны в
/Templates/или создать/crm/Templates/для наших документов
📚 Следующие шаги
- Проверить, есть ли шаблон "Соглашение..." в папке
/Templates/ - Если нет - экспортировать из настроек ONLYOFFICE и загрузить в папку
- Протестировать получение списка через
list_templates.php - Использовать шаблоны через
create_from_template.php