Исправление путей к папкам проектов в 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 теперь открывается по правильному пути!
This commit is contained in:
Fedor
2025-11-01 12:22:12 +03:00
parent 3a1635ec4d
commit 7e3f0dcede
117 changed files with 2520 additions and 2034 deletions

View File

@@ -1,6 +1,6 @@
<?php /* Smarty version Smarty-3.1.7, created on 2025-10-31 22:47:41
<?php /* Smarty version Smarty-3.1.7, created on 2025-11-01 12:18:42
compiled from "/var/www/fastuser/data/www/crm.clientright.ru/includes/runtime/../../layouts/v7/modules/Vtiger/SummaryViewContents.tpl" */ ?>
<?php /*%%SmartyHeaderCode:648976786905125dcb3c70-71849743%%*/if(!defined('SMARTY_DIR')) exit('no direct access allowed');
<?php /*%%SmartyHeaderCode:857680946905d0726dfb54-50844076%%*/if(!defined('SMARTY_DIR')) exit('no direct access allowed');
$_valid = $_smarty_tpl->decodeProperties(array (
'file_dependency' =>
array (
@@ -11,7 +11,7 @@ $_valid = $_smarty_tpl->decodeProperties(array (
2 => 'file',
),
),
'nocache_hash' => '648976786905125dcb3c70-71849743',
'nocache_hash' => '857680946905d0726dfb54-50844076',
'function' =>
array (
),
@@ -30,9 +30,9 @@ $_valid = $_smarty_tpl->decodeProperties(array (
),
'has_nocache_code' => false,
'version' => 'Smarty-3.1.7',
'unifunc' => 'content_6905125dcc854',
'unifunc' => 'content_6905d0726fdc4',
),false); /*/%%SmartyHeaderCode%%*/?>
<?php if ($_valid && !is_callable('content_6905125dcc854')) {function content_6905125dcc854($_smarty_tpl) {?>
<?php if ($_valid && !is_callable('content_6905d0726fdc4')) {function content_6905d0726fdc4($_smarty_tpl) {?>
<?php if (!empty($_smarty_tpl->tpl_vars['PICKIST_DEPENDENCY_DATASOURCE']->value)){?><input type="hidden" name="picklistDependency" value='<?php echo Vtiger_Util_Helper::toSafeHTML($_smarty_tpl->tpl_vars['PICKIST_DEPENDENCY_DATASOURCE']->value);?>
' /><?php }?><table class="summary-table no-border"><tbody><?php $_smarty_tpl->tpl_vars['FIELD_MODEL'] = new Smarty_Variable; $_smarty_tpl->tpl_vars['FIELD_MODEL']->_loop = false;
$_smarty_tpl->tpl_vars['FIELD_NAME'] = new Smarty_Variable;