@extends('layouts.app') @php use App\Services\Translator; @endphp @section('title', Translator::league($league['name'] ?? '', $country['name'] ?? null) . ' - ' . __('messages.app_name')) @section('description', (Translator::league($league['name'] ?? '', $country['name'] ?? null)) . ' - ' . __('messages.league_meta_description')) @section('og_image', $league['logo'] ?? asset('images/logosportirak.png')) @section('content') @php $lang = app()->getLocale(); $leagueName = Translator::league($league['name'] ?? '', $country['name'] ?? null); /** * Format round name to short form like Flutter does (e.g. "Regular Season - 15" → "الجولة 15" or "Journée 15") */ $formatRound = function(?string $round) use ($lang) { if (!$round) return ''; if (preg_match('/(\d+)/', $round, $m)) { $num = $m[1]; if ($lang === 'ar') return "الجولة {$num}"; if ($lang === 'fr') return "Journée {$num}"; return "Round {$num}"; } return $round; }; /** * Get rank color based on position description (Champions League, Europa, Relegation, etc) */ $getRankColor = function(?string $description): string { if (!$description) return 'transparent'; $d = strtolower($description); if (str_contains($d, 'champions league') || str_contains($d, 'promotion')) return '#1A8D48'; if (str_contains($d, 'europa league')) return '#E67E22'; if (str_contains($d, 'conference league')) return '#3498DB'; if (str_contains($d, 'relegation')) return '#E74C3C'; return 'transparent'; }; /** * Translate rank description */ $translateDescription = function(?string $desc) use ($lang) { if (!$desc) return ''; $d = strtolower($desc); if ($lang === 'ar') { if (str_contains($d, 'champions league')) return 'دوري الأبطال'; if (str_contains($d, 'europa league')) return 'الدوري الأوروبي'; if (str_contains($d, 'conference league')) return 'دوري المؤتمر'; if (str_contains($d, 'relegation')) return 'الهبوط'; if (str_contains($d, 'promotion')) return 'الصعود'; } elseif ($lang === 'fr') { if (str_contains($d, 'champions league')) return 'Ligue des Champions'; if (str_contains($d, 'europa league')) return 'Ligue Europa'; if (str_contains($d, 'conference league')) return 'Ligue Conférence'; if (str_contains($d, 'relegation')) return 'Relégation'; if (str_contains($d, 'promotion')) return 'Promotion'; } return $desc; }; // Prepare finished matches (most recent first — sort by fixture date desc) $finishedMatches = collect($lastFixtures) ->sortByDesc(fn($m) => $m['fixture']['date'] ?? '') ->values() ->all(); // Build legend (unique descriptions with colors) $legend = []; foreach ($standings as $group) { foreach ($group as $row) { $desc = $row['description'] ?? ''; if ($desc) { $color = $getRankColor($desc); if ($color !== 'transparent' && !isset($legend[$desc])) { $legend[$desc] = $color; } } } } @endphp
{{ __('messages.no_matches') }}
{{ __('messages.no_matches') }}