From ca7d2fa96ca594e101f3aa455a3ccadb744f3085 Mon Sep 17 00:00:00 2001 From: developer Date: Thu, 26 Mar 2026 14:13:44 +0800 Subject: [PATCH] admin design module --- .../2026_03_26_000001_create_design_table.php | 29 +++++ .../Controllers/AdminDesignController.php | 47 ++++++++ app/Modules/Admin/Routes/web.php | 2 + .../Admin/Views/design/index.blade.php | 74 ++++++++++++ app/Modules/Admin/Views/docs/edit.blade.php | 1 - app/Modules/Admin/Views/menu/index.blade.php | 3 + app/Modules/Main/Models/Design.php | 42 +++++++ public/pull.php | 4 +- resources/css/app.css | 4 + resources/views/layouts/admin.blade.php | 7 +- resources/views/layouts/app.blade.php | 12 +- resources/views/layouts/design.blade.php | 114 ++++++++++++++++++ resources/views/layouts/guest.blade.php | 1 + resources/views/livewire/main-menu.blade.php | 4 +- 14 files changed, 333 insertions(+), 11 deletions(-) create mode 100644 app/Modules/Admin/Database/Migrations/2026_03_26_000001_create_design_table.php create mode 100644 app/Modules/Admin/Http/Controllers/AdminDesignController.php create mode 100644 app/Modules/Admin/Views/design/index.blade.php create mode 100644 app/Modules/Main/Models/Design.php create mode 100644 resources/views/layouts/design.blade.php diff --git a/app/Modules/Admin/Database/Migrations/2026_03_26_000001_create_design_table.php b/app/Modules/Admin/Database/Migrations/2026_03_26_000001_create_design_table.php new file mode 100644 index 0000000..0ccf3fc --- /dev/null +++ b/app/Modules/Admin/Database/Migrations/2026_03_26_000001_create_design_table.php @@ -0,0 +1,29 @@ +id(); + $table->string('parameter'); + $table->string('value'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('design'); + } +}; diff --git a/app/Modules/Admin/Http/Controllers/AdminDesignController.php b/app/Modules/Admin/Http/Controllers/AdminDesignController.php new file mode 100644 index 0000000..4c7b60b --- /dev/null +++ b/app/Modules/Admin/Http/Controllers/AdminDesignController.php @@ -0,0 +1,47 @@ + Design::getParameters() + ]); + } + + public function update(Request $request) + { + + $validated = $request->validate([ + 'logo' => 'mimes:jpeg,png,jpg,gif,svg' + ]); + + if ($request->file('logo')) { + $logoPath = $request->file('logo')->store('design', ['disk' => 'public']); + $request->logo = $logoPath; + } + + foreach (Design::parameters as $parameter) { + if ( !isset($request->$parameter) || !$request->$parameter ) { + if ($parameter != 'logo') { + Design::where('parameter', $parameter)->delete(); + } + } else { + Design::updateOrCreate([ + 'parameter' => $parameter, + 'value' => $request->$parameter + ]); + } + } + return to_route('admin.design'); + } + +} diff --git a/app/Modules/Admin/Routes/web.php b/app/Modules/Admin/Routes/web.php index 8eeaf4a..3bedd7c 100644 --- a/app/Modules/Admin/Routes/web.php +++ b/app/Modules/Admin/Routes/web.php @@ -9,6 +9,8 @@ { Route::middleware(['auth', AdminPolicyAuthorization::class])->group(function () { + Route::get('/admin/design', [Modules\Admin\Http\Controllers\AdminDesignController::class, 'index'])->name('admin.design'); + Route::post('/admin/design/update', [Modules\Admin\Http\Controllers\AdminDesignController::class, 'update'])->name('admin.design.update'); Route::post('/admin/cities/{city}/update', [Modules\Admin\Http\Controllers\AdminCitiesController::class, 'update'])->name('admin.cities.update'); Route::post('/admin/cities/create', [Modules\Admin\Http\Controllers\AdminCitiesController::class, 'create'])->name('admin.cities.create'); diff --git a/app/Modules/Admin/Views/design/index.blade.php b/app/Modules/Admin/Views/design/index.blade.php new file mode 100644 index 0000000..5f462be --- /dev/null +++ b/app/Modules/Admin/Views/design/index.blade.php @@ -0,0 +1,74 @@ +@php($title = 'Настройки темы') +@extends('layouts.admin') +@section('content') +
+ @csrf +
Основное
+
+
+ + +
+
+ + +
+
+
+ + @if(array_key_exists('logo', $parameters)) + {{ $parameters['logo'] }} + @endif + + +
+
Акценты
+
+
+ + +
+ +
+ + +
+
+ +
Главное меню
+
+
+ + +
+ +
+ + +
+ +
+ + +
+
+ + +
+
+ +
+@endsection \ No newline at end of file diff --git a/app/Modules/Admin/Views/docs/edit.blade.php b/app/Modules/Admin/Views/docs/edit.blade.php index 95d9d75..c672c9b 100644 --- a/app/Modules/Admin/Views/docs/edit.blade.php +++ b/app/Modules/Admin/Views/docs/edit.blade.php @@ -2,7 +2,6 @@ @extends('layouts.admin') @section('content')
- @csrf @csrf
diff --git a/app/Modules/Admin/Views/menu/index.blade.php b/app/Modules/Admin/Views/menu/index.blade.php index 7cae792..8b1bb5f 100644 --- a/app/Modules/Admin/Views/menu/index.blade.php +++ b/app/Modules/Admin/Views/menu/index.blade.php @@ -11,6 +11,9 @@ class="nav-link d-flex align-items-center gap-2 fs-5 border rounded-4" href="#"> +
  • diff --git a/app/Modules/Main/Models/Design.php b/app/Modules/Main/Models/Design.php new file mode 100644 index 0000000..d599e94 --- /dev/null +++ b/app/Modules/Main/Models/Design.php @@ -0,0 +1,42 @@ +parameter] = $row->value; + } + foreach (self::parameters as $parameter) { + if (!array_key_exists($parameter, $parameters)) { + $parameters[$parameter] = null; + } + } + return $parameters; + } + +} diff --git a/public/pull.php b/public/pull.php index 20e34e7..99d31bf 100644 --- a/public/pull.php +++ b/public/pull.php @@ -24,8 +24,8 @@ if($json['total_commits'] > 0) { - //$result = shell_exec("cd /var/www/lk && git reset --hard HEAD && git pull && php artisan migrate"); - $result = shell_exec("cd /var/www/lk && git reset --hard HEAD && git pull"); + $result = shell_exec("cd /var/www/lk && git reset --hard HEAD && git pull && php artisan migrate && npm run build"); + //$result = shell_exec("cd /var/www/lk && git reset --hard HEAD && git pull"); echo "

    $result

    "; } diff --git a/resources/css/app.css b/resources/css/app.css index 71af3d4..4db5568 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -1,3 +1,7 @@ +.btn:hover{ + color:#fff; + filter: drop-shadow(2px 4px 6px black); +} .bg-primary { background-color: #e6662a !important; background-image: linear-gradient(140deg, hsl(19, 79%, 53%) 50%, #ce4711 75%) !important; diff --git a/resources/views/layouts/admin.blade.php b/resources/views/layouts/admin.blade.php index a8861aa..d0e63b1 100644 --- a/resources/views/layouts/admin.blade.php +++ b/resources/views/layouts/admin.blade.php @@ -16,6 +16,7 @@ @vite(['resources/sass/app.scss', 'resources/js/app.js', 'resources/css/app.css', 'resources/css/docs.css']) + @include('layouts.design') @@ -24,7 +25,11 @@
    diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index bb9235a..4e25d13 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -17,6 +17,7 @@ @vite(['resources/sass/app.scss', 'resources/js/app.js', 'resources/js/multiselect.js', 'resources/css/app.css', 'resources/css/docs.css', 'resources/css/multiselect.css']) + @include('layouts.design') @@ -49,12 +50,12 @@ - @@ -154,4 +156,4 @@ @include('notice::index') - + \ No newline at end of file diff --git a/resources/views/layouts/design.blade.php b/resources/views/layouts/design.blade.php new file mode 100644 index 0000000..db8edf8 --- /dev/null +++ b/resources/views/layouts/design.blade.php @@ -0,0 +1,114 @@ + + \ No newline at end of file diff --git a/resources/views/layouts/guest.blade.php b/resources/views/layouts/guest.blade.php index 1861ed4..159a1fd 100644 --- a/resources/views/layouts/guest.blade.php +++ b/resources/views/layouts/guest.blade.php @@ -21,6 +21,7 @@ @vite(['resources/sass/app.scss', 'resources/js/app.js', 'resources/css/app.css']) + @include('layouts.design')