Joywork/admin/ajax/build-assets.php

74 lines
2.0 KiB
PHP
Raw Normal View History

2026-05-22 20:21:54 +02:00
<?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);