@version(2) @load('css/lodging.css') @load('js/lodging.js') @php // 숙소 유형 표시 이름. 출력식 안에서 동적 속성을 읽지 않도록 여기서 미리 만든다 $ldg_type_labels = [ 'hotel' => $lang->lodging_type_hotel, 'motel' => $lang->lodging_type_motel, 'pension' => $lang->lodging_type_pension, 'guesthouse' => $lang->lodging_type_guesthouse, 'resort' => $lang->lodging_type_resort, ]; $ldg_mid = $module_info->mid; $ldg_today = date('Y-m-d'); $ldg_tomorrow = date('Y-m-d', strtotime('+1 day')); $ldg_in = $checkin !== '' ? substr($checkin, 0, 4) . '-' . substr($checkin, 4, 2) . '-' . substr($checkin, 6, 2) : ''; $ldg_out = $checkout !== '' ? substr($checkout, 0, 4) . '-' . substr($checkout, 4, 2) . '-' . substr($checkout, 6, 2) : ''; $ldg_base = ['mid' => $ldg_mid, 'act' => 'dispLodgingIndex']; if ($stay_type === 'dayuse') { $ldg_base['stay_type'] = 'dayuse'; } if ($checkin !== '') { $ldg_base['checkin'] = $checkin; } if ($checkout !== '' && $stay_type !== 'dayuse') { $ldg_base['checkout'] = $checkout; } if ($person > 0) { $ldg_base['person'] = $person; } if ($q !== '') { $ldg_base['q'] = $q; } if ($sort !== '') { $ldg_base['sort'] = $sort; } if (!function_exists('ldg_chip_url')) { function ldg_chip_url(array $base, array $over): string { $params = array_merge($base, $over); $pairs = []; foreach ($params as $ldg_k => $ldg_v) { if ($ldg_v === '' || $ldg_v === null) { continue; } $pairs[] = rawurlencode($ldg_k) . '=' . rawurlencode((string)$ldg_v); } return getUrl('') . (strpos(getUrl(''), '?') === false ? '?' : '&') . implode('&', $pairs); } } $ldg_sorts = [ '' => $lang->lodging_sort_default, 'price_asc' => $lang->lodging_sort_price_asc, 'price_desc' => $lang->lodging_sort_price_desc, 'rating' => $lang->lodging_sort_rating, 'reviews' => $lang->lodging_sort_reviews, ]; $ldg_date_label = ''; if ($checkin !== '') { $ldg_date_label = $stay_type === 'dayuse' ? zdate($checkin, 'm.d') . ' ' . $lang->lodging_dayuse : zdate($checkin, 'm.d') . ' ~ ' . zdate($checkout, 'm.d') . ' (' . sprintf($lang->lodging_nights, $nights) . ')'; } $ldg_groups = []; $ldg_hero = []; $ldg_region_count = []; $ldg_region_thumb = []; $ldg_has_dayuse = false; if (!$searching) { $ldg_popular = $property_list; usort($ldg_popular, function ($a, $b) { return [$b->review->average, $b->review->count] <=> [$a->review->average, $a->review->count]; }); $ldg_cheap = array_values(array_filter($property_list, function ($p) { return (int)$p->min_price > 0; })); usort($ldg_cheap, function ($a, $b) { return $a->min_price <=> $b->min_price; }); $ldg_dayuse_props = array_values(array_filter($property_list, function ($p) { return !empty($p->has_dayuse); })); $ldg_has_dayuse = count($ldg_dayuse_props) > 0; foreach ($ldg_popular as $ldg_hp) { if ($ldg_hp->thumbnail_url !== '' && count($ldg_hero) < 4) { $ldg_hero[] = $ldg_hp; } } foreach ($property_list as $ldg_rp) { if ($ldg_rp->region === '') { continue; } $ldg_region_count[$ldg_rp->region] = ($ldg_region_count[$ldg_rp->region] ?? 0) + 1; if (!isset($ldg_region_thumb[$ldg_rp->region]) && $ldg_rp->thumbnail_url !== '') { $ldg_region_thumb[$ldg_rp->region] = $ldg_rp->thumbnail_url; } } if (count($ldg_popular)) { $ldg_groups[] = ['title' => $lang->lodging_popular_now, 'desc' => $lang->lodging_popular_now_desc, 'more' => ldg_chip_url($ldg_base, ['sort' => 'rating']), 'items' => array_slice($ldg_popular, 0, 8), 'rail' => true]; } if (count($ldg_cheap)) { $ldg_groups[] = ['title' => $lang->lodging_deals_now, 'desc' => $lang->lodging_deals_now_desc, 'more' => ldg_chip_url($ldg_base, ['sort' => 'price_asc']), 'items' => array_slice($ldg_cheap, 0, 8), 'rail' => true]; } if ($ldg_has_dayuse) { $ldg_groups[] = ['title' => $lang->lodging_dayuse_picks, 'desc' => $lang->lodging_dayuse_picks_desc, 'more' => ldg_chip_url($ldg_base, ['stay_type' => 'dayuse']), 'items' => array_slice($ldg_dayuse_props, 0, 8), 'rail' => true]; } } else { $ldg_groups[] = ['title' => '', 'desc' => '', 'more' => '', 'items' => $property_list, 'rail' => false]; } $ldg_cats = [ ['hotel', $lang->lodging_type_hotel, 'M4 20V8l8-5 8 5v12h-5v-5H9v5H4zm5-9h2V9H9v2zm4 0h2V9h-2v2z'], ['motel', $lang->lodging_type_motel, 'M3 18V7h2v7h6V9h8a3 3 0 0 1 3 3v6h-2v-3H5v3H3zm5-5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'], ['pension', $lang->lodging_type_pension, 'M12 3 2 12h3v8h5v-6h4v6h5v-8h3L12 3z'], ['guesthouse', $lang->lodging_type_guesthouse, 'M4 4h16v16H4V4zm2 2v5h5V6H6zm7 0v5h5V6h-5zM6 13v5h5v-5H6zm7 0v5h5v-5h-5z'], ['resort', $lang->lodging_type_resort, 'M12 2a6 6 0 0 0-6 6c0 4 6 10 6 10s6-6 6-10a6 6 0 0 0-6-6zm0 8.5A2.5 2.5 0 1 1 12 5.5a2.5 2.5 0 0 1 0 5zM4 20h16v2H4z'], ]; @endphp
{{ $lang->lodging_hero_desc }}
{{ $ldg_g['desc'] }}
{{ $lang->lodging_events_now_desc }}
{{ $lang->lodging_wishlist_empty }}