update, delete module from shop on local page

This commit is contained in:
2024-11-18 15:55:43 +03:00
parent faf0217b52
commit f4b0f006aa
6 changed files with 74 additions and 32 deletions

View File

@ -75,17 +75,24 @@ class ModuleShopClientController extends AdminController
#[NoReturn] public function actionUpdate(): void
{
$request = new Request();
$id = $request->get("id");
$module_info = RESTClient::request($_ENV['MODULE_SHOP_URL'] . '/api/module_shop/' . $id);
$slug = $request->get("slug");
$modules_info = RESTClient::request($_ENV['MODULE_SHOP_URL'] . '/api/module_shop/gb_slug');
$module_info = json_decode($module_info->getBody()->getContents(), true);
Files::uploadByUrl($_ENV['MODULE_SHOP_URL'] . $module_info['path_to_archive'], RESOURCES_DIR . "/tmp/modules");
$this->moduleService->updateModule('/resources/tmp/modules/' . basename($module_info['path_to_archive']));
$modules_info = json_decode($modules_info->getBody()->getContents(), true);
foreach ($modules_info as $module) {
if ($module['slug'] === $slug) {
$path = $module['path_to_archive'];
}
}
if (isset($path)) {
Files::uploadByUrl($_ENV['MODULE_SHOP_URL'] . $path, RESOURCES_DIR . "/tmp/modules");
$this->moduleService->updateModule('/resources/tmp/modules/' . basename($path));
Flash::setMessage("success", "Модуль успешно обновлен.");
} else {
Flash::setMessage("error", "Ошибка обновления модуля.");
}
Flash::setMessage("success", "Модуль успешно обновлен.");
$this->redirect('/admin/module_shop_client', 302);
}
#[NoReturn] public function actionDelete(): void

View File

@ -41,7 +41,7 @@ $table->addAction(function ($row, $url) use ($moduleService){
}
else {
$label = "Установить";
$btn_type = "warning";
$btn_type = "success";
$btn = "<a class='btn btn-$btn_type' href='$url/install/?id=$id' style='margin: 3px; width: 150px;' >$label</a>";
}
@ -50,16 +50,15 @@ $table->addAction(function ($row, $url) use ($moduleService){
$table->addAction(function ($row, $url) use ($moduleService){
$slug = $row['slug'];
$id = $row['id'];
if ($moduleService->isInstall($slug)){
if (!$moduleService->isLastVersion($slug)) {
$label = "Обновить";
$btn_type = "danger";
return "<a class='btn btn-$btn_type' href='$url/update/?id=$id' style='margin: 3px; width: 150px;' >$label</a>";
$btn_type = "info";
return "<a class='btn btn-$btn_type' href='$url/update/?slug=$slug' style='margin: 3px; width: 150px;' >$label</a>";
}
}
return false;
return false;
});