- Создан API create_document_with_text.php для создания DOCX/XLSX/PPTX с текстом от AI - Поддержка Markdown форматирования (заголовки, жирный, курсив, списки, код) - Установлен PHPWord для красивого форматирования документов - Исправлены пути сохранения (crm2/CRM_Active_Files/... без /crm/ в начале) - Замена пробелов на подчеркивания в именах папок - Создана документация для AI и разработчиков - Добавлены API для работы с шаблонами Nextcloud
67 lines
7.2 KiB
PHP
67 lines
7.2 KiB
PHP
<?php /* Smarty version Smarty-3.1.7, created on 2025-11-02 18:25:21
|
||
compiled from "/var/www/fastuser/data/www/crm.clientright.ru/includes/runtime/../../layouts/v7/modules/Vtiger/DocumentsSummaryWidgetContents.tpl" */ ?>
|
||
<?php /*%%SmartyHeaderCode:1300702775690777e179e838-80065693%%*/if(!defined('SMARTY_DIR')) exit('no direct access allowed');
|
||
$_valid = $_smarty_tpl->decodeProperties(array (
|
||
'file_dependency' =>
|
||
array (
|
||
'b260de7573cb653d0ac69014c32dd12d4d2fc147' =>
|
||
array (
|
||
0 => '/var/www/fastuser/data/www/crm.clientright.ru/includes/runtime/../../layouts/v7/modules/Vtiger/DocumentsSummaryWidgetContents.tpl',
|
||
1 => 1761984213,
|
||
2 => 'file',
|
||
),
|
||
),
|
||
'nocache_hash' => '1300702775690777e179e838-80065693',
|
||
'function' =>
|
||
array (
|
||
),
|
||
'variables' =>
|
||
array (
|
||
'RELATED_RECORDS' => 0,
|
||
'RELATED_RECORD' => 0,
|
||
'MODULE' => 0,
|
||
'RELATED_MODULE' => 0,
|
||
'DOWNLOAD_STATUS' => 0,
|
||
'RECORD_ID' => 0,
|
||
'DOCUMENT_RECORD_MODEL' => 0,
|
||
'NUMBER_OF_RECORDS' => 0,
|
||
'MODULE_NAME' => 0,
|
||
),
|
||
'has_nocache_code' => false,
|
||
'version' => 'Smarty-3.1.7',
|
||
'unifunc' => 'content_690777e17ef0c',
|
||
),false); /*/%%SmartyHeaderCode%%*/?>
|
||
<?php if ($_valid && !is_callable('content_690777e17ef0c')) {function content_690777e17ef0c($_smarty_tpl) {?>
|
||
<div class="paddingLeft5px"><span class="col-sm-5"><strong><?php echo vtranslate('Title','Documents');?>
|
||
</strong></span><span class="col-sm-7"><strong><?php echo vtranslate('File Name','Documents');?>
|
||
</strong></span><?php $_smarty_tpl->tpl_vars['RELATED_RECORD'] = new Smarty_Variable; $_smarty_tpl->tpl_vars['RELATED_RECORD']->_loop = false;
|
||
$_from = $_smarty_tpl->tpl_vars['RELATED_RECORDS']->value; if (!is_array($_from) && !is_object($_from)) { settype($_from, 'array');}
|
||
foreach ($_from as $_smarty_tpl->tpl_vars['RELATED_RECORD']->key => $_smarty_tpl->tpl_vars['RELATED_RECORD']->value){
|
||
$_smarty_tpl->tpl_vars['RELATED_RECORD']->_loop = true;
|
||
?><?php $_smarty_tpl->tpl_vars['DOWNLOAD_FILE_URL'] = new Smarty_variable($_smarty_tpl->tpl_vars['RELATED_RECORD']->value->getDownloadFileURL(), null, 0);?><?php $_smarty_tpl->tpl_vars['DOWNLOAD_STATUS'] = new Smarty_variable($_smarty_tpl->tpl_vars['RELATED_RECORD']->value->get('filestatus'), null, 0);?><?php $_smarty_tpl->tpl_vars['DOWNLOAD_LOCATION_TYPE'] = new Smarty_variable($_smarty_tpl->tpl_vars['RELATED_RECORD']->value->get('filelocationtype'), null, 0);?><div class="recentActivitiesContainer row"><ul class="" style="padding-left: 0px;list-style-type: none;"><li><div class="" id="documentRelatedRecord pull-left"><span class="col-sm-5 textOverflowEllipsis"><a href="<?php echo $_smarty_tpl->tpl_vars['RELATED_RECORD']->value->getDetailViewUrl();?>
|
||
" id="<?php echo $_smarty_tpl->tpl_vars['MODULE']->value;?>
|
||
_<?php echo $_smarty_tpl->tpl_vars['RELATED_MODULE']->value;?>
|
||
_Related_Record_<?php echo $_smarty_tpl->tpl_vars['RELATED_RECORD']->value->get('id');?>
|
||
" title="<?php echo $_smarty_tpl->tpl_vars['RELATED_RECORD']->value->getDisplayValue('notes_title');?>
|
||
"><?php echo $_smarty_tpl->tpl_vars['RELATED_RECORD']->value->getDisplayValue('notes_title');?>
|
||
</a></span><span class="col-sm-4 textOverflowEllipsis" id="DownloadableLink"><?php if ($_smarty_tpl->tpl_vars['DOWNLOAD_STATUS']->value==1){?><?php echo $_smarty_tpl->tpl_vars['RELATED_RECORD']->value->getDisplayValue('filename',$_smarty_tpl->tpl_vars['RELATED_RECORD']->value->getId(),$_smarty_tpl->tpl_vars['RELATED_RECORD']->value);?>
|
||
<?php }else{ ?><?php echo $_smarty_tpl->tpl_vars['RELATED_RECORD']->value->get('filename');?>
|
||
<?php }?></span><span class="col-sm-3"><?php $_smarty_tpl->tpl_vars['RECORD_ID'] = new Smarty_variable($_smarty_tpl->tpl_vars['RELATED_RECORD']->value->getId(), null, 0);?><?php if (isPermitted('Documents','DetailView',$_smarty_tpl->tpl_vars['RECORD_ID']->value)=='yes'){?><?php $_smarty_tpl->tpl_vars["DOCUMENT_RECORD_MODEL"] = new Smarty_variable(Vtiger_Record_Model::getInstanceById($_smarty_tpl->tpl_vars['RECORD_ID']->value), null, 0);?><a name="relationEdit" href="<?php echo $_smarty_tpl->tpl_vars['RELATED_RECORD']->value->getEditViewUrl();?>
|
||
" title="<?php echo vtranslate('LBL_EDIT','Documents');?>
|
||
"><i class="fa fa-pencil alignMiddle"></i></a> <a class="relationDelete" href="javascript:void(0)" onclick="unlinkDocumentFromWidget(<?php echo $_smarty_tpl->tpl_vars['RECORD_ID']->value;?>
|
||
, this)" title="<?php echo vtranslate('LBL_UNLINK','Documents');?>
|
||
"><i class="vicon-linkopen alignMiddle"></i></a> <?php if ($_smarty_tpl->tpl_vars['DOCUMENT_RECORD_MODEL']->value->get('filename')&&$_smarty_tpl->tpl_vars['DOCUMENT_RECORD_MODEL']->value->get('filestatus')){?><a name="viewfile" href="javascript:void(0)" data-filelocationtype="<?php echo $_smarty_tpl->tpl_vars['DOCUMENT_RECORD_MODEL']->value->get('filelocationtype');?>
|
||
" data-filename="<?php echo $_smarty_tpl->tpl_vars['DOCUMENT_RECORD_MODEL']->value->get('filename');?>
|
||
" onclick="Vtiger_Header_Js.previewFile(event,<?php echo $_smarty_tpl->tpl_vars['RECORD_ID']->value;?>
|
||
)"><i title="<?php echo vtranslate('LBL_VIEW_FILE','Documents');?>
|
||
" class="fa fa-picture-o alignMiddle"></i></a> <?php }?><?php if ($_smarty_tpl->tpl_vars['DOCUMENT_RECORD_MODEL']->value->get('filename')&&$_smarty_tpl->tpl_vars['DOCUMENT_RECORD_MODEL']->value->get('filestatus')){?><a name="downloadfile" href="<?php echo $_smarty_tpl->tpl_vars['DOCUMENT_RECORD_MODEL']->value->getDownloadFileURL();?>
|
||
" onclick="event.stopImmediatePropagation();"><i title="<?php echo vtranslate('LBL_DOWNLOAD_FILE','Documents');?>
|
||
" class="fa fa-download alignMiddle"></i></a> <?php }?><?php if ($_smarty_tpl->tpl_vars['DOCUMENT_RECORD_MODEL']->value->get('filestatus')){?><a name="editInNextcloud" href="javascript:void(0)" onclick="editInNextcloud(<?php echo $_smarty_tpl->tpl_vars['RECORD_ID']->value;?>
|
||
, '<?php echo strtr($_smarty_tpl->tpl_vars['DOCUMENT_RECORD_MODEL']->value->get('filename'), array("\\" => "\\\\", "'" => "\\'", "\"" => "\\\"", "\r" => "\\r", "\n" => "\\n", "</" => "<\/" ));?>
|
||
')"><i title="⚡ Редактировать (быстро, OnlyOffice напрямую)" class="fa fa-bolt alignMiddle" style="color: #ff6b35;"></i></a> <a name="openViaNextcloud" href="javascript:void(0)" onclick="openViaNextcloud(<?php echo $_smarty_tpl->tpl_vars['RECORD_ID']->value;?>
|
||
, '<?php echo strtr($_smarty_tpl->tpl_vars['DOCUMENT_RECORD_MODEL']->value->get('filename'), array("\\" => "\\\\", "'" => "\\'", "\"" => "\\\"", "\r" => "\\r", "\n" => "\\n", "</" => "<\/" ));?>
|
||
')"><i title="📚 Через Nextcloud (с версионированием)" class="fa fa-cloud alignMiddle" style="color: #007cba;"></i></a> <?php }?><a name="deletefile" href="javascript:void(0)" onclick="deleteDocumentFromWidget(<?php echo $_smarty_tpl->tpl_vars['RECORD_ID']->value;?>
|
||
, this)"><i title="<?php echo vtranslate('LBL_DELETE_FILE','Documents');?>
|
||
" class="fa fa-trash alignMiddle" style="color: red;"></i></a><?php }?></span></div></li></ul></div><?php } ?></div><?php $_smarty_tpl->tpl_vars['NUMBER_OF_RECORDS'] = new Smarty_variable(count($_smarty_tpl->tpl_vars['RELATED_RECORDS']->value), null, 0);?><?php if (($_smarty_tpl->tpl_vars['NUMBER_OF_RECORDS']->value==-1)){?><div class="row np"><div class="pull-right"><a class="moreRecentDocuments cursorPointer"><?php echo vtranslate('LBL_MORE',$_smarty_tpl->tpl_vars['MODULE_NAME']->value);?>
|
||
</a></div></div><?php }?>
|
||
<?php }} ?>
|