@extends('layouts.app') @section('content')
@php $heroBg = $auberges->imageSrc ?? asset('assets/img/no-image.jpg'); @endphp

{{ __('site.republic') }}

{{ __('site.ministry_name') }}

{{ trans_field($auberges, 'nom') }}


@if($auberges->map_link) @else @php // Initialiser les variables $lat = null; $lng = null; $zoom = '14'; $gouvernoratName = $auberges->gouvernorat ? ($auberges->gouvernorat->nom_fr ?? 'Tunisie') : 'Tunisie'; $delegationName = $auberges->delegation ? ($auberges->delegation->nom_fr ?? null) : null; $foundInJson = false; // Chercher les coordonnées de la délégation dans tn-points.json if($delegationName && $auberges->gouvernorat) { // Chemin vers le fichier JSON $jsonPath = public_path('assets/tn-points.json'); // Vérifier si le fichier existe if(file_exists($jsonPath)) { // Charger le fichier JSON $tnPointsJson = file_get_contents($jsonPath); $governoratsData = json_decode($tnPointsJson, true); if($governoratsData && is_array($governoratsData)) { // Noms à comparer $gouverNomFr = $auberges->gouvernorat->nom_fr ?? ''; $gouverNomAr = $auberges->gouvernorat->nom_ar ?? ''; $delegNomFr = $auberges->delegation->nom_fr ?? ''; $delegNomAr = $auberges->delegation->nom_ar ?? ''; // Debug: Afficher les noms pour vérification // echo ""; // echo ""; // echo ""; // echo ""; foreach($governoratsData as $governorat) { if(!isset($governorat['Name']) || !isset($governorat['NameAr'])) { continue; } // Comparer le nom du gouvernorat $jsonGouverName = trim($governorat['Name']); $jsonGouverNameAr = trim($governorat['NameAr']); $matchGouver = ( strcasecmp($jsonGouverName, trim($gouverNomFr)) === 0 || strcasecmp($jsonGouverNameAr, trim($gouverNomAr)) === 0 ); if($matchGouver && isset($governorat['Delegations']) && is_array($governorat['Delegations'])) { foreach($governorat['Delegations'] as $delegation) { if(!isset($delegation['Name']) || !isset($delegation['NameAr'])) { continue; } $jsonDelegName = trim($delegation['Name']); $jsonDelegNameAr = trim($delegation['NameAr']); // Comparer le nom de la délégation $matchDeleg = ( strcasecmp($jsonDelegName, trim($delegNomFr)) === 0 || strcasecmp($jsonDelegNameAr, trim($delegNomAr)) === 0 ); if($matchDeleg && isset($delegation['Latitude']) && isset($delegation['Longitude'])) { $lat = (float)$delegation['Latitude']; $lng = (float)$delegation['Longitude']; $foundInJson = true; // echo ""; break 2; } } } } } } else { // echo ""; } } // Si pas trouvé dans le JSON, essayer les coordonnées de l'auberge (si existent) if(!$foundInJson && isset($auberges->latitude) && isset($auberges->longitude) && $auberges->latitude && $auberges->longitude) { $lat = $auberges->latitude; $lng = $auberges->longitude; $zoom = '15'; } // Fallback: coordonnées par défaut (Tunis) if(!$lat || !$lng) { $lat = '36.8065'; $lng = '10.1815'; $zoom = '12'; $foundInJson = false; // Pas trouvé dans JSON } // Construire l'URL de la carte $mapUrl = "https://maps.google.com/maps?q={$lat},{$lng}&z={$zoom}&output=embed&hl=fr"; // Déterminer le titre et le message if($foundInJson && $delegationName) { $mapTitle = "Carte de la délégation de {$delegationName}"; $infoMessage = "Position approximative de la délégation de {$delegationName}"; } elseif(isset($auberges->latitude) && isset($auberges->longitude) && $auberges->latitude && $auberges->longitude) { $mapTitle = "Carte de l'auberge {$auberges->nom_fr}"; $infoMessage = "Position approximative de l'auberge"; } else { $mapTitle = "Carte de Tunisie"; $infoMessage = "Position par défaut (Tunis)"; } @endphp
{{ $infoMessage }} @if($foundInJson && $gouvernoratName)
Gouvernorat de {{ $gouvernoratName }} @endif
@endif
{{-- ===== COLONNE DROITE : INFOS ===== --}}
{{ __('site.about_center') }}

{{ trans_field($auberges,'nom') }}

{!! trans_field($auberges,'description') !!}

{{-- COLONNE 1 --}}

{{ __('site.services_title') }}

@if($auberges->nb_chambres > 0) {{ trans_choice('site.auberge_capacity_beds', $auberges->nb_chambres, ['count' => $auberges->nb_chambres]) }} @endif @if($auberges->capacite_tentes > 0) {{ trans_choice('site.auberge_capacity_tents', $auberges->capacite_tentes, ['count' => $auberges->capacite_tentes]) }} @endif
@foreach($auberges->services_auberge as $service)
{{ trans_field($service,'nom') }}
@endforeach

{{ __('site.available_spaces_title') }}

@foreach($auberges->espaces as $espace)
{{ trans_field($espace,'nom') }}
@endforeach
{{-- COLONNE 2 --}}

{{ __('site.sports_title') }}

@foreach($auberges->terrains as $sport)
{{ trans_field($sport,'nom') }}
@endforeach

{{ __('site.cultural_spaces_title') }}

{{ trans_field($auberges,'lieux_culturels') }}
{{ __('site.call_center') }}

{{ __('site.call_center_desc') }}

{{ $auberges->contact_tel }}
{{ __('site.our_location') }}

{{ trans_field($auberges,'adresse') }}

{{-- Section Visite Virtuelle 360° --}} @php // Utiliser le nom arabe car les dossiers Pannellum sont en arabe $aubergeName = $auberges->nom_ar ?? trans_field($auberges, 'nom'); @endphp @if(has_virtual_tour($aubergeName))
{{ __('site.virtual_tour_label') }}

{{ __('site.virtual_tour_subtitle') }}

{{ __('site.virtual_tour_description') }}

{{-- Minimap avec vignettes --}}

{{ __('site.virtual_tour_controls') }}

{{ count_virtual_tour_images($aubergeName) }} {{ __('site.panoramic_views') }}

{{-- CSS et JavaScript pour la minimap --}} @endif
{{ __('site.about_service_title') }}

{!! __('site.about_text') !!}

{{ __('site.about_we_offer') }}

  • {{ __('site.about_feature_rooms') }}
  • {{ __('site.about_feature_food') }}
  • {{ __('site.about_feature_facilities') }}
  • {{ __('site.about_feature_prices') }}

{{ __('site.map_alt') }}
@php // Positions approximatives des gouvernorats sur la carte de Tunisie (en %) $gouvernoratPositions = [ 'Tunis' => ['left' => 58, 'top' => 10], 'Ariana' => ['left' => 54, 'top' => 6], 'Ben Arous' => ['left' => 59, 'top' => 12], 'Manouba' => ['left' => 56, 'top' => 8], 'Bizerte' => ['left' => 45, 'top' => 5], 'Nabeul' => ['left' => 69, 'top' => 8], 'Zaghouan' => ['left' => 48, 'top' => 14], 'Béja' => ['left' => 38, 'top' => 10], 'Jendouba' => ['left' => 25, 'top' => 10], 'Kef' => ['left' => 26, 'top' => 18], 'Siliana' => ['left' => 40, 'top' => 19], 'Kairouan' => ['left' => 40, 'top' => 25], 'Kasserine' => ['left' => 26, 'top' => 26], 'Sidi Bouzid' => ['left' => 38, 'top' => 35], 'Sousse' => ['left' => 60, 'top' => 20], 'Monastir' => ['left' => 63, 'top' => 25], 'Mahdia' => ['left' => 62, 'top' => 28], 'Sfax' => ['left' => 54, 'top' => 36], 'Gabès' => ['left' => 48, 'top' => 48], 'Mednine' => ['left' => 62, 'top' => 50], 'Tataouine' => ['left' => 48, 'top' => 75], 'Gafsa' => ['left' => 26, 'top' => 41], 'Tozeur' => ['left' => 9, 'top' => 46], 'Kébili' => ['left' => 20, 'top' => 54], ]; // Récupérer toutes les auberges avec leurs gouvernorats $toutesAuberges = \App\Models\Auberge::with(['gouvernorat', 'delegation'])->get(); @endphp @foreach($toutesAuberges as $auberge) @php $gouvernoratNom = $auberge->gouvernorat->nom_fr ?? ''; $position = $gouvernoratPositions[$gouvernoratNom] ?? ['left' => 50, 'top' => 50]; // Ajouter une petite variation pour éviter la superposition $left = $position['left'] + rand(-2, 5); $top = $position['top'] + rand(-2, 2); $nomAuberge = trans_field($auberge, 'nom') ?? $auberge->nom_ar; $delegationNom = trans_field($auberge->delegation, 'nom') ?? ''; @endphp @endforeach
@auth {{ __('site.book_now') }} @endauth @guest {{ __('site.login_first') }} @endguest
@endsection