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') +
+@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')