Files
crm.clientright.ru/crm_extensions/file_storage/api/get_edit_urls.php
Fedor 76abcbc70b fix: ПРАВИЛЬНАЯ миграция путей Nextcloud /crm2/ → /crm/crm2/
ИСПРАВЛЕНИЕ: На новом Nextcloud S3 примонтирован как /crm, но внутри папка crm2
Правильный путь: /crm/crm2/CRM_Active_Files/

Выполнено в БД (rollback_and_fix.sql):
- Откат предыдущей неправильной миграции из backup
- s3_key: crm2/ → crm/crm2/ (17386 записей)
- nc_path: /crm2/crm2/ → /crm/crm2/ (72 записи)
- nc_path: /crm2/ → /crm/crm2/ (все остальные)

Обновлены файлы кода:
- crm_extensions/file_storage/config.php: active_folder = /crm/crm2/CRM_Active_Files/
- crm_extensions/nextcloud_editor/js/nextcloud-editor.js (5 путей)
- crm_extensions/file_storage/api/get_edit_urls.php (6 путей)
- modules/Documents/actions/NcPrepareEdit.php (2 пути)
- crm_extensions/file_storage/api/prepare_edit.php (1 путь)
- crm_extensions/file_storage/NextcloudClient.php (1 путь)

Документ 395695:
- s3_key: crm/crm2/CRM_Active_Files/Documents/395695/zayavlenie_proekt.docx ✓
- nc_path: /crm/crm2/CRM_Active_Files/Documents/395695/zayavlenie_proekt.docx ✓
2025-10-20 18:54:33 +03:00

54 lines
2.2 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* API для получения различных вариантов URL для редактирования
*/
// Устанавливаем заголовки
header('Content-Type: application/json; charset=utf-8');
try {
// Получаем параметры
$recordId = $_GET['recordId'] ?? 'test';
$fileName = $_GET['fileName'] ?? 'test.docx';
// Декодируем URL-кодированное имя файла
if ($fileName) {
$fileName = urldecode($fileName);
}
// Используем хардкод базового URL для избежания проблем с конфигом
$baseUrl = 'https://office.clientright.ru';
// Отладочная информация
error_log("get_edit_urls.php: recordId=$recordId, fileName=$fileName");
// Создаем различные варианты URL
$urls = [
'direct_edit' => $baseUrl . '/apps/files/files/662?dir=/crm/crm2/CRM_Active_Files/Documents/' . $recordId . '&openfile=' . urlencode($fileName) . '&action=edit',
'openfile_only' => $baseUrl . '/apps/files/files/662?dir=/crm/crm2/CRM_Active_Files/Documents/' . $recordId . '&openfile=' . urlencode($fileName),
'edit_true' => $baseUrl . '/apps/files/files/662?dir=/crm/crm2/CRM_Active_Files/Documents/' . $recordId . '&openfile=' . urlencode($fileName) . '&edit=true',
'richdocuments' => $baseUrl . '/apps/richdocuments/open?path=/crm/crm2/CRM_Active_Files/Documents/' . $recordId . '/' . urlencode($fileName),
'onlyoffice' => $baseUrl . '/apps/onlyoffice/open?path=/crm/crm2/CRM_Active_Files/Documents/' . $recordId . '/' . urlencode($fileName),
'files_app' => $baseUrl . '/apps/files/?dir=/crm/crm2/CRM_Active_Files/Documents/' . $recordId . '&openfile=' . urlencode($fileName) . '&action=edit'
];
echo json_encode([
'success' => true,
'data' => [
'record_id' => $recordId,
'file_name' => $fileName,
'urls' => $urls,
'recommended' => 'direct_edit'
]
]);
} catch (Exception $e) {
http_response_code(500);
echo json_encode([
'success' => false,
'error' => $e->getMessage()
]);
}
?>