feat: improve admin master data management
This commit is contained in:
@@ -4,6 +4,27 @@ $list = $list ?? [];
|
||||
$mtIdx = (int) ($mtIdx ?? 0);
|
||||
$mtCode = (string) ($mtCode ?? '');
|
||||
$levelNames = $levelNames ?? [];
|
||||
helper('admin');
|
||||
$adminMenusNavPath = current_nav_request_path();
|
||||
|
||||
/**
|
||||
* 메뉴 관리 목록용: 저장된 mm_link → 실제 href (외부 http(s) 또는 base_url).
|
||||
*/
|
||||
$adminMenuListResolveHref = static function (string $rawLink) use ($adminMenusNavPath): string {
|
||||
$rawLink = trim($rawLink);
|
||||
if ($rawLink === '') {
|
||||
return '';
|
||||
}
|
||||
if (preg_match('#^https?://#i', $rawLink)) {
|
||||
return $rawLink;
|
||||
}
|
||||
$pathSeg = menu_link_preferred_href_path($rawLink, $adminMenusNavPath);
|
||||
if ($pathSeg === '') {
|
||||
$pathSeg = normalize_menu_link_for_url($rawLink);
|
||||
}
|
||||
|
||||
return $pathSeg !== '' ? base_url($pathSeg) : '';
|
||||
};
|
||||
?>
|
||||
<section class="border-b border-gray-300 p-2 shrink-0 bg-control-panel">
|
||||
<div class="flex flex-wrap items-center justify-between gap-y-2">
|
||||
@@ -48,6 +69,10 @@ $levelNames = $levelNames ?? [];
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($list as $i => $row): ?>
|
||||
<?php
|
||||
$rawLink = trim((string) $row->mm_link);
|
||||
$listItemHref = $rawLink !== '' ? $adminMenuListResolveHref($rawLink) : '';
|
||||
?>
|
||||
<tr class="menu-row" data-mm-idx="<?= (int) $row->mm_idx ?>" data-mm-pidx="<?= (int) $row->mm_pidx ?>" data-mm-dep="<?= (int) $row->mm_dep ?>">
|
||||
<td class="text-center align-middle">
|
||||
<span class="menu-drag-handle cursor-move text-gray-400 select-none" title="드래그해서 순서를 변경하세요">↕</span>
|
||||
@@ -67,9 +92,21 @@ $levelNames = $levelNames ?? [];
|
||||
└─
|
||||
<?php endif; ?>
|
||||
</span>
|
||||
<?php if ($listItemHref !== ''): ?>
|
||||
<a href="<?= esc($listItemHref) ?>" class="ml-1 text-gray-900 hover:text-blue-700 hover:underline font-medium" target="_blank" rel="noopener noreferrer"><?= esc($row->mm_name) ?></a>
|
||||
<?php else: ?>
|
||||
<span class="ml-1"><?= esc($row->mm_name) ?></span>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
<td class="text-left pl-2 text-xs">
|
||||
<?php if ($rawLink === ''): ?>
|
||||
<span class="text-gray-400">—</span>
|
||||
<?php elseif ($listItemHref !== ''): ?>
|
||||
<a href="<?= esc($listItemHref) ?>" class="text-blue-600 hover:underline font-medium break-all" target="_blank" rel="noopener noreferrer"><?= esc($rawLink) ?></a>
|
||||
<?php else: ?>
|
||||
<span class="text-amber-700" title="URL로 해석되지 않는 링크입니다"><?= esc($rawLink) ?></span>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
<td class="text-left pl-2 text-xs"><?= esc($row->mm_link) ?></td>
|
||||
<td class="text-left pl-2 text-xs">
|
||||
<?php
|
||||
if ((string) $row->mm_level === '') {
|
||||
|
||||
Reference in New Issue
Block a user