First commit
This commit is contained in:
commit
7cf3558ba7
12933 changed files with 1180047 additions and 0 deletions
29
routes/admin.php
Normal file
29
routes/admin.php
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Livewire\Volt\Volt;
|
||||
|
||||
// Admin-Routes für portal.b2in.local
|
||||
|
||||
// Admin-Dashboard
|
||||
Route::get('/', function () {
|
||||
return redirect()->route('dashboard');
|
||||
})->name('home');
|
||||
|
||||
Route::view('dashboard', 'admin.dashboard')->middleware(['auth', 'verified'])->name('dashboard');
|
||||
|
||||
// Admin-Einstellungen
|
||||
Route::middleware(['auth'])->group(function () {
|
||||
Route::redirect('settings', 'settings/profile');
|
||||
|
||||
Volt::route('settings/profile', 'settings.profile')->name('settings.profile');
|
||||
Volt::route('settings/password', 'settings.password')->name('settings.password');
|
||||
Volt::route('settings/appearance', 'settings.appearance')->name('settings.appearance');
|
||||
|
||||
// Weitere Admin-Routen hier...
|
||||
|
||||
Volt::route('admin/users', 'admin.users')->name('admin.users');
|
||||
Volt::route('admin/users/table', 'admin.users.table')->name('admin.users.table');
|
||||
});
|
||||
|
||||
// Admin-Authentication wird bereits in domains.php geladen
|
||||
58
routes/api.php
Normal file
58
routes/api.php
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| API Routes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you can register API routes for your application. These
|
||||
| routes are loaded by the RouteServiceProvider and all of them will
|
||||
| be assigned to the "api" middleware group. Make something great!
|
||||
|
|
||||
*/
|
||||
|
||||
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
|
||||
return $request->user();
|
||||
});
|
||||
|
||||
// Geschützte API-Routen
|
||||
Route::middleware('auth:sanctum')->group(function () {
|
||||
// Beispiel-API-Route
|
||||
Route::get('/profile', function (Request $request) {
|
||||
return response()->json([
|
||||
'user' => $request->user(),
|
||||
'message' => 'Profil erfolgreich abgerufen',
|
||||
]);
|
||||
});
|
||||
|
||||
// Token-Erstellung (bereits durch Sanctum bereitgestellt)
|
||||
// POST /api/tokens/create
|
||||
// POST /api/tokens/revoke
|
||||
});
|
||||
|
||||
// Öffentliche API-Routen
|
||||
Route::post('/login', function (Request $request) {
|
||||
$credentials = $request->validate([
|
||||
'email' => 'required|email',
|
||||
'password' => 'required',
|
||||
]);
|
||||
|
||||
if (Auth::attempt($credentials)) {
|
||||
$user = Auth::user();
|
||||
$token = $user->createToken('api-token')->plainTextToken;
|
||||
|
||||
return response()->json([
|
||||
'token' => $token,
|
||||
'user' => $user,
|
||||
'message' => 'Erfolgreich angemeldet',
|
||||
]);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Ungültige Anmeldedaten',
|
||||
], 401);
|
||||
});
|
||||
41
routes/auth.php
Normal file
41
routes/auth.php
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Livewire\Volt\Volt;
|
||||
|
||||
// Fortify-Routen für Authentifizierung mit Livewire
|
||||
Route::group(['middleware' => config('fortify.middleware', ['web'])], function () {
|
||||
// Login mit Livewire
|
||||
Volt::route('/login', 'auth.login')
|
||||
->middleware(['guest:'.config('fortify.guard')])
|
||||
->name('login');
|
||||
|
||||
// Registrierung mit Livewire
|
||||
Volt::route('/register', 'auth.register')
|
||||
->middleware(['guest:'.config('fortify.guard')])
|
||||
->name('register');
|
||||
|
||||
// Passwort vergessen mit Livewire
|
||||
Volt::route('/forgot-password', 'auth.forgot-password')
|
||||
->middleware(['guest:'.config('fortify.guard')])
|
||||
->name('password.request');
|
||||
|
||||
// Passwort zurücksetzen mit Livewire
|
||||
Volt::route('/reset-password/{token}', 'auth.reset-password')
|
||||
->middleware(['guest:'.config('fortify.guard')])
|
||||
->name('password.reset');
|
||||
|
||||
// E-Mail-Verifizierung mit Livewire
|
||||
Volt::route('/verify-email', 'auth.verify-email')
|
||||
->middleware(['auth:'.config('fortify.guard')])
|
||||
->name('verification.notice');
|
||||
|
||||
// Passwort bestätigen mit Livewire
|
||||
Volt::route('/confirm-password', 'auth.confirm-password')
|
||||
->middleware(['auth:'.config('fortify.guard')])
|
||||
->name('password.confirm');
|
||||
|
||||
// Logout-Route
|
||||
Route::post('/logout', [Laravel\Fortify\Http\Controllers\AuthenticatedSessionController::class, 'destroy'])
|
||||
->name('logout');
|
||||
});
|
||||
8
routes/console.php
Normal file
8
routes/console.php
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Foundation\Inspiring;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
|
||||
Artisan::command('inspire', function () {
|
||||
$this->comment(Inspiring::quote());
|
||||
})->purpose('Display an inspiring quote');
|
||||
87
routes/domains.php
Normal file
87
routes/domains.php
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Illuminate\Support\Facades\Vite;
|
||||
|
||||
// Admin-Bereich auf portal.b2in.local
|
||||
Route::domain('portal.b2in.test')->group(function () {
|
||||
// Auth-Routen laden
|
||||
require __DIR__ . '/auth.php';
|
||||
|
||||
// Admin-Routes laden
|
||||
require __DIR__ . '/admin.php';
|
||||
|
||||
// Test-Route laden
|
||||
require __DIR__ . '/test.php';
|
||||
|
||||
// Admin-Assets (Vite)
|
||||
Vite::useBuildDirectory('build/admin');
|
||||
});
|
||||
|
||||
// API-Routen für alle Domains
|
||||
Route::domain('api.b2in.test')->group(function () {
|
||||
require __DIR__ . '/api.php';
|
||||
});
|
||||
|
||||
// B2IN Theme für b2in.test (Hauptwebsite)
|
||||
Route::domain('b2in.test')->group(function () {
|
||||
// Web-Routes laden
|
||||
require __DIR__ . '/web.php';
|
||||
|
||||
// B2IN Theme Assets (Vite)
|
||||
Vite::useBuildDirectory('build/b2in');
|
||||
});
|
||||
|
||||
// B2A Theme für b2a.test
|
||||
Route::domain('b2a.test')->group(function () {
|
||||
// Web-Routes laden
|
||||
require __DIR__ . '/web.php';
|
||||
|
||||
// B2A Theme Assets (Vite)
|
||||
Vite::useBuildDirectory('build/b2a');
|
||||
});
|
||||
|
||||
// Stileigentum Theme für stileigentum.test
|
||||
Route::domain('stileigentum.test')->group(function () {
|
||||
// Web-Routes laden
|
||||
require __DIR__ . '/web.php';
|
||||
|
||||
// Stileigentum Theme Assets (Vite)
|
||||
Vite::useBuildDirectory('build/stileigentum');
|
||||
});
|
||||
|
||||
// Style2own Theme für style2own.test
|
||||
Route::domain('style2own.test')->group(function () {
|
||||
// Web-Routes laden
|
||||
require __DIR__ . '/web.php';
|
||||
|
||||
// Style2own Theme Assets (Vite)
|
||||
Vite::useBuildDirectory('build/style2own');
|
||||
});
|
||||
|
||||
/*
|
||||
// Theme 1 für landing1.test
|
||||
Route::domain('landing1.test')->group(function () {
|
||||
// Web-Routes laden
|
||||
require __DIR__.'/web.php';
|
||||
|
||||
// Theme 1 Assets (Vite)
|
||||
Vite::macro('themeCss', function () {
|
||||
return $this->asset('resources/css/web/theme-landing1.css');
|
||||
});
|
||||
|
||||
Vite::useBuildDirectory('build/web');
|
||||
});
|
||||
|
||||
// Theme 2 für landing2.test
|
||||
Route::domain('landing2.test')->group(function () {
|
||||
// Web-Routes laden
|
||||
require __DIR__.'/web.php';
|
||||
|
||||
// Theme 2 Assets (Vite)
|
||||
Vite::macro('themeCss', function () {
|
||||
return $this->asset('resources/css/web/theme-landing2.css');
|
||||
});
|
||||
|
||||
Vite::useBuildDirectory('build/web');
|
||||
});*/
|
||||
24
routes/test.php
Normal file
24
routes/test.php
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Livewire\Volt\Volt;
|
||||
|
||||
// Test-Route für Login-Komponente
|
||||
Route::get('/test-login', function () {
|
||||
return Volt::mount('test-login');
|
||||
})->name('test.login');
|
||||
|
||||
// Vereinfachte Login-Komponente ohne Flux
|
||||
Route::get('/login-simple', function () {
|
||||
return Volt::mount('auth.login-simple');
|
||||
})->name('login.simple');
|
||||
|
||||
// Debug-Komponente
|
||||
Route::get('/debug-login', function () {
|
||||
return Volt::mount('debug-login');
|
||||
})->name('debug.login');
|
||||
|
||||
// Einfache Test-Route ohne Volt
|
||||
Route::get('/simple-test', function () {
|
||||
return view('test-simple');
|
||||
})->name('simple.test');
|
||||
68
routes/web.php
Normal file
68
routes/web.php
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
// Gemeinsame Web-Routes für alle Pages)
|
||||
// Jede Landing-Page hat das gleiche Gerüst, aber unterschiedliches Styling
|
||||
|
||||
// Hauptseite - lädt automatisch das richtige Theme basierend auf der Domain
|
||||
Route::get('/', function () {
|
||||
$theme = config('app.theme', 'b2in');
|
||||
|
||||
// Use theme-specific view if it exists (e.g., web.b2a, web.stileigentum)
|
||||
// The view name for b2in theme is 'web.b2in' and not 'web.home'
|
||||
if ($theme === 'b2in') {
|
||||
return view('web.home');
|
||||
}
|
||||
if (view()->exists('web.' . $theme)) {
|
||||
return view('web.' . $theme);
|
||||
}
|
||||
|
||||
// Fallback to the default home view
|
||||
return view('web.home');
|
||||
})->name('home');
|
||||
|
||||
// Willkommensseite
|
||||
Route::get('/welcome', function () {
|
||||
return view('web.welcome');
|
||||
})->name('welcome');
|
||||
|
||||
// Weitere gemeinsame Webseiten hier...
|
||||
Route::get('/about', function () {
|
||||
return view('web.about');
|
||||
})->name('about');
|
||||
Route::get('/ecosystem', function () {
|
||||
return view('web.ecosystem');
|
||||
})->name('ecosystem');
|
||||
Route::get('/partner', function () {
|
||||
return view('web.partner');
|
||||
})->name('partner');
|
||||
Route::get('/magazin', function () {
|
||||
return view('web.magazin');
|
||||
})->name('magazin');
|
||||
Route::get('/magazin/{id}', function ($id) {
|
||||
return view('web.magazin-detail', compact('id'));
|
||||
})->name('magazin.detail');
|
||||
Route::get('/contact', function () {
|
||||
return view('web.contact');
|
||||
})->name('contact');
|
||||
|
||||
Route::get('/service', function () {
|
||||
return view('web.service');
|
||||
})->name('service');
|
||||
|
||||
Route::get('/portfolio', function () {
|
||||
return view('web.portfolio');
|
||||
})->name('portfolio');
|
||||
|
||||
Route::get('/faq', function () {
|
||||
return view('web.faq');
|
||||
})->name('faq');
|
||||
|
||||
// Theme Demo Route
|
||||
Route::get('/theme-demo', function () {
|
||||
return view('web.theme-demo');
|
||||
})->name('theme-demo');
|
||||
|
||||
// Pfad-basierte Theme-Routen für lokale Entwicklung wurden entfernt
|
||||
// Die Themensauswahl wird nun über den ThemeServiceProvider gesteuert (Domain oder ?theme=... GET-Parameter)
|
||||
Loading…
Add table
Add a link
Reference in a new issue