reviews.blade.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. {{--
  2. Blade-шаблон блока «Отзывы клиентов».
  3. $data:
  4. label — надпись над заголовком
  5. heading — заголовок секции
  6. review_ids — массив ID отзывов (из таблицы reviews), выбранных в admin
  7. Отзывы загружаются из БД по ID, только is_active=true.
  8. Управление отзывами — раздел «Отзывы» в AdminLTE (ReviewAdminController).
  9. --}}
  10. @php
  11. $reviewIds = array_map('intval', $data['review_ids'] ?? []);
  12. $items = collect();
  13. if (!empty($reviewIds)) {
  14. $items = \App\Models\Review::whereIn('id', $reviewIds)
  15. ->where('is_active', true)
  16. ->orderBy('sort_order')
  17. ->orderByDesc('created_at')
  18. ->get();
  19. }
  20. @endphp
  21. @if ($items->isNotEmpty())
  22. <section class="reviews-section">
  23. <div class="container">
  24. @if (($data['label'] ?? '') || ($data['heading'] ?? ''))
  25. <div class="sh reveal">
  26. @if ($data['label'] ?? '')
  27. <div class="sh-label">{{ $data['label'] }}</div>
  28. @endif
  29. @if ($data['heading'] ?? '')
  30. <h2>{{ $data['heading'] }}</h2>
  31. @endif
  32. </div>
  33. @endif
  34. <div class="reviews-grid stagger">
  35. @foreach ($items as $review)
  36. @php $stars = max(1, min(5, $review->rating)); @endphp
  37. <div class="review-card">
  38. {{-- Марка авто --}}
  39. @if ($review->car_name)
  40. <div class="review-car">{{ $review->car_name }}</div>
  41. @endif
  42. {{-- Звёзды --}}
  43. <div class="review-stars">
  44. @for ($i = 1; $i <= 5; $i++)
  45. <span>{{ $i <= $stars ? '★' : '☆' }}</span>
  46. @endfor
  47. </div>
  48. {{-- Текст отзыва --}}
  49. <div class="review-text">{{ $review->body }}</div>
  50. {{-- Автор + дата --}}
  51. <div class="review-author">
  52. <div class="review-av">
  53. {{ mb_strtoupper(mb_substr($review->author, 0, 1)) }}
  54. </div>
  55. <div>
  56. <div class="review-name">{{ $review->author }}</div>
  57. @if ($review->review_date)
  58. <div class="review-date">{{ $review->review_date->format('d.m.Y') }}</div>
  59. @endif
  60. </div>
  61. </div>
  62. </div>
  63. @endforeach
  64. </div>
  65. </div>
  66. </section>
  67. @endif