@extends('layouts.app') @section('title', __('ui.rankings_title').' โ€” Coaster World') @section('content') @php $queryBase = [ 'scope' => $scope, 'period' => $period, 'metric' => $metric, ]; if ($selectedGroup) $queryBase['group'] = $selectedGroup->slug; if ($period === 'year' && $year) $queryBase['year'] = $year; $metricIcons = [ 'xp' => 'โœฆ', 'coasters' => '๐ŸŽข', 'parks' => '๐Ÿฐ', 'badges' => '๐Ÿ†', 'challenges' => 'โšก', ]; $periodLabel = match($period) { 'month' => $from?->locale(app()->getLocale())->translatedFormat('F Y'), 'season' => __('ui.rankings_period_season_label', ['year' => $from?->format('Y')]), 'year' => $from?->format('Y'), default => __('ui.rankings_period_all'), }; $hasActivity = $entries->contains(fn ($entry) => (int) $entry[$metric] > 0); @endphp
{{ __('ui.rankings_kicker') }}

{{ __('ui.rankings_title') }}

{{ __('ui.rankings_intro') }}

@if($scope === 'group')
@if($period === 'year' && $year)@endif
@endif
{{ __('ui.rankings_period') }}
@foreach($periods as $periodKey) {{ __('ui.rankings_period_'.$periodKey) }} @endforeach
@if($period === 'year')
@if($selectedGroup)@endif
@endif
{{ __('ui.rankings_metric') }}
{{ $periodLabel }} ยท {{ __('ui.rankings_scope_count', ['count' => $eligibleCount]) }} @if($selectedGroup) ยท {{ $selectedGroup->name }} @endif
{{ __('ui.rankings_you_kicker') }}

{{ __('ui.rankings_your_positions') }}

{{ __('ui.rankings_your_positions_intro') }}

@if($hasActivity)
{{ __('ui.rankings_podium_kicker') }}

{{ __('ui.rankings_podium_title') }}

{{ __('ui.rankings_podium_intro', ['metric' => __('ui.rankings_metric_'.$metric)]) }}

@foreach($podium as $entry) @php $entryUser = $entry['user']; $displayName = $entryUser?->username ?: $entryUser?->name; $countryTranslation = $entryUser?->country?->translations?->firstWhere('locale', app()->getLocale()) ?? $entryUser?->country?->translations?->firstWhere('locale', 'en'); $countryName = $countryTranslation?->name ?: $entryUser?->country?->official_name; $isMe = $entryUser?->id === $viewer->id; @endphp
{{ $entry['position'] === 1 ? '๐Ÿฅ‡' : ($entry['position'] === 2 ? '๐Ÿฅˆ' : '๐Ÿฅ‰') }}
{{ mb_strtoupper(mb_substr((string) $displayName, 0, 1)) }}
#{{ $entry['position'] }} @if($isMe) ยท {{ __('ui.rankings_you') }} @endif @if($entryUser?->username) {{ $displayName }} @else {{ $displayName }} @endif @if($countryName)@else{{ __('ui.rankings_explorer') }}@endif ยท {{ __('ui.rankings_level_value', ['level' => $entry['explorer_level']]) }}
{{ number_format((int) $entry[$metric], 0, ',', ' ') }} {{ __('ui.rankings_metric_'.$metric) }}{{ $metric === 'xp' ? ' XP' : '' }}
๐ŸŽข {{ $entry['coasters'] }} ๐Ÿฐ {{ $entry['parks'] }} ๐Ÿ† {{ $entry['badges'] }}
@endforeach
{{ __('ui.rankings_table_kicker') }}

{{ __('ui.rankings_table_title') }}

{{ __('ui.rankings_table_intro') }}

{{ __('ui.rankings_top_count', ['count' => min(50, $eligibleCount)]) }}
{{ __('ui.rankings_position') }} {{ __('ui.rankings_explorer') }} {{ __('ui.rankings_metric_xp') }} {{ __('ui.rankings_metric_coasters') }} {{ __('ui.rankings_metric_parks') }} {{ __('ui.rankings_metric_badges') }} {{ __('ui.rankings_metric_challenges') }}
@foreach($rows as $entry) @php $entryUser = $entry['user']; $displayName = $entryUser?->username ?: $entryUser?->name; $isMe = $entryUser?->id === $viewer->id; @endphp
#{{ $entry['position'] }}
{{ mb_strtoupper(mb_substr((string) $displayName, 0, 1)) }}
@if($entryUser?->username) {{ $displayName }} @else {{ $displayName }} @endif {{ __('ui.rankings_level_value', ['level' => $entry['explorer_level']]) }} @if($isMe) ยท {{ __('ui.rankings_you') }} @endif
{{ number_format($entry['xp'], 0, ',', ' ') }} {{ $entry['coasters'] }} {{ $entry['parks'] }} {{ $entry['badges'] }} {{ $entry['challenges'] }}
@endforeach
@if($viewerEntry && !$viewerInTop) @php $displayName = $viewerEntry['user']?->username ?: $viewerEntry['user']?->name; @endphp
{{ __('ui.rankings_rank_outside_top') }} #{{ $viewerEntry['position'] }}
{{ $displayName }}
{{ number_format((int) $viewerEntry[$metric], 0, ',', ' ') }} {{ $metric === 'xp' ? 'XP' : __('ui.rankings_metric_'.$metric) }}
@endif
@endif @if(!$hasActivity)
๐Ÿ

{{ __('ui.rankings_no_data_title') }}

{{ __('ui.rankings_no_data_text') }}

{{ __('ui.rankings_progression_action') }}
@endif
๐Ÿ”’
{{ __('ui.rankings_privacy_title') }}

{{ __('ui.rankings_privacy_note') }}

@if(in_array($period, ['month', 'season'], true)) {{ __('ui.rankings_date_precision_note') }} @endif
@endsection