nicht nutzbarer stand, header menü ist nicht intertia initialisiert. aber schick. codex änderungen noch enthalten.

This commit is contained in:
Codex Agent
2025-10-06 13:46:29 +02:00
parent d70faf7a9d
commit 5ee510b05d
29 changed files with 493 additions and 784 deletions

View File

@@ -5,6 +5,7 @@ use Illuminate\Support\Facades\Route;
use Inertia\Inertia;
use Illuminate\Support\Facades\Log;
use App\Http\Controllers\CheckoutController;
use App\Http\Controllers\LocaleController;
Route::get('/lang/{locale}/{namespace}', function ($locale, $namespace) {
Log::info('Lang route hit', ['locale' => $locale, 'namespace' => $namespace]);
@@ -18,7 +19,20 @@ Route::get('/lang/{locale}/{namespace}', function ($locale, $namespace) {
return response()->json($content);
})->where(['locale' => 'de|en', 'namespace' => 'marketing|auth|common']);
Route::prefix('{locale?}')->where(['locale' => 'de|en'])->middleware('locale')->group(function () {
// Redirect old prefixed URLs to prefix-free (301 permanent)
Route::any('{locale}/{path?}', function ($locale, $path = '') {
$cleanPath = $path ? "/$path" : '/';
return redirect($cleanPath, 301);
})->where([
'locale' => 'de|en',
'path' => '.*'
]);
// Set locale route
Route::post('/set-locale', [LocaleController::class, 'set'])->name('locale.set');
// Main routes (prefix-free)
Route::middleware('locale')->group(function () {
Route::get('/', [\App\Http\Controllers\MarketingController::class, 'index'])->name('marketing');
Route::get('/packages', [\App\Http\Controllers\MarketingController::class, 'packagesIndex'])->name('packages');
Route::get('/packages/{id}', function ($id) {
@@ -29,66 +43,28 @@ Route::prefix('{locale?}')->where(['locale' => 'de|en'])->middleware('locale')->
Route::get('/register', [\App\Http\Controllers\Auth\MarketingRegisterController::class, 'create'])->name('register');
Route::post('/register', [\App\Http\Controllers\Auth\MarketingRegisterController::class, 'store'])->middleware('throttle:6,1')->name('register.store');
Route::post('/logout', [\App\Http\Controllers\Auth\AuthenticatedSessionController::class, 'destroy'])->name('logout');
});
// Fallback for /login (redirect to default locale)
Route::get('/login', function () {
return redirect('/de/login');
})->name('login.fallback');
// Fallback for POST /login (redirect to default locale, preserve method)
Route::post('/login', function (Request $request) {
return redirect('/de/login', 307)->withInput();
})->name('login.fallback.post');
// Fallback for /register (redirect to default locale)
Route::post('/register', function (Request $request) {
return redirect('/de/register' . $request->getQueryString());
})->name('register.fallback');
// Fallback for /logout (redirect to default locale)
Route::post('/logout', function () {
return redirect('/de/logout');
})->name('logout.fallback');
// Fallback for /packages (redirect to default locale)
Route::get('/packages', function () {
return redirect('/de/packages');
})->name('packages.fallback');
// Fallback for /blog (redirect to default locale)
Route::get('/blog', function () {
return redirect('/de/blog');
})->name('blog.fallback');
// Blog Routes (inside locale group for i18n support)
Route::prefix('{locale?}')->where(['locale' => 'de|en'])->middleware('locale')->group(function () {
// Blog routes
Route::get('/blog', [\App\Http\Controllers\MarketingController::class, 'blogIndex'])->name('blog');
Route::get('/blog/{post}', [\App\Http\Controllers\MarketingController::class, 'blogShow'])->name('blog.show');
});
// Fallbacks for Legal Pages (redirect to default locale)
Route::get('/impressum', function () {
return redirect('/de/impressum');
})->name('impressum.fallback');
Route::get('/datenschutz', function () {
return redirect('/de/datenschutz');
})->name('datenschutz.fallback');
Route::get('/kontakt', function () {
return redirect('/de/kontakt');
})->name('kontakt.fallback');
// Legal Pages in locale group
Route::prefix('{locale?}')->where(['locale' => 'de|en'])->middleware('locale')->group(function () {
Route::get('/impressum', function () {
return view('legal.impressum');
})->name('impressum');
Route::get('/datenschutz', function () {
return view('legal.datenschutz');
})->name('datenschutz');
Route::get('/kontakt', [\App\Http\Controllers\MarketingController::class, 'contactView'])->name('kontakt');
Route::post('/kontakt', [\App\Http\Controllers\MarketingController::class, 'contact'])->name('kontakt.submit');
});
// Legal pages
Route::get('/impressum', function () {
return view('legal.impressum');
})->name('impressum');
Route::get('/datenschutz', function () {
return view('legal.datenschutz');
})->name('datenschutz');
Route::get('/kontakt', [\App\Http\Controllers\MarketingController::class, 'contactView'])->name('kontakt');
Route::post('/kontakt', [\App\Http\Controllers\MarketingController::class, 'contact'])->name('kontakt.submit');
// Anlässe routes
Route::get('/anlaesse/{type}', [\App\Http\Controllers\MarketingController::class, 'occasionsType'])
->where([
'type' => 'hochzeit|geburtstag|firmenevent'
])
->name('anlaesse.type');
});
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('dashboard', function () {
@@ -163,13 +139,6 @@ Route::middleware('auth')->group(function () {
Route::get('/marketing/success/{package_id?}', [\App\Http\Controllers\MarketingController::class, 'success'])->name('marketing.success');
Route::prefix('{locale?}')->where(['locale' => 'de|en'])->middleware('locale')->group(function () {
Route::get('/anlaesse/{type}', [\App\Http\Controllers\MarketingController::class, 'occasionsType'])
->where([
'type' => 'hochzeit|geburtstag|firmenevent'
])
->name('anlaesse.type');
});