Files
crm.clientright.ru/test/templates_c/v7/92cfed4d6eba8d6e75ed60a227ea5e4073e4b2af.file.Statistic.tpl.php
Fedor 9245768987 🚀 CRM Files Migration & Real-time Features
 Features:
- Migrated ALL files to new S3 structure (Projects, Contacts, Accounts, HelpDesk, Invoice, etc.)
- Added Nextcloud folder buttons to ALL modules
- Fixed Nextcloud editor integration
- WebSocket server for real-time updates
- Redis Pub/Sub integration
- File path manager for organized storage
- Redis caching for performance (Functions.php)

📁 New Structure:
Documents/Project/ProjectName_ID/file_docID.ext
Documents/Contacts/FirstName_LastName_ID/file_docID.ext
Documents/Accounts/AccountName_ID/file_docID.ext

🔧 Technical:
- FilePathManager for standardized paths
- S3StorageService integration
- WebSocket server (Node.js + Docker)
- Redis cache for getBasicModuleInfo()
- Predis library for Redis connectivity

📝 Scripts:
- Migration scripts for all modules
- Test pages for WebSocket/SSE/Polling
- Documentation (MIGRATION_*.md, REDIS_*.md)

🎯 Result: 15,000+ files migrated successfully!
2025-10-24 19:59:28 +03:00

105 lines
4.6 KiB
PHP

<?php /* Smarty version Smarty-3.1.7, created on 2025-10-23 11:29:22
compiled from "/var/www/fastuser/data/www/crm.clientright.ru/includes/runtime/../../layouts/v7/modules/Settings/Workflow2/VT7/Statistic.tpl" */ ?>
<?php /*%%SmartyHeaderCode:76329966268f9e75654c627-99562144%%*/if(!defined('SMARTY_DIR')) exit('no direct access allowed');
$_valid = $_smarty_tpl->decodeProperties(array (
'file_dependency' =>
array (
'92cfed4d6eba8d6e75ed60a227ea5e4073e4b2af' =>
array (
0 => '/var/www/fastuser/data/www/crm.clientright.ru/includes/runtime/../../layouts/v7/modules/Settings/Workflow2/VT7/Statistic.tpl',
1 => 1761208151,
2 => 'file',
),
),
'nocache_hash' => '76329966268f9e75654c627-99562144',
'function' =>
array (
),
'version' => 'Smarty-3.1.7',
'unifunc' => 'content_68f9e75655858',
'variables' =>
array (
'workflowData' => 0,
'WorkflowObjectHTML' => 0,
'html' => 0,
'workflowID' => 0,
'maxConnections' => 0,
),
'has_nocache_code' => false,
),false); /*/%%SmartyHeaderCode%%*/?>
<?php if ($_valid && !is_callable('content_68f9e75655858')) {function content_68f9e75655858($_smarty_tpl) {?><link rel="stylesheet" href="<?php echo @PATH_CONTEXTMENU;?>
/src/jquery.contextMenu.css" type="text/css" media="all" />
<link rel="stylesheet" type="text/css" href="<?php echo @PATH_JQPLOT;?>
/jquery.jqplot.min.css" />
<script type="text/javascript" src="<?php echo @PATH_CONTEXTMENU;?>
/src/jquery.contextMenu.js"></script>
<script type="text/javascript" src="<?php echo @FILE_JSPLUMB;?>
"></script>
<script src="<?php echo @PATH_CKEDITOR;?>
/ckeditor.js"></script>
<script type="text/javascript">
CKEDITOR.disableAutoInline = true;
</script>
<div style="height:1024px;width:100%;position:relative;" id="mainWfContainer" class="noselect">
<div style="position:absolute;width:100%;" id="WFTaskContainer" class="statisticContainer">
<div id='rangeDisplayContainer' style=""></div>
</div>
<?php if ($_smarty_tpl->tpl_vars['workflowData']->value['module_name']==''){?>
<div style="position:absolute;left: 50%;margin-left:-200px;top:200px;font-size:20px; color:#bbb;font-weight:bold;width:400px;"><?php echo vtranslate("Please choose a Main module!","Settings:Workflow2");?>
</div>
<?php }?>
<div id="workflowDesignContainer" class="workflowDesignContainer noselect contentsDiv" style="<?php if ($_smarty_tpl->tpl_vars['workflowData']->value['module_name']==''){?>display:none;<?php }?>">
<div id='mainModelWindow' style='position:absolute;top:0;left:0;width:100%;height:100%;background-image:url(modules/Workflow2/icons/modal_white.png);z-index:270;'>
<div style="margin:150px auto;text-align:center;font-weight:bold;color:#aaa;font-size:18px;"><<?php ?>?php echo getTranslatedString("LOADING_INDICATOR", "Workflow2"); ?<?php ?>></div>
</div>
<div style="position:absolute;width:100%;z-index:1000;" id='workflowObjectsContainer' class="noselect">
<?php echo $_smarty_tpl->tpl_vars['WorkflowObjectHTML']->value;?>
<?php echo $_smarty_tpl->tpl_vars['html']->value;?>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var workflow_data = <?php if (isset($_smarty_tpl->tpl_vars['workflowData']->value)&&$_smarty_tpl->tpl_vars['workflowData']->value){?><?php echo json_encode($_smarty_tpl->tpl_vars['workflowData']->value);?>
<?php }else{ ?>{}<?php }?>;
var workflow_id = <?php echo $_smarty_tpl->tpl_vars['workflowID']->value;?>
;
var maxConnections = <?php echo $_smarty_tpl->tpl_vars['maxConnections']->value;?>
;
</script>
<div id='modalWindow' style='display:none;'></div>
<script type="text/javascript" src="<?php echo @PATH_JQPLOT;?>
/jquery.jqplot.min.js"></script>
<script type="text/javascript" src="<?php echo @PATH_JQPLOT;?>
/plugins/jqplot.highlighter.min.js"></script>
<script type="text/javascript" src="<?php echo @PATH_JQPLOT;?>
/plugins/jqplot.cursor.min.js"></script>
<script type="text/javascript" src="<?php echo @PATH_JQPLOT;?>
/plugins/jqplot.dateAxisRenderer.min.js"></script>
<script type="text/javascript" src="<?php echo @PATH_JQPLOT;?>
/plugins/jqplot.logAxisRenderer.min.js"></script>
<script type="text/javascript" src="<?php echo @PATH_JQPLOT;?>
/plugins/jqplot.canvasTextRenderer.min.js"></script>
<script type="text/javascript" src="<?php echo @PATH_JQPLOT;?>
/plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
<script type="text/javascript" src="<?php echo @PATH_JQPLOT;?>
/plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
<?php }} ?>