344 lines
12 KiB
PHP
344 lines
12 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>{{ $event->title }} - Veranstaltungen</title>
|
|
<style>
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
body {
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
min-height: 100vh;
|
|
padding: 40px 20px;
|
|
}
|
|
.container {
|
|
max-width: 900px;
|
|
margin: 0 auto;
|
|
}
|
|
.back-link {
|
|
display: inline-block;
|
|
color: white;
|
|
text-decoration: none;
|
|
margin-bottom: 30px;
|
|
font-weight: 600;
|
|
transition: transform 0.2s;
|
|
}
|
|
.back-link:hover {
|
|
transform: translateX(-5px);
|
|
}
|
|
.detail-card {
|
|
background: white;
|
|
border-radius: 15px;
|
|
overflow: hidden;
|
|
box-shadow: 0 20px 60px rgba(0,0,0,0.2);
|
|
}
|
|
.detail-image {
|
|
width: 100%;
|
|
height: 400px;
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 8em;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
.detail-image img {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
}
|
|
.detail-content {
|
|
padding: 50px;
|
|
}
|
|
.event-category {
|
|
display: inline-block;
|
|
background: #f0f0f0;
|
|
color: #667eea;
|
|
padding: 8px 20px;
|
|
border-radius: 25px;
|
|
font-size: 0.9em;
|
|
font-weight: 600;
|
|
margin-bottom: 20px;
|
|
}
|
|
.event-title {
|
|
font-size: 2.5em;
|
|
font-weight: 800;
|
|
color: #333;
|
|
margin-bottom: 30px;
|
|
line-height: 1.2;
|
|
}
|
|
.event-source {
|
|
display: inline-block;
|
|
background: #e8f0ff;
|
|
color: #667eea;
|
|
padding: 8px 15px;
|
|
border-radius: 5px;
|
|
font-size: 0.85em;
|
|
margin-bottom: 30px;
|
|
margin-left: 20px;
|
|
}
|
|
.info-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
|
gap: 30px;
|
|
margin-bottom: 40px;
|
|
padding-bottom: 40px;
|
|
border-bottom: 2px solid #f0f0f0;
|
|
}
|
|
.info-box {
|
|
display: flex;
|
|
gap: 15px;
|
|
}
|
|
.info-icon {
|
|
font-size: 2em;
|
|
min-width: 40px;
|
|
}
|
|
.info-text h4 {
|
|
font-size: 0.85em;
|
|
text-transform: uppercase;
|
|
color: #999;
|
|
font-weight: 600;
|
|
margin-bottom: 5px;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
.info-text p {
|
|
font-size: 1.1em;
|
|
color: #333;
|
|
font-weight: 600;
|
|
line-height: 1.4;
|
|
}
|
|
.section-title {
|
|
font-size: 1.5em;
|
|
font-weight: 700;
|
|
color: #333;
|
|
margin-top: 40px;
|
|
margin-bottom: 20px;
|
|
padding-bottom: 15px;
|
|
border-bottom: 3px solid #667eea;
|
|
}
|
|
.description {
|
|
color: #555;
|
|
font-size: 1.05em;
|
|
line-height: 1.8;
|
|
margin-bottom: 40px;
|
|
}
|
|
.occurrences {
|
|
background: #f8f9ff;
|
|
padding: 25px;
|
|
border-radius: 10px;
|
|
margin-bottom: 40px;
|
|
}
|
|
.occurrence-item {
|
|
background: white;
|
|
padding: 20px;
|
|
border-radius: 8px;
|
|
margin-bottom: 15px;
|
|
border-left: 4px solid #667eea;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
}
|
|
.occurrence-item:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
.occurrence-date {
|
|
font-weight: 700;
|
|
font-size: 1.1em;
|
|
color: #333;
|
|
}
|
|
.occurrence-time {
|
|
color: #999;
|
|
font-size: 0.9em;
|
|
}
|
|
.occurrence-status {
|
|
display: inline-block;
|
|
background: #e8f5e9;
|
|
color: #2e7d32;
|
|
padding: 5px 15px;
|
|
border-radius: 20px;
|
|
font-size: 0.85em;
|
|
font-weight: 600;
|
|
}
|
|
.action-buttons {
|
|
display: flex;
|
|
gap: 15px;
|
|
margin-top: 50px;
|
|
flex-wrap: wrap;
|
|
}
|
|
.btn {
|
|
padding: 15px 40px;
|
|
border-radius: 8px;
|
|
text-decoration: none;
|
|
font-weight: 600;
|
|
font-size: 1em;
|
|
border: none;
|
|
cursor: pointer;
|
|
transition: all 0.3s;
|
|
}
|
|
.btn-primary {
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
color: white;
|
|
}
|
|
.btn-primary:hover {
|
|
transform: translateY(-2px);
|
|
box-shadow: 0 10px 25px rgba(102, 126, 234, 0.4);
|
|
}
|
|
.btn-secondary {
|
|
background: #f0f0f0;
|
|
color: #333;
|
|
border: 2px solid #e0e0e0;
|
|
}
|
|
.btn-secondary:hover {
|
|
background: #e8e8e8;
|
|
}
|
|
.contact-info {
|
|
background: #f8f9ff;
|
|
padding: 25px;
|
|
border-radius: 10px;
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
|
gap: 20px;
|
|
}
|
|
.contact-item {
|
|
display: flex;
|
|
gap: 15px;
|
|
}
|
|
.contact-item strong {
|
|
color: #333;
|
|
}
|
|
.contact-item a {
|
|
color: #667eea;
|
|
text-decoration: none;
|
|
}
|
|
.contact-item a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<a href="/" class="back-link">← Zurück zur Übersicht</a>
|
|
|
|
<div class="detail-card">
|
|
<div class="detail-image">
|
|
@if($event->image_url)
|
|
<img src="{{ $event->image_url }}" alt="{{ $event->title }}">
|
|
@else
|
|
<span>🎭</span>
|
|
@endif
|
|
</div>
|
|
|
|
<div class="detail-content">
|
|
@if($event->category)
|
|
<span class="event-category">{{ $event->category }}</span>
|
|
@endif
|
|
@if($event->source)
|
|
<span class="event-source">Quelle: {{ $event->source->name }}</span>
|
|
@endif
|
|
|
|
<h1 class="event-title">{{ $event->title }}</h1>
|
|
|
|
<div class="info-grid">
|
|
@if($event->occurrences->count() > 0)
|
|
@php $firstOccurrence = $event->occurrences->first(); @endphp
|
|
<div class="info-box">
|
|
<div class="info-icon">📅</div>
|
|
<div class="info-text">
|
|
<h4>Nächster Termin</h4>
|
|
<p>{{ $firstOccurrence->start_datetime->format('d. F Y') }}</p>
|
|
</div>
|
|
</div>
|
|
<div class="info-box">
|
|
<div class="info-icon">⏰</div>
|
|
<div class="info-text">
|
|
<h4>Uhrzeit</h4>
|
|
<p>{{ $firstOccurrence->start_datetime->format('H:i') }}
|
|
@if($firstOccurrence->end_datetime)
|
|
- {{ $firstOccurrence->end_datetime->format('H:i') }}
|
|
@endif
|
|
Uhr
|
|
</p>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
@if($event->location)
|
|
<div class="info-box">
|
|
<div class="info-icon">📍</div>
|
|
<div class="info-text">
|
|
<h4>Ort</h4>
|
|
<p>{{ $event->location }}</p>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
</div>
|
|
|
|
@if($event->description)
|
|
<h2 class="section-title">Beschreibung</h2>
|
|
<p class="description">{{ $event->description }}</p>
|
|
@endif
|
|
|
|
@if($event->occurrences->count() > 0)
|
|
<h2 class="section-title">Alle Termine ({{ $event->occurrences->count() }})</h2>
|
|
<div class="occurrences">
|
|
@foreach($event->occurrences as $occurrence)
|
|
<div class="occurrence-item">
|
|
<div>
|
|
<div class="occurrence-date">
|
|
📅 {{ $occurrence->start_datetime->format('d. F Y') }}
|
|
</div>
|
|
<div class="occurrence-time">
|
|
⏰ {{ $occurrence->start_datetime->format('H:i') }}
|
|
@if($occurrence->end_datetime)
|
|
- {{ $occurrence->end_datetime->format('H:i') }}
|
|
@endif
|
|
Uhr
|
|
</div>
|
|
</div>
|
|
<span class="occurrence-status">{{ ucfirst($occurrence->status) }}</span>
|
|
</div>
|
|
@endforeach
|
|
</div>
|
|
@endif
|
|
|
|
@if($event->contact_email || $event->contact_phone || $event->website_url)
|
|
<h2 class="section-title">Kontakt & Links</h2>
|
|
<div class="contact-info">
|
|
@if($event->contact_email)
|
|
<div class="contact-item">
|
|
<strong>✉️ Email:</strong>
|
|
<a href="mailto:{{ $event->contact_email }}">{{ $event->contact_email }}</a>
|
|
</div>
|
|
@endif
|
|
@if($event->contact_phone)
|
|
<div class="contact-item">
|
|
<strong>📞 Telefon:</strong>
|
|
<a href="tel:{{ $event->contact_phone }}">{{ $event->contact_phone }}</a>
|
|
</div>
|
|
@endif
|
|
@if($event->website_url)
|
|
<div class="contact-item">
|
|
<strong>🌐 Website:</strong>
|
|
<a href="{{ $event->website_url }}" target="_blank" rel="noopener">Zur Website</a>
|
|
</div>
|
|
@endif
|
|
</div>
|
|
@endif
|
|
|
|
<div class="action-buttons">
|
|
@if($event->website_url)
|
|
<a href="{{ $event->website_url }}" class="btn btn-primary" target="_blank">🎫 Jetzt Tickets buchen</a>
|
|
@endif
|
|
<a href="/" class="btn btn-secondary">Mehr Veranstaltungen entdecken</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|