74 lines
2.0 KiB
PHP
74 lines
2.0 KiB
PHP
|
|
<?php
|
|||
|
|
header('Content-Type: application/json; charset=utf-8');
|
|||
|
|
session_start();
|
|||
|
|
|
|||
|
|
$response = [
|
|||
|
|
'success' => false,
|
|||
|
|
'message' => '',
|
|||
|
|
'timestamp' => date('Y-m-d H:i:s')
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// Проверка: только для админа или валидного секрета
|
|||
|
|
$validSecret = 'Afrqtf';
|
|||
|
|
$providedSecret = isset($_GET['secret']) ? $_GET['secret'] : '';
|
|||
|
|
|
|||
|
|
if (
|
|||
|
|
(!isset($_SESSION['id']) || !in_array($_SESSION['id'], [4, 6635, 12253])) &&
|
|||
|
|
$providedSecret !== $validSecret
|
|||
|
|
) {
|
|||
|
|
die('Доступ запрещён');
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$files = [
|
|||
|
|
// CSS
|
|||
|
|
'/css/base.css',
|
|||
|
|
'/css/crm.css',
|
|||
|
|
'/css/style.css',
|
|||
|
|
'/css/viewer.css',
|
|||
|
|
'/css/fastselect.css',
|
|||
|
|
'/css/funnel.css',
|
|||
|
|
'/css/all.min.css',
|
|||
|
|
'/css/chat/style.min.css',
|
|||
|
|
'/css/analytics/local.css',
|
|||
|
|
'/css/analytics/styles.min.css',
|
|||
|
|
|
|||
|
|
// JS
|
|||
|
|
'/js/main.js',
|
|||
|
|
'/js/charts.js',
|
|||
|
|
'/js/f_main.js',
|
|||
|
|
'/js/jquery.overscroll.js',
|
|||
|
|
'/js/crm.js',
|
|||
|
|
'/js/fastselect.standalone.js',
|
|||
|
|
'/js/viewer.min.js',
|
|||
|
|
'js/core.js',
|
|||
|
|
'js/crm_jw.js',
|
|||
|
|
'js/callevents.js',
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
$cacheDir = $_SERVER['DOCUMENT_ROOT'] . '/engine/cache';
|
|||
|
|
$cacheFile = $cacheDir . '/assets.php';
|
|||
|
|
|
|||
|
|
if (!is_dir($cacheDir)) {
|
|||
|
|
if (!mkdir($cacheDir, 0755, true)) {
|
|||
|
|
$response['message'] = 'Не удалось создать папку: ' . $cacheDir;
|
|||
|
|
echo json_encode($response, JSON_UNESCAPED_UNICODE);
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$manifest = [];
|
|||
|
|
foreach ($files as $file) {
|
|||
|
|
$fullPath = $_SERVER['DOCUMENT_ROOT'] . $file;
|
|||
|
|
$manifest[$file] = file_exists($fullPath) ? filemtime($fullPath) : time();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$content = '<?php return ' . var_export($manifest, true) . ';';
|
|||
|
|
if (file_put_contents($cacheFile, $content) === false) {
|
|||
|
|
$response['message'] = 'Не удалось записать файл: ' . $cacheFile;
|
|||
|
|
echo json_encode($response, JSON_UNESCAPED_UNICODE);
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$response['success'] = true;
|
|||
|
|
$response['message'] = 'Кэш обновлён. Файлов: ' . count($manifest);
|
|||
|
|
echo json_encode($response, JSON_UNESCAPED_UNICODE);
|