button fix, kernel update

This commit is contained in:
2024-12-19 12:53:55 +03:00
parent 4ff9fa9ad3
commit e75d21bd1b
15 changed files with 393 additions and 47 deletions

View File

@ -9,8 +9,8 @@ use kernel\helpers\Debug;
use kernel\helpers\Files;
use kernel\helpers\Manifest;
use kernel\helpers\RESTClient;
use kernel\helpers\Version;
use kernel\models\Option;
use MongoDB\Driver\Session;
use ZipArchive;
class ModuleService
@ -308,7 +308,12 @@ class ModuleService
$manifest = Manifest::getWithVars($manifestJson);
$fileHelper = new Files();
$fileHelper->copy_folder($tmpModuleDirFull . 'app', $manifest['app_module_path']);
if (isset($manifest['app_module_path'])) {
$fileHelper->copy_folder($tmpModuleDirFull . 'app', $manifest['app_module_path']);
} else {
$fileHelper->copy_folder($tmpModuleDirFull . 'app', APP_DIR . '/modules/' . $manifest['slug']);
}
if (isset($manifest['kernel_module_path'])) {
$fileHelper->copy_folder($tmpModuleDirFull . 'kernel', $manifest['kernel_module_path']);
} else {
@ -316,6 +321,7 @@ class ModuleService
}
$fileHelper->recursiveRemoveDir($tmpModuleDirFull);
unlink(ROOT_DIR . $path);
return true;
}
@ -392,8 +398,12 @@ class ModuleService
$manifest = Manifest::getWithVars($manifestJson);
$fileHelper = new Files();
if (isset($manifest['app_module_path'])) {
$fileHelper->copy_folder($tmpModuleDirFull . 'app/manifest.json', $manifest['app_module_path'] . '/manifest.json');
} else {
$fileHelper->copy_folder($tmpModuleDirFull . 'app/manifest.json', APP_DIR . '/modules/' . $manifest['slug'] . '/manifest.json');
}
$fileHelper->copy_folder($tmpModuleDirFull . 'app/manifest.json', $manifest['app_module_path'] . '/manifest.json');
if (isset($manifest['kernel_module_path'])) {
$fileHelper->copy_folder($tmpModuleDirFull . 'kernel', $manifest['kernel_module_path']);
} else {
@ -401,6 +411,8 @@ class ModuleService
}
$fileHelper->recursiveRemoveDir($tmpModuleDirFull);
unlink(ROOT_DIR . $path);
return true;
}
@ -448,9 +460,13 @@ class ModuleService
$modules_info = RESTClient::request($_ENV['MODULE_SHOP_URL'] . '/api/module_shop/gb_slug');
$modules_info = json_decode($modules_info->getBody()->getContents(), true);
$mod_info = $this->getModuleInfoBySlug($slug);
$currentVersion = Version::getIntVersionByString($mod_info['version']);
foreach ($modules_info as $mod) {
if ($mod['slug'] === $mod_info['slug'] && $mod['version'] === $mod_info['version']) {
$modVersion = Version::getIntVersionByString($mod['version']);
if ($mod['slug'] === $mod_info['slug'] && $modVersion <= $currentVersion) {
return true;
}
}