module activate
This commit is contained in:
parent
95e80ab87b
commit
fc80a63a6d
@ -1,37 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace _migrations;
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
use Illuminate\Database\Capsule\Manager;
|
|
||||||
|
|
||||||
class AnswerMigration extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public static function up(): void
|
|
||||||
{
|
|
||||||
Manager::schema()->create('answer', function (Blueprint $table) {
|
|
||||||
$table->increments('id');
|
|
||||||
$table->string('answer', 255)->nullable(false);
|
|
||||||
$table->integer('user_id');
|
|
||||||
$table->integer('question_id');
|
|
||||||
$table->timestamps();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public static function down(): void
|
|
||||||
{
|
|
||||||
Manager::schema()->dropIfExists('user');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,36 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace _migrations;
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
use Illuminate\Database\Capsule\Manager;
|
|
||||||
|
|
||||||
class QuestionMigration extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public static function up(): void
|
|
||||||
{
|
|
||||||
Manager::schema()->create('question', function (Blueprint $table) {
|
|
||||||
$table->increments('id');
|
|
||||||
$table->string('question', 255)->nullable(false);
|
|
||||||
$table->integer('user_id');
|
|
||||||
$table->timestamps();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public static function down(): void
|
|
||||||
{
|
|
||||||
Manager::schema()->dropIfExists('user');
|
|
||||||
}
|
|
||||||
}
|
|
@ -7,6 +7,7 @@ use kernel\AdminController;
|
|||||||
use kernel\helpers\Debug;
|
use kernel\helpers\Debug;
|
||||||
use kernel\models\Option;
|
use kernel\models\Option;
|
||||||
use kernel\modules\user\service\UserService;
|
use kernel\modules\user\service\UserService;
|
||||||
|
use kernel\Request;
|
||||||
use kernel\services\ModuleService;
|
use kernel\services\ModuleService;
|
||||||
|
|
||||||
class ModuleController extends AdminController
|
class ModuleController extends AdminController
|
||||||
@ -47,4 +48,12 @@ class ModuleController extends AdminController
|
|||||||
$this->cgView->render("index.php", ['modules_info' => $modules_info, 'moduleService' => $this->moduleService]);
|
$this->cgView->render("index.php", ['modules_info' => $modules_info, 'moduleService' => $this->moduleService]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function actionActivate(): void
|
||||||
|
{
|
||||||
|
$request = new Request();
|
||||||
|
$this->moduleService->setActiveModule($request->get("slug"));
|
||||||
|
|
||||||
|
$this->cgView->render("view.php", ['data' => $this->moduleService->getModuleInfo(KERNEL_MODULES_DIR . '/' . $request->get("slug"))]);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -9,6 +9,7 @@ use Phroute\Phroute\RouteCollector;
|
|||||||
App::$collector->group(["prefix" => "admin"], function (RouteCollector $router){
|
App::$collector->group(["prefix" => "admin"], function (RouteCollector $router){
|
||||||
App::$collector->group(["prefix" => "module"], function (RouteCollector $router){
|
App::$collector->group(["prefix" => "module"], function (RouteCollector $router){
|
||||||
App::$collector->get('/', [\kernel\controllers\ModuleController::class, 'actionIndex']);
|
App::$collector->get('/', [\kernel\controllers\ModuleController::class, 'actionIndex']);
|
||||||
|
App::$collector->get('/activate', [\kernel\controllers\ModuleController::class, 'actionActivate']);
|
||||||
});
|
});
|
||||||
App::$collector->group(["prefix" => "post"], function (RouteCollector $router){
|
App::$collector->group(["prefix" => "post"], function (RouteCollector $router){
|
||||||
App::$collector->get('/', [\kernel\modules\post\controllers\PostController::class, 'actionIndex']);
|
App::$collector->get('/', [\kernel\modules\post\controllers\PostController::class, 'actionIndex']);
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace kernel\services;
|
namespace kernel\services;
|
||||||
|
|
||||||
|
use kernel\helpers\Debug;
|
||||||
use kernel\helpers\Manifest;
|
use kernel\helpers\Manifest;
|
||||||
use kernel\models\Option;
|
use kernel\models\Option;
|
||||||
|
|
||||||
@ -36,4 +37,18 @@ class ModuleService
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setActiveModule(string $module): void
|
||||||
|
{
|
||||||
|
$active_modules = Option::where("key", "active_modules")->first();
|
||||||
|
$path = json_decode($active_modules->value);
|
||||||
|
if (in_array($module, $path->modules)) {
|
||||||
|
unset($path->modules[array_search($module, $path->modules)]);
|
||||||
|
$path->modules = array_values($path->modules);
|
||||||
|
} else {
|
||||||
|
$path->modules[] = $module;
|
||||||
|
}
|
||||||
|
$active_modules->value = json_encode($path, JSON_UNESCAPED_UNICODE);
|
||||||
|
$active_modules->save();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
30
kernel/views/module/view.php
Normal file
30
kernel/views/module/view.php
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @var array $data
|
||||||
|
*/
|
||||||
|
|
||||||
|
use kernel\IGTabel\btn\DangerBtn;
|
||||||
|
use kernel\IGTabel\btn\PrimaryBtn;
|
||||||
|
use kernel\IGTabel\btn\SuccessBtn;
|
||||||
|
|
||||||
|
$table_info = [
|
||||||
|
"meta" => [
|
||||||
|
"rows" => [
|
||||||
|
"name" => "Название",
|
||||||
|
"author" => "Автор",
|
||||||
|
"version" => "Версия",
|
||||||
|
"description" => "Описание"
|
||||||
|
],
|
||||||
|
"params" => ["class" => "table table-bordered"],
|
||||||
|
"baseUrl" => "/admin/module",
|
||||||
|
],
|
||||||
|
"data" => $data
|
||||||
|
];
|
||||||
|
$table = new \Itguild\Tables\ViewJsonTable(json_encode($table_info, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
|
||||||
|
|
||||||
|
$table->beforePrint(function () {
|
||||||
|
$btn = PrimaryBtn::create("Список", "/admin/module")->fetch();
|
||||||
|
return $btn;
|
||||||
|
});
|
||||||
|
$table->create();
|
||||||
|
$table->render();
|
Loading…
Reference in New Issue
Block a user