- 매뉴얼: 화면(소메뉴)별 용어·버튼·필드 설명으로 확장 + 기본정보 페이지 신규, 개요에 용어 사전 추가 (종량제 지식 없는 사용자 대상) - "이 화면 설명" 버튼: 화면 경로→매뉴얼 매핑(Config\Manual::screenHelp, manual_help_url_for_path). 워크스페이스 탭은 새 탭으로, 직접 페이지는 새 창으로 - 워크스페이스: 개별 탭 새로고침(↻) 버튼, 탭 2개 이상일 때만 새로고침 경고, 사이드바 하단 링크(매뉴얼 등)도 탭으로 열기 - 임베드: 탭 내 링크/폼 embed 유지(중첩 헤더 방지), 매뉴얼 리다이렉트 embed 유지 - 사이드바 하단: 종합그래프 → 사용자 매뉴얼 링크 - 최근 방문 메뉴: embed 페이지에도 방문 기록, 대시보드는 storage 이벤트로 실시간 갱신 - E2E qa_sweep 추가(주요 화면 콘솔/오버레이/매뉴얼/도움말 매핑 점검) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
60 lines
2.3 KiB
PHP
60 lines
2.3 KiB
PHP
<?php
|
||
declare(strict_types=1);
|
||
/** @var list<array> $govNavItems */
|
||
/** @var int $govActiveParentIdx */
|
||
/** @var string $govActiveChildHref */
|
||
$activeParent = $govNavItems[$govActiveParentIdx] ?? $govNavItems[0] ?? null;
|
||
$sidebarTitle = $activeParent['name'] ?? 'MY MENU';
|
||
$activeChildHref = strtolower(ltrim((string) ($govActiveChildHref ?? ''), '/'));
|
||
?>
|
||
<aside class="sidebar">
|
||
<div class="my-menu-hd" id="portalSidebarTitle"><?= esc($sidebarTitle) ?></div>
|
||
<ul class="my-menu-list" id="portalSidebarList">
|
||
<?php if ($activeParent !== null): ?>
|
||
<?php if (! empty($activeParent['hasChildren'])): ?>
|
||
<?php foreach ($activeParent['children'] as $ci => $child): ?>
|
||
<?php
|
||
$childHref = strtolower(ltrim((string) ($child['href'] ?? ''), '/'));
|
||
$isChildActive = $activeChildHref !== ''
|
||
? ($childHref === $activeChildHref)
|
||
: ($ci === 0);
|
||
?>
|
||
<li>
|
||
<?php if ($child['href'] !== ''): ?>
|
||
<a href="<?= esc($child['url']) ?>" class="<?= $isChildActive ? 'active' : '' ?>">
|
||
<span class="menu-ico"><?= $isChildActive ? '×' : '+' ?></span>
|
||
<?= esc($child['name']) ?>
|
||
</a>
|
||
<?php else: ?>
|
||
<span class="menu-sub" style="opacity:.65;cursor:default;">
|
||
<span class="menu-ico">+</span><?= esc($child['name']) ?>
|
||
</span>
|
||
<?php endif; ?>
|
||
</li>
|
||
<?php endforeach; ?>
|
||
<?php elseif ($activeParent['href'] !== ''): ?>
|
||
<li>
|
||
<a href="<?= esc($activeParent['url']) ?>" class="active">
|
||
<span class="menu-ico">×</span><?= esc($activeParent['name']) ?>
|
||
</a>
|
||
</li>
|
||
<?php endif; ?>
|
||
<?php endif; ?>
|
||
</ul>
|
||
<div class="sidebar-blocks">
|
||
<div class="sb-teal">
|
||
<i class="fa-solid fa-mobile-screen"></i>
|
||
모바일 앱(예정)<br/>지정판매소 판매·스캔 연동
|
||
</div>
|
||
<div class="sb-gray">
|
||
<i class="fa-solid fa-repeat"></i> 통합 전환<br/>
|
||
<a href="<?= base_url('admin/select-local-government') ?>" style="color:#fff;text-decoration:underline;">지자체 선택</a>
|
||
</div>
|
||
<div class="sb-links">
|
||
<a href="<?= base_url('bag/help') ?>">나의 할일</a>
|
||
<a href="<?= base_url('bag/manual') ?>">사용자 매뉴얼</a>
|
||
<a href="<?= base_url('bag/help') ?>">FAQ</a>
|
||
</div>
|
||
</div>
|
||
</aside>
|