first commit
This commit is contained in:
commit
405df0a122
3083 changed files with 69203 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
|
||||
|
||||
// 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');
|
||||
48
routes/domains.php
Normal file
48
routes/domains.php
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Illuminate\Support\Facades\Vite;
|
||||
|
||||
// Portal-Bereich auf https://pr-copilot.test
|
||||
Route::domain('pr-copilot.test')->group(function () {
|
||||
// Auth-Routen laden
|
||||
require __DIR__ . '/auth.php';
|
||||
|
||||
// Admin-Routes laden
|
||||
require __DIR__ . '/admin.php';
|
||||
|
||||
// Portal-Assets (Vite) - Port 5177
|
||||
Vite::useBuildDirectory('build/portal');
|
||||
});
|
||||
|
||||
// API-Routen für alle Domains
|
||||
Route::domain('api.pr-copilot.test')->group(function () {
|
||||
require __DIR__ . '/api.php';
|
||||
});
|
||||
|
||||
|
||||
// Theme 1 für presseecho.test
|
||||
Route::domain('presseecho.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-presseecho.css');
|
||||
});
|
||||
|
||||
Vite::useBuildDirectory('build/web');
|
||||
});
|
||||
|
||||
// Theme 2 für businessportal24.test
|
||||
Route::domain('businessportal24.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-businessportal24.css');
|
||||
});
|
||||
|
||||
Vite::useBuildDirectory('build/web');
|
||||
});
|
||||
114
routes/web.php
Normal file
114
routes/web.php
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
// Gemeinsame Web-Routes für alle Landingpages
|
||||
// Jede Landing-Page hat das gleiche Gerüst, aber unterschiedliches Styling
|
||||
|
||||
// Hauptseite - dynamisch basierend auf Domain
|
||||
Route::get('/', function () {
|
||||
$domain = request()->getHost();
|
||||
|
||||
// Domain-basierte View-Auswahl
|
||||
if (str_contains($domain, 'presseecho')) {
|
||||
return view('web.presseecho');
|
||||
} elseif (str_contains($domain, 'businessportal24')) {
|
||||
return view('web.businessportal24');
|
||||
}
|
||||
|
||||
// Fallback für andere Domains oder lokale Entwicklung
|
||||
return view('web.businessportal24');
|
||||
})->name('home');
|
||||
|
||||
// Preise & Leistungen
|
||||
Route::get('/preise', function () {
|
||||
return view('web.preise');
|
||||
})->name('preise');
|
||||
|
||||
// FAQ - Häufig gestellte Fragen
|
||||
Route::get('/faq', function () {
|
||||
return view('web.faq');
|
||||
})->name('faq');
|
||||
|
||||
// Kontakt
|
||||
Route::get('/kontakt', function () {
|
||||
return view('web.kontakt');
|
||||
})->name('kontakt');
|
||||
|
||||
// Über uns
|
||||
Route::get('/ueber-uns', function () {
|
||||
return view('web.ueber-uns');
|
||||
})->name('ueber-uns');
|
||||
|
||||
// Veröffentlichen
|
||||
Route::get('/veroeffentlichen', function () {
|
||||
return view('web.veroeffentlichen');
|
||||
})->name('veroeffentlichen');
|
||||
|
||||
// Kategorien
|
||||
Route::get('/kategorien', function () {
|
||||
return view('web.kategorien');
|
||||
})->name('kategorien');
|
||||
|
||||
// Suche
|
||||
Route::get('/suche', function () {
|
||||
return view('web.suche');
|
||||
})->name('suche');
|
||||
|
||||
// Services
|
||||
Route::get('/newsrooms', function () {
|
||||
return view('web.newsrooms');
|
||||
})->name('newsrooms');
|
||||
|
||||
Route::get('/api', function () {
|
||||
return view('web.api');
|
||||
})->name('api');
|
||||
|
||||
// Über uns - Unterseiten
|
||||
Route::get('/team', function () {
|
||||
return view('web.team');
|
||||
})->name('team');
|
||||
|
||||
Route::get('/partner', function () {
|
||||
return view('web.partner');
|
||||
})->name('partner');
|
||||
|
||||
Route::get('/karriere', function () {
|
||||
return view('web.karriere');
|
||||
})->name('karriere');
|
||||
|
||||
Route::get('/presse', function () {
|
||||
return view('web.presse');
|
||||
})->name('presse');
|
||||
|
||||
// Hilfe & Support
|
||||
Route::get('/hilfe', function () {
|
||||
return view('web.hilfe');
|
||||
})->name('hilfe');
|
||||
|
||||
// Rechtliches
|
||||
Route::get('/impressum', function () {
|
||||
return view('web.impressum');
|
||||
})->name('impressum');
|
||||
|
||||
Route::get('/datenschutz', function () {
|
||||
return view('web.datenschutz');
|
||||
})->name('datenschutz');
|
||||
|
||||
Route::get('/agb', function () {
|
||||
return view('web.agb');
|
||||
})->name('agb');
|
||||
|
||||
Route::get('/cookies', function () {
|
||||
return view('web.cookies');
|
||||
})->name('cookies');
|
||||
|
||||
// Kategorie Seite (z.B. IT & Software)
|
||||
Route::get('/kategorie/{slug}', function ($slug) {
|
||||
return view('web.kategorie', ['categorySlug' => $slug]);
|
||||
})->name('kategorie');
|
||||
|
||||
// Release Detail Seite
|
||||
Route::get('/release/{slug}', function ($slug) {
|
||||
return view('web.release-detail', ['releaseSlug' => $slug]);
|
||||
})->name('release.detail');
|
||||
Loading…
Add table
Add a link
Reference in a new issue