76 lines
2.6 KiB
PHP
76 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace app\modules\module_shop\services;
|
|
|
|
use app\modules\module_shop\models\ModuleShop;
|
|
use kernel\FormModel;
|
|
use kernel\helpers\Debug;
|
|
use kernel\helpers\Files;
|
|
use kernel\helpers\Manifest;
|
|
use kernel\helpers\Slug;
|
|
use kernel\services\ModuleService;
|
|
|
|
class ModuleShopService extends ModuleService
|
|
{
|
|
public function create(FormModel $form_model): false|ModuleShop
|
|
{
|
|
$model = new ModuleShop();
|
|
$model->name = $form_model->getItem("name");
|
|
$model->version = $form_model->getItem("version");
|
|
$model->description = $form_model->getItem("description");
|
|
$model->author = $form_model->getItem("author");
|
|
$model->status = $form_model->getItem("status");
|
|
$model->path_to_archive = $form_model->getItem("path_to_archive");
|
|
$model->dependence = $form_model->getItem("dependence");
|
|
$model->slug = Slug::createSlug($model->name, ModuleShop::class);
|
|
if ($model->save()) {
|
|
return $model;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public function update(FormModel $form_model, ModuleShop $model): false|ModuleShop
|
|
{
|
|
if ($model->name !== $form_model->getItem("name")) {
|
|
$model->name = $form_model->getItem("name");
|
|
$model->slug = Slug::createSlug($model->name, ModuleShop::class);
|
|
}
|
|
$model->version = $form_model->getItem("version");
|
|
$model->description = $form_model->getItem("description");
|
|
$model->author = $form_model->getItem("author");
|
|
$model->status = $form_model->getItem("status");
|
|
$model->path_to_archive = $form_model->getItem("path_to_archive");
|
|
$model->dependence = $form_model->getItem("dependence");
|
|
|
|
if ($model->save()) {
|
|
return $model;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public function packModule($module): void
|
|
{
|
|
$tmpModuleDir = md5(time());
|
|
$authorSlug = Slug::createSlug($module->author);
|
|
$nameSlug = Slug::createSlug($module->name);
|
|
$tmpModuleDirFull = RESOURCES_DIR . '/tmp/modules/' . $tmpModuleDir . '/';
|
|
|
|
$fileHelper = new Files();
|
|
Debug::dd(APP_DIR . '/modules/' . $nameSlug);
|
|
$fileHelper->copy_folder(APP_DIR . '/modules/' . $nameSlug, $tmpModuleDirFull . 'app/');
|
|
// $fileHelper->copy_folder(KERNEL_APP_MODULES_DIR . '/' . $nameSlug, $tmpModuleDirFull . 'kernel/');
|
|
|
|
$fileHelper->pack(
|
|
$tmpModuleDirFull,
|
|
RESOURCES_DIR . '/module_shop/' .
|
|
$authorSlug . '/' .
|
|
$module->slug . '/' .
|
|
$module->version . '/' .
|
|
$nameSlug . '.itguild'
|
|
);
|
|
|
|
$fileHelper->recursiveRemoveDir($tmpModuleDirFull);
|
|
}
|
|
} |