Review monitoring V1.1 (o)

This commit is contained in:
Paul Eisenbock 2026-03-04 16:19:33 +01:00
parent 7b48776d6c
commit ae42dc597a
2 changed files with 126 additions and 5 deletions

View File

@ -429,3 +429,109 @@
font-size: 0.88rem; font-size: 0.88rem;
} }
} }
/* ==========================================================
PRODUCT REVIEWS
========================================================== */
.reviews {
max-width: 1200px;
margin: 3rem auto 5rem;
padding: 0 1.5rem;
display: flex;
flex-direction: column;
gap: 1rem;
animation: fadeInUp 0.6s ease 0.4s both;
}
.reviews-title {
color: white;
font-size: 22px;
font-weight: 600;
margin-bottom: 0.5rem;
}
/* Review Card */
.review-card {
background: #1c2533; /* leicht dunkler als shop */
border: 1px solid #2a374a;
border-radius: 14px;
padding: 1.2rem 1.5rem;
transition: all var(--transition-smooth);
position: relative;
overflow: hidden;
}
/* leichter Akzent rechts statt links */
.review-card::after {
content: "";
position: absolute;
right: 0;
top: 0;
bottom: 0;
width: 3px;
background: linear-gradient(180deg, var(--color-accent), var(--color-primary));
opacity: 0;
transition: opacity var(--transition-smooth);
}
.review-card:hover {
background: #223047;
transform: translateY(-3px);
box-shadow: 0 8px 18px rgba(0,0,0,0.25);
}
.review-card:hover::after {
opacity: 1;
}
/* Header */
.review-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 0.6rem;
}
.review-user {
font-weight: 600;
color: white;
font-size: 15px;
}
/* Sterne */
.review-rating {
display: flex;
gap: 4px;
}
.star {
font-size: 16px;
color: #475569;
transition: transform 0.2s ease;
}
.star.filled {
color: #fbbf24;
}
.review-card:hover .star.filled {
transform: scale(1.15);
}
/* Kommentar */
.review-comment {
color: #cbd5e1;
font-size: 14px;
line-height: 1.6;
}
/* Keine Reviews */
.no-review {
background: #1f2a3a;
border: 1px solid #2f3c52;
border-radius: 12px;
padding: 1rem 1.5rem;
color: #94a3b8;
}

View File

@ -290,20 +290,36 @@ $productId = isset($_GET['id']) ? (int)$_GET['id'] : 0;
<div class="reviews"> <div class="reviews">
<h2 class="reviews-title">Bewertungen</h2>
<?php if (!empty($reviews)): ?> <?php if (!empty($reviews)): ?>
<?php foreach ($reviews as $review): ?> <?php foreach ($reviews as $review): ?>
<div class="one-review"> <div class="review-card">
<?= htmlspecialchars($review['rating']) ?>
<?= htmlspecialchars($review['comment']) ?>
<div class="review-header">
<div class="review-user">
<?= htmlspecialchars($review['displayname']) ?>
</div>
<div class="review-rating">
<?php for ($i = 1; $i <= 5; $i++): ?>
<span class="star <?= $i <= $review['rating'] ? 'filled' : '' ?>"></span>
<?php endfor; ?>
</div>
</div>
<div class="review-comment">
<?= nl2br(htmlspecialchars($review['comment'])) ?>
</div>
</div> </div>
<?php endforeach; ?> <?php endforeach; ?>
<?php else: ?> <?php else: ?>
<div class="no-shop"> <div class="no-review">
<p>Es gibt noch keine Bewertungen.</p> <p>Es gibt noch keine Bewertungen.</p>
</div> </div>
<?php endif; ?> <?php endif; ?>
@ -311,6 +327,5 @@ $productId = isset($_GET['id']) ? (int)$_GET['id'] : 0;
</div> </div>
<?php endif; ?> <?php endif; ?>
<?php include 'footer.php'; ?> <?php include 'footer.php'; ?>