themes add and some fix

This commit is contained in:
2025-01-19 20:50:25 +03:00
parent 219ca30608
commit a943b960ad
200 changed files with 796 additions and 106 deletions

View File

@ -10,14 +10,12 @@ use kernel\Flash;
use kernel\helpers\Debug;
use kernel\helpers\Files;
use kernel\helpers\RESTClient;
use kernel\helpers\SMTP;
use kernel\Mailing;
use kernel\modules\module_shop_client\services\ModuleShopClientService;
use kernel\Request;
use kernel\services\AdminThemeService;
use kernel\services\KernelService;
use kernel\services\ModuleService;
use kernel\services\ModuleShopService;
use kernel\services\TokenService;
use PHPMailer\PHPMailer\Exception;
class ModuleShopClientController extends AdminController
@ -26,6 +24,7 @@ class ModuleShopClientController extends AdminController
protected Client $client;
protected ModuleService $moduleService;
protected KernelService $kernelService;
protected ModuleShopClientService $moduleShopClientService;
protected function init(): void
{
@ -35,6 +34,7 @@ class ModuleShopClientController extends AdminController
$this->client = new Client();
$this->moduleService = new ModuleService();
$this->kernelService = new KernelService();
$this->moduleShopClientService = new ModuleShopClientService();
}
/**
@ -42,7 +42,6 @@ class ModuleShopClientController extends AdminController
*/
public function actionIndex(int $page_number = 1): void
{
if ($this->moduleService->issetModuleShopToken()) {
if ($this->moduleService->isServerAvailable()) {
@ -157,24 +156,71 @@ class ModuleShopClientController extends AdminController
$this->redirect('/admin/module_shop_client', 302);
}
// public function actionSearch(int $page_number = 1): void
// {
// $request = new Request();
// $filters = $request->get();
//// Debug::dd($filters);
// if ($this->moduleService->issetModuleShopToken()) {
// if ($this->moduleService->isServerAvailable()) {
// $modules_info = [];
// $per_page = 8;
// $modules = RESTClient::request($_ENV['MODULE_SHOP_URL'] . '/api/module_shop/gb_slug');
// $modules = json_decode($modules->getBody()->getContents(), true);
// foreach ($modules as $module) {
// foreach ($filters as $key => $value) {
// if ($value === '') continue;
// if ($module[$key] !== $value) {
// break;
// }
//
// $modules_info[] = $module;
// }
// }
// $module_count = count($modules_info);
// $modules_info = array_slice($modules_info, $per_page * ($page_number - 1), $per_page);
//
// $this->cgView->render("index.php", [
// 'modules_info' => $modules_info,
// 'moduleService' => $this->moduleService,
// 'page_number' => $page_number,
// 'module_count' => $module_count,
// 'per_page' => $per_page,
// 'kernelService' => new KernelService(),
// 'adminThemeService' => new AdminThemeService(),
// 'filterValues' => $filters
// ]);
// } else {
// $this->cgView->render("module_shop_error_connection.php");
// }
//
// } else {
// $this->cgView->render("login_at_module_shop.php");
// }
// }
public function actionSearch(int $page_number = 1): void
{
$request = new Request();
$filters = $request->get();
if ($this->moduleService->issetModuleShopToken()) {
if ($this->moduleService->isServerAvailable()) {
$modules_info = [];
// $modules_info = [];
$per_page = 8;
$modules = RESTClient::request($_ENV['MODULE_SHOP_URL'] . '/api/module_shop/gb_slug');
$modules = json_decode($modules->getBody()->getContents(), true);
foreach ($modules as $module) {
foreach ($filters as $key => $value) {
$modules_info = RESTClient::request($_ENV['MODULE_SHOP_URL'] . '/api/module_shop/gb_slug');
$modules_info = json_decode($modules_info->getBody()->getContents(), true);
foreach ($modules_info as $key => $module) {
foreach ($filters as $column => $value) {
if ($value === '') continue;
if ($module[$key] !== $value) {
break;
if (is_numeric($value)) {
if ($module[$column] !== $value) {
unset($modules_info[$key]);
}
} elseif (is_string($value)) {
if (!str_contains($module[$column], $value)) {
unset($modules_info[$key]);
}
}
$modules_info[] = $module;
}
}
$module_count = count($modules_info);
@ -188,6 +234,7 @@ class ModuleShopClientController extends AdminController
'per_page' => $per_page,
'kernelService' => new KernelService(),
'adminThemeService' => new AdminThemeService(),
'filterValues' => $filters
]);
} else {
$this->cgView->render("module_shop_error_connection.php");
@ -209,7 +256,7 @@ class ModuleShopClientController extends AdminController
$moduleShopService = new ModuleShopService();
$result = $moduleShopService->email_auth($address);
if ($result['status'] == 'success'){
if ($result['status'] == 'success') {
$this->cgView->render('enter_code.php', ['email' => $address]);
}
@ -224,7 +271,7 @@ class ModuleShopClientController extends AdminController
$moduleShopService = new ModuleShopService();
$result = $moduleShopService->code_check($code);
if (isset($result['access_token'])){
if (isset($result['access_token'])) {
$envFile = \EnvEditor\EnvFile::loadFrom(ROOT_DIR . "/.env");

0
kernel/modules/module_shop_client/manifest.json Normal file → Executable file
View File

View File

View File

@ -0,0 +1,22 @@
<?php
namespace kernel\modules\module_shop_client\services;
use kernel\helpers\RESTClient;
class ModuleShopClientService
{
// public function getModulesInfo(string $url, int $perPage, int $pageNumber): \Psr\Http\Message\ResponseInterface
// {
// $modules_info = RESTClient::request($url);
// $modules_info = json_decode($modules_info->getBody()->getContents(), true);
// return array_slice($modules_info, $perPage * ($pageNumber - 1), $perPage);
// }
//
// public function getModulesInfoWithFilters(string $url, int $perPage, int $pageNumber): \Psr\Http\Message\ResponseInterface
// {
// $modules_info = RESTClient::request($url);
// $modules_info = json_decode($modules_info->getBody()->getContents(), true);
// return array_slice($modules_info, $perPage * ($pageNumber - 1), $perPage);
// }
}

0
kernel/modules/module_shop_client/views/enter_code.php Normal file → Executable file
View File

45
kernel/modules/module_shop_client/views/index.php Normal file → Executable file
View File

@ -7,6 +7,7 @@
* @var \kernel\services\ModuleService $moduleService
* @var \kernel\services\KernelService $kernelService
* @var \kernel\services\AdminThemeService $adminThemeService
* @var array $filterValues
*/
use Itguild\Tables\ListJsonTable;
@ -30,7 +31,6 @@ $meta['total'] = $module_count;
$info_to_table['meta'] = $meta;
$info_to_table['data'] = $modules_info;
$info_to_table['filters'] = ['type'];
$table = new ListJsonTable(json_encode($info_to_table, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
@ -40,8 +40,24 @@ $table->addAction(function ($row, $url) use ($moduleService) {
return \kernel\widgets\IconBtn\IconBtnViewWidget::create(['url' => $url])->run();
});
$table->addAction(function ($row, $url) use ($moduleService){
if ($row['slug'] !== 'kernel') {
$table->columns([
'type' => [
'filter' => [
'class' => \kernel\filters\BootstrapSelectFilter::class,
'params' => [
'options' => [
'kernel' => 'kernel',
'entity' => 'entity',
],
'prompt' => 'Не выбрано'
],
'value' => $filterValues['type'] ?? ''
],
]
]);
$table->addAction(function ($row, $url) use ($moduleService) {
if ($row['type'] === 'entity' || $row['type'] === 'additional_property') {
if ($moduleService->isInstall($row['slug'])) {
$url = "$url/delete/?slug=" . $row['slug'];
@ -52,16 +68,19 @@ $table->addAction(function ($row, $url) use ($moduleService){
return \kernel\widgets\IconBtn\IconBtnInstallWidget::create(['url' => $url])->run();
}
}
return null;
return false;
});
$table->addAction(function ($row, $url) use ($moduleService) {
$slug = $row['slug'];
if ($moduleService->isInstall($slug)) {
if (!$moduleService->isLastVersion($slug)) {
$url = "$url/update/?slug=" . $slug;
if ($row['type'] === 'entity' || $row['type'] === 'additional_property') {
$slug = $row['slug'];
if ($moduleService->isInstall($slug)) {
if (!$moduleService->isLastVersion($slug)) {
$url = "$url/update/?slug=" . $slug;
return \kernel\widgets\IconBtn\IconBtnUpdateWidget::create(['url' => $url])->run();
return \kernel\widgets\IconBtn\IconBtnUpdateWidget::create(['url' => $url])->run();
}
}
}
@ -69,8 +88,7 @@ $table->addAction(function ($row, $url) use ($moduleService) {
});
$table->addAction(function ($row, $url) use ($kernelService) {
$slug = $row['slug'];
if ($slug === 'kernel') {
if ($row['type'] === 'kernel') {
if (!$kernelService->isLastVersion()) {
$url = "$url/kernel/update_form/";
@ -82,9 +100,8 @@ $table->addAction(function ($row, $url) use ($kernelService) {
});
$table->addAction(function ($row, $url) use ($adminThemeService) {
$type = $row['type'];
$slug = $row['slug'];
if ($type === 'admin_theme') {
if ($row['type'] === 'admin_theme') {
$slug = $row['slug'];
if ($adminThemeService->isInstall($slug)) {
if (!$adminThemeService->isLastVersion($slug)) {
$url = "$url/admin_theme/update/";

View File

View File

View File

0
kernel/modules/module_shop_client/views/view.php Normal file → Executable file
View File