121 lines
4.3 KiB
PHP
121 lines
4.3 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use Illuminate\Support\Facades\Vite;
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Domain-Konfiguration aus config/domains.php laden
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Die Domains werden dynamisch aus der Konfiguration geladen.
|
|
| In .env können die Live-Domains definiert werden:
|
|
|
|
|
| DOMAIN_PORTAL=portal.beispiel.de
|
|
| DOMAIN_B2IN=b2in.de
|
|
| DOMAIN_B2A=b2a.de
|
|
| DOMAIN_STILEIGENTUM=stileigentum.de
|
|
| DOMAIN_STYLE2OWN=style2own.de
|
|
|
|
|
*/
|
|
|
|
$domainPortal = config('domains.domain_portal', 'portal.b2in.test');
|
|
$domainB2in = config('domains.domain_b2in', 'b2in.test');
|
|
$domainB2a = config('domains.domain_b2a', 'b2a.test');
|
|
$domainStileigentum = config('domains.domain_stileigentum', 'stileigentum.test');
|
|
$domainStyle2own = config('domains.domain_style2own', 'style2own.test');
|
|
|
|
// Admin-Bereich (Portal)
|
|
Route::domain($domainPortal)->group(function () {
|
|
// Livewire Update-Route explizit für Portal-Domain registrieren
|
|
// (Notwendig weil Route-Cache/Subdomain-Routing die globalen Livewire-Routen nicht für alle Domains enthält)
|
|
Route::post(
|
|
\Livewire\Mechanisms\HandleRequests\EndpointResolver::updatePath(),
|
|
[\Livewire\Mechanisms\HandleRequests\HandleRequests::class, 'handleUpdate']
|
|
)->middleware('web')->name('portal.livewire.update');
|
|
|
|
// Livewire File-Upload-Route explizit für Portal-Domain registrieren
|
|
Route::post(
|
|
\Livewire\Mechanisms\HandleRequests\EndpointResolver::uploadPath(),
|
|
[\Livewire\Features\SupportFileUploads\FileUploadController::class, 'handle']
|
|
)->middleware(['web', 'throttle:60,1'])->name('portal.livewire.upload-file');
|
|
|
|
// Auth-Routen laden
|
|
require __DIR__.'/auth.php';
|
|
|
|
// Admin-Routes laden
|
|
require __DIR__.'/admin.php';
|
|
|
|
// Test-Route laden
|
|
require __DIR__.'/test.php';
|
|
|
|
// Display-API-Route (öffentlich zugänglich)
|
|
Route::get('/api/display/config', [\App\Http\Controllers\Api\DisplayConfigController::class, 'index']);
|
|
|
|
// FluxUI Asset-Routen explizit für Portal-Domain registrieren
|
|
// (Notwendig weil Route-Cache die globalen Flux-Routen nicht für alle Domains enthält)
|
|
Route::get('/flux/flux.js', [\Flux\AssetManager::class, 'fluxJs']);
|
|
Route::get('/flux/flux.min.js', [\Flux\AssetManager::class, 'fluxMinJs']);
|
|
Route::get('/flux/editor.css', [\Flux\AssetManager::class, 'editorCss']);
|
|
Route::get('/flux/editor.js', [\Flux\AssetManager::class, 'editorJs']);
|
|
Route::get('/flux/editor.min.js', [\Flux\AssetManager::class, 'editorMinJs']);
|
|
|
|
// Admin-Assets (Vite)
|
|
Vite::useBuildDirectory('build/portal');
|
|
});
|
|
|
|
// API-Routen für alle Domains (optional: auch dynamisch machen)
|
|
Route::domain(config('domains.domain_api', 'api.b2in.test'))->group(function () {
|
|
require __DIR__.'/api.php';
|
|
});
|
|
|
|
// Web-Routes für alle Themes (werden außerhalb der Domain-Gruppen geladen, um Duplikate zu vermeiden)
|
|
// Das Theme wird automatisch basierend auf der Domain vom ThemeServiceProvider ausgewählt
|
|
require __DIR__.'/web.php';
|
|
|
|
// Domain-spezifische Vite Build-Verzeichnisse
|
|
Route::domain($domainB2in)->group(function () {
|
|
Vite::useBuildDirectory('build/b2in');
|
|
});
|
|
|
|
Route::domain($domainB2a)->group(function () {
|
|
Vite::useBuildDirectory('build/b2a');
|
|
});
|
|
|
|
Route::domain($domainStileigentum)->group(function () {
|
|
Vite::useBuildDirectory('build/stileigentum');
|
|
});
|
|
|
|
Route::domain($domainStyle2own)->group(function () {
|
|
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');
|
|
});*/
|
|
|
|
// Fallback: Display-API für alle anderen Domains (z.B. localhost)
|
|
Route::get('/api/display/config', [\App\Http\Controllers\Api\DisplayConfigController::class, 'index']);
|