@extends('layouts.app') @section('title', 'Browse Courses — Coursify') @push('styles') @endpush @section('content') {{-- ════════════════════════════════════════════════════ --}} {{-- PAGE HERO --}} {{-- ════════════════════════════════════════════════════ --}}

Find your perfect course

Browse our curated collection of courses from world-class instructors. Filter, compare, and start learning today.

{{-- Search form (terpisah dari filterForm agar tidak konflik) --}}
{{-- Pertahankan filter aktif saat search disubmit --}} @foreach(request()->except('search', 'page') as $key => $value) @if(is_array($value)) @foreach($value as $v) @endforeach @else @endif @endforeach 🔍
{{-- Popular searches --}} {{-- Stats bar (dari DB via controller) --}}
{{ $totalCourses }}+
Courses
{{ $categories->count() }}+
Categories
50K+
Students
98%
Satisfaction
{{-- ════════════════════════════════════════════════════ --}} {{-- MAIN CONTENT --}} {{-- ════════════════════════════════════════════════════ --}}
{{-- ═══════════════════════════════════════ --}} {{-- FILTER SIDEBAR --}} {{-- ═══════════════════════════════════════ --}}
@if(request()->filled('search')) @endif
{{-- ═══════════════════════════════════════ --}} {{-- RESULTS AREA --}} {{-- ═══════════════════════════════════════ --}}
{{-- Toolbar --}}
{{ $courses->total() }} course{{ $courses->total() !== 1 ? 's' : '' }} found @if(request('search')) for "{{ request('search') }}" @endif
{{-- Active Filters (dinamis dari request()) --}} @php $activeFilters = []; foreach ((array) request('category', []) as $slug) { $cat = $categories->firstWhere('slug', $slug); if ($cat) $activeFilters[] = ['label' => $cat->name, 'param' => 'category', 'value' => $slug]; } foreach ((array) request('difficulty', []) as $diff) { $activeFilters[] = ['label' => ucfirst($diff), 'param' => 'difficulty', 'value' => $diff]; } foreach ((array) request('price', []) as $p) { $label = $p === 'free' ? 'Free' : 'Premium'; $activeFilters[] = ['label' => $label, 'param' => 'price', 'value' => $p]; } if (request()->filled('rating')) { $activeFilters[] = ['label' => request('rating').'+ stars', 'param' => 'rating', 'value' => request('rating')]; } foreach ((array) request('language', []) as $lang) { $label = $lang === 'id' ? 'Indonesia' : 'English'; $activeFilters[] = ['label' => $label, 'param' => 'language', 'value' => $lang]; } if (request()->filled('search')) { $activeFilters[] = ['label' => '"'.request('search').'"', 'param' => 'search', 'value' => request('search')]; } @endphp @if(count($activeFilters) > 0)
Active: @foreach($activeFilters as $filter) {{ $filter['label'] }} @endforeach
@endif {{-- Course Grid --}}
@forelse($courses as $course) @include('components.course-card', ['course' => $course]) @empty
No courses found

@if(request()->hasAny(['search', 'category', 'difficulty', 'price', 'rating', 'language'])) Try adjusting your filters or search terms. @else No published courses yet. Check back soon! @endif

Clear filters & browse all
@endforelse
{{-- Pagination --}} @if($courses->hasPages())

Showing {{ $courses->firstItem() }}–{{ $courses->lastItem() }} of {{ $courses->total() }} courses

@endif
{{-- end .results-area --}}
{{-- end .layout-grid --}}
{{-- end .container --}}
@endsection @push('scripts') @endpush