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

@@ -13,7 +13,9 @@ use Illuminate\Auth\Events\Registered;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\\Support\\Facades\\DB;\r\nuse Illuminate\\Support\\Facades\\Hash;\r\nuse Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Str;
use Illuminate\Validation\Rules;
use Illuminate\Validation\ValidationException;
@@ -25,7 +27,7 @@ class CheckoutController extends Controller
/**
* Render the checkout wizard using the legacy marketing controller for now.
*/
public function show(Request $request, Package $package): Response
public function show(Request $request, Package $package): JsonResponse
{
$marketingController = app(MarketingController::class);

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Session;
class LocaleController extends Controller
{
public function set(Request $request)
{
$locale = $request->input('locale');
$supportedLocales = ['de', 'en'];
if (in_array($locale, $supportedLocales)) {
App::setLocale($locale);
Session::put('locale', $locale);
}
$previousUrl = $request->header('Referer') ?? '/';
$currentPath = parse_url($previousUrl, PHP_URL_PATH);
// Remove prefix if present for redirect to prefix-free
$currentPath = preg_replace('/^\/(de|en)/', '', $currentPath);
return redirect($currentPath);
}
}

View File

@@ -37,6 +37,12 @@ class MarketingController extends Controller
return $p->append(['features', 'limits']);
});
Log::info('Inertia render called for index', [
'url' => request()->url(),
'inertia_header' => request()->header('X-Inertia'),
'packages_count' => $packages->count()
]);
return Inertia::render('marketing/Home', compact('packages'));
}
@@ -440,13 +446,28 @@ class MarketingController extends Controller
return Inertia::render('marketing/Packages', compact('endcustomerPackages', 'resellerPackages'));
}
public function occasionsType($locale, $type)
public function occasionsType($type)
{
Log::info('OccasionsType hit', [
'type' => $type,
'locale' => app()->getLocale(),
'url' => request()->fullUrl(),
'route' => request()->route()->getName(),
'isInertia' => request()->header('X-Inertia')
]);
$validTypes = ['hochzeit', 'geburtstag', 'firmenevent'];
if (!in_array($type, $validTypes)) {
Log::warning('Invalid occasion type accessed', ['type' => $type]);
abort(404, 'Invalid occasion type');
}
Log::info('Inertia render called for occasionsType', [
'url' => request()->url(),
'inertia_header' => request()->header('X-Inertia'),
'type' => $type
]);
return Inertia::render('marketing/Occasions', ['type' => $type]);
}
}

View File

@@ -17,27 +17,19 @@ class SetLocale
*/
public function handle(Request $request, Closure $next): Response
{
$locale = $request->segment(1); // Erste URL-Segment als Locale (z.B. /de/packages -> 'de')
// Unterstützte Sprachen
$supportedLocales = ['de', 'en'];
$sessionLocale = Session::get('locale', 'de');
if (in_array($locale, $supportedLocales)) {
// Locale setzen
App::setLocale($locale);
Session::put('locale', $locale);
} else {
// Fallback zu 'de'
$defaultLocale = 'de';
App::setLocale($defaultLocale);
Session::put('locale', $defaultLocale);
// Redirect zu default Locale, wenn keine Locale in URL
if (!$locale) {
return redirect("/{$defaultLocale}" . $request->getRequestUri());
}
// Fallback to Accept-Language header if no session
if (!in_array($sessionLocale, $supportedLocales)) {
$acceptLanguage = $request->header('Accept-Language', 'de');
$localeFromHeader = substr($acceptLanguage, 0, 2);
$sessionLocale = in_array($localeFromHeader, $supportedLocales) ? $localeFromHeader : 'de';
}
App::setLocale($sessionLocale);
Session::put('locale', $sessionLocale);
return $next($request);
}
}