@version(2)
{{-- 우측 유틸: 다크모드 · 검색 · 언어(축약 코드) · 프로필 영역(포인트색 박스) 순 --}}
@php // 알림센터(ncenterlite) 헤더 연동: 기본 플로팅 위젯은 끄고 프로필 영역 안에 벨을 그린다 $hr_nc_items = []; $hr_nc_unread = 0; $hr_nc_on = false; if ($is_logged && class_exists('NcenterliteModel')) { $layout_info->use_ncenter_widget = 'Y'; $hr_nc_on = true; $hr_nc_out = getModel('ncenterlite')->getMyNotifyList($logged_info->member_srl); if ($hr_nc_out && !empty($hr_nc_out->data)) { $hr_nc_items = array_slice(is_array($hr_nc_out->data) ? $hr_nc_out->data : [], 0, 8); $hr_nc_unread = (int)($hr_nc_out->page_navigation->total_count ?? 0); } } @endphp @if ($hr_scheme === 'auto') @endif @if ($hr->use_search !== 'N') @endif {{-- 언어 전환: 축약 코드(KR/EN)로 표시. 코어에서 켜 둔 언어가 둘 이상일 때만 나온다 --}} @php $hr_langs = \Context::get('lang_supported'); $hr_langs = is_array($hr_langs) ? $hr_langs : []; $hr_lang_now = \Context::getLangType(); // 축약 코드 표: 템플릿에서는 배열 접근만 쓴다 (클로저 호출은 컴파일러가 메서드 호출로 바꿔 버린다) $hr_lang_short = ['ko' => 'KR', 'en' => 'EN', 'ja' => 'JP', 'zh-CN' => 'CN', 'zh-TW' => 'TW', 'vi' => 'VN', 'mn' => 'MN', 'es' => 'ES', 'fr' => 'FR', 'de' => 'DE', 'ru' => 'RU', 'tr' => 'TR']; foreach (array_keys($hr_langs) as $hr_lc) { if (!isset($hr_lang_short[$hr_lc])) { $hr_lang_short[$hr_lc] = strtoupper(substr($hr_lc, 0, 2)); } } // 보던 주소를 그대로 두고 l 값만 갈아 끼운다. // getUrl() 은 재작성된 주소(/notice/123)를 복원하지 못해 대문으로 떨어진다. $hr_lang_uri = (string)($_SERVER['REQUEST_URI'] ?? '/'); $hr_lang_uri = preg_replace('/([?&])l=[^&]*/', '$1', $hr_lang_uri); $hr_lang_uri = preg_replace('/[?&]+$/', '', $hr_lang_uri); $hr_lang_uri = str_replace('&&', '&', $hr_lang_uri); $hr_lang_sep = strpos($hr_lang_uri, '?') === false ? '?' : '&'; @endphp @if (count($hr_langs) > 1)
@endif {{-- 프로필 영역: 포인트색 박스에 사진+닉네임+알림 벨. 올리면 하위 메뉴(관리자 링크 포함) --}}
@if ($is_logged) @if (!empty($logged_info->profile_image->src)) @else @endif {{ $logged_info->nick_name }} @if ($hr_nc_on)
@endif @else {{ $lang->hr_login }} @endif
{{-- 검색 아이콘을 누르면 헤더 위로 대형 검색 오버레이가 열린다 --}} @if ($hr->use_search !== 'N') @endif