diff --git a/app/Controllers/Admin/Menu.php b/app/Controllers/Admin/Menu.php index d5be849..de426c1 100644 --- a/app/Controllers/Admin/Menu.php +++ b/app/Controllers/Admin/Menu.php @@ -32,20 +32,21 @@ class Menu extends BaseController $types = $this->typeModel->orderBy('mt_sort', 'ASC')->findAll(); $requestedMtIdx = (int) ($this->request->getGet('mt_idx') ?? 0); $mtIdx = $this->resolveMtIdx($requestedMtIdx, $types); + $effectiveMtIdx = $mtIdx; $debugMode = $this->request->getGet('debug') === '1'; $fallbackApplied = false; - $list = $mtIdx > 0 ? $this->menuModel->getAllByType($mtIdx, $lgIdx) : []; + $list = $effectiveMtIdx > 0 ? $this->menuModel->getAllByType($effectiveMtIdx, $lgIdx) : []; $currentType = $mtIdx > 0 ? $this->typeModel->find($mtIdx) : null; $currentTypeCode = (string) ($currentType->mt_code ?? ''); // 현재 지자체에 메뉴가 없으면, mt_idx별로 기본 지자체(lg_idx=1)의 메뉴를 한 번 복사한다. - if ($mtIdx > 0 && empty($list)) { - $this->menuModel->copyDefaultsFromLg($mtIdx, 1, $lgIdx); - $list = $this->menuModel->getAllByType($mtIdx, $lgIdx); + if ($effectiveMtIdx > 0 && empty($list)) { + $this->menuModel->copyDefaultsFromLg($effectiveMtIdx, 1, $lgIdx); + $list = $this->menuModel->getAllByType($effectiveMtIdx, $lgIdx); } // 운영 DB 불일치 대응: site 타입인데 mt_idx 매핑이 어긋난 경우(예: menu_type=2, menu는 4 사용) - if (empty($list) && $currentTypeCode === 'site' && $mtIdx !== 4) { + if (empty($list) && $currentTypeCode === 'site' && $effectiveMtIdx !== 4) { $fallbackMtIdx = 4; $fallbackList = $this->menuModel->getAllByType($fallbackMtIdx, $lgIdx); if (empty($fallbackList)) { @@ -53,7 +54,7 @@ class Menu extends BaseController $fallbackList = $this->menuModel->getAllByType($fallbackMtIdx, $lgIdx); } if (! empty($fallbackList)) { - $mtIdx = $fallbackMtIdx; + $effectiveMtIdx = $fallbackMtIdx; $list = $fallbackList; $fallbackApplied = true; } @@ -78,6 +79,7 @@ class Menu extends BaseController 'lg_idx' => $lgIdx, 'requested_mt_idx' => $requestedMtIdx, 'resolved_mt_idx' => $mtIdx, + 'effective_mt_idx' => $effectiveMtIdx, 'resolved_mt_code' => $currentTypeCode, 'list_count' => count($list), 'fallback_applied' => $fallbackApplied ? 'Y' : 'N', diff --git a/app/Views/admin/menu/index.php b/app/Views/admin/menu/index.php index f3fc34e..3f0cfb9 100644 --- a/app/Views/admin/menu/index.php +++ b/app/Views/admin/menu/index.php @@ -52,6 +52,7 @@ $adminMenuListResolveHref = static function (string $rawLink) use ($adminMenusNa lg_idx=, requested_mt_idx=, resolved_mt_idx=, + effective_mt_idx=, resolved_mt_code=, list_count=, fallback_applied=