변경 파일 목록
총 3개
변경 파일 코드
추가삭제
변경 전owned_skin_list_section.php
| <header class="ncua-card__header"> | |
| <h4 class="ncua-card__title">보유 스킨 리스트</h4> | |
| </header> | |
| <!-- 탭 영역 --> | |
| <?php if ($skinTabData['responsiveSkinCount'] > 0 && $skinTabData['adaptiveSkinCount'] > 0): ?> | |
| <div class="swiper ncua-horizontal-tab ncua-horizontal-tab--sm ncua-horizontal-tab--underline-fill"> | |
| <div class="swiper-wrapper ncua-gap-8"> | |
| <div class="swiper-slide ncua-horizontal-tab__item"> | |
| </div> | |
| </div> | |
| </div> | |
| <?php endif; ?> | |
| </div> | |
| <section class="ncua-card__body"> | |
| <p class="ncua-search-result__summary-count"> | |
| 전체 <strong class="js-total-count">0</strong>개 | |
| </p> | |
| <!-- TODO: 반응형 스킨이 있는 경우 is-visible-hidden 클래스 추가 --> | |
| <div class="ncua-file-input ncua-file-input--xs"> | |
| <button type="button" class="ncua-btn ncua-btn--xs ncua-btn--secondary-gray js-skin-upload <?= $skinTabData['defaultTab'] === 'responsive' ? 'is-visible-hidden' : '' ?>"> | |
| <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="none" class="ncua-btn__icon"> | |
변경 후owned_skin_list_section.php
| <header class="ncua-card__header"> | |
| <h4 class="ncua-card__title">보유 스킨 리스트</h4> | |
| </header> | |
| <!-- 탭 영역 (스킨 보유 여부와 무관하게 항상 노출) --> | |
| <div class="swiper ncua-horizontal-tab ncua-horizontal-tab--sm ncua-horizontal-tab--underline-fill"> | |
| <div class="swiper-wrapper ncua-gap-8"> | |
| <div class="swiper-slide ncua-horizontal-tab__item"> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <section class="ncua-card__body"> | |
| <p class="ncua-search-result__summary-count"> | |
| 전체 <strong class="js-total-count">0</strong>개 | |
| </p> | |
| <!-- 스킨 업로드: 반응형 탭 미노출, PC/모바일 탭 노출 (탭 전환 시 JS에서 토글) --> | |
| <div class="ncua-file-input ncua-file-input--xs"> | |
| <button type="button" class="ncua-btn ncua-btn--xs ncua-btn--secondary-gray js-skin-upload <?= $skinTabData['defaultTab'] === 'responsive' ? 'is-visible-hidden' : '' ?>"> | |
| <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="none" class="ncua-btn__icon"> | |
변경 전design_skin_list.php
| <script type="text/javascript" src="<?=gd_set_browser_cache(PATH_ADMIN_GD_SHARE . 'ncds/script/common/ncua-dropdown-wrapper.v0.1.js')?>"></script> | |
| <script defer src="<?= gd_set_browser_cache(PATH_ADMIN_GD_SHARE . 'ncds/script/common/spinner-modal.js') ?>"></script> | |
| <article class="ncua-content design-skin-list"> | |
| <header class="page-header ncua-page-header js-affix"> | |
| <h3 class="ncua-help-manual"><?= end($naviMenu->location); ?> | |
| </h3> | |
| <?php include $activeDesignSkinSection; ?> | |
| <?php } ?> | |
| <!-- 보유 스킨 리스트 --> | |
| <?php if ($skinTabData['responsiveSkinCount'] > 0 || $skinTabData['adaptiveSkinCount'] > 0) { ?> | |
| <?php include $ownedSkinListSection; ?> | |
| <?php } ?> | |
| <!-- 해외몰 홈아이콘 설정 --> | |
| <?php if ($mallCnt > 1) { ?> | |
| // 모두 보기 버튼 표시 여부 업데이트 | |
| ownedSkinList.updateViewAllButton(filteredList.length); | |
| filteredList.forEach((skin, idx) => { | |
| try { | |
| if(maxLen && maxLen <= idx) return; | |
변경 후design_skin_list.php
| <script type="text/javascript" src="<?=gd_set_browser_cache(PATH_ADMIN_GD_SHARE . 'ncds/script/common/ncua-dropdown-wrapper.v0.1.js')?>"></script> | |
| <script defer src="<?= gd_set_browser_cache(PATH_ADMIN_GD_SHARE . 'ncds/script/common/spinner-modal.js') ?>"></script> | |
| <article class="ncua-content design-skin-list content-wrap-initial"> | |
| <header class="page-header ncua-page-header js-affix"> | |
| <h3 class="ncua-help-manual"><?= end($naviMenu->location); ?> | |
| </h3> | |
| <?php include $activeDesignSkinSection; ?> | |
| <?php } ?> | |
| <!-- 보유 스킨 리스트 (스킨 보유 여부와 무관하게 항상 노출) --> | |
| <?php include $ownedSkinListSection; ?> | |
| <!-- 해외몰 홈아이콘 설정 --> | |
| <?php if ($mallCnt > 1) { ?> | |
| // 모두 보기 버튼 표시 여부 업데이트 | |
| ownedSkinList.updateViewAllButton(filteredList.length); | |
| // 보유 스킨이 없는 경우 안내 문구 노출 | |
| if (filteredList.length === 0) { | |
| const emptyMessage = document.createElement('div'); | |
| emptyMessage.className = 'owned-skin-list--empty'; | |
| emptyMessage.textContent = '보유한 스킨이 없습니다.'; | |
| skinList.appendChild(emptyMessage); | |
| return; | |
| } | |
| filteredList.forEach((skin, idx) => { | |
| try { | |
| if(maxLen && maxLen <= idx) return; | |
변경 전DesignSkinListController.php
| use Origin\Service\Aggregator\GodomallAggregatorService; | |
| use Origin\Service\MyApp\MyappSettingService; | |
| use Origin\Enum\ManagerTutorialType; | |
| use Origin\Service\Admin\Member\ManagerTutorial\HelperPopupExposureAvailabilityService; | |
| // 스킨 설정 정보, (사용 중 아닌) 스킨 목록 설정 | |
| $designSkinConfig = gd_policy('design.skin', $mallSno); | |
| $usingSkinType = $designSkinConfig['skinType'] ?? 'adaptive'; | |
| // 모바일샵 설정 정보 | |
| $mobileConfig = gd_policy('mobile.config'); | |
| $unusedSkinList = []; | |
| foreach ($skinList as $skin) { | |
| $skinType = $skin['skin_type'] ?? 'adaptive'; | |
| $skinDevice = $skin['skin_device']; | |
| $skinCode = $skin['skin_code']; | |
| // 적응형 스킨에만 default_design_page_id 추가 | |
| if ($skinType === 'adaptive') { | |
| $skin['default_design_page_id'] = $this->getDefaultDesignPageId($skinCode, $skinDevice); | |
| } | |
| $adaptiveSkinCount = 0; | |
| foreach ($skinList as $skin) { | |
| if (($skin['skin_type'] ?? 'adaptive') === 'responsive') { | |
| $responsiveSkinCount++; | |
| } else { | |
| $adaptiveSkinCount++; | |
| } | |
| } | |
| // 기본 탭 결정: 둘 다 있으면 사용 중인 타입, 아니면 보유한 타입 | |
| if ($responsiveSkinCount > 0 && $adaptiveSkinCount > 0) { | |
| $defaultTab = $usingSkinType; | |
| } elseif ($responsiveSkinCount > 0) { | |
| $defaultTab = 'responsive'; | |
| } else { | |
| $defaultTab = 'adaptive'; | |
| } | |
| return [ | |
| 'responsiveSkinCount' => $responsiveSkinCount, | |
| 'adaptiveSkinCount' => $adaptiveSkinCount, | |
| 'isResponsiveActive' => $usingSkinType === 'responsive', | |
| 'isAdaptiveActive' => $usingSkinType !== 'responsive', | |
| 'defaultTab' => $defaultTab, | |
| ]; | |
| } | |
변경 후DesignSkinListController.php
| use Origin\Service\Aggregator\GodomallAggregatorService; | |
| use Origin\Service\MyApp\MyappSettingService; | |
| use Origin\Enum\ManagerTutorialType; | |
| use Origin\Enum\Design\DesignEditorSkinType; | |
| use Origin\Service\Admin\Member\ManagerTutorial\HelperPopupExposureAvailabilityService; | |
| // 스킨 설정 정보, (사용 중 아닌) 스킨 목록 설정 | |
| $designSkinConfig = gd_policy('design.skin', $mallSno); | |
| $usingSkinType = $designSkinConfig['skinType'] ?? DesignEditorSkinType::ADAPTIVE->value; | |
| // 모바일샵 설정 정보 | |
| $mobileConfig = gd_policy('mobile.config'); | |
| $unusedSkinList = []; | |
| foreach ($skinList as $skin) { | |
| $skinType = $skin['skin_type'] ?? DesignEditorSkinType::ADAPTIVE->value; | |
| $skinDevice = $skin['skin_device']; | |
| $skinCode = $skin['skin_code']; | |
| // 적응형 스킨에만 default_design_page_id 추가 | |
| if ($skinType === DesignEditorSkinType::ADAPTIVE->value) { | |
| $skin['default_design_page_id'] = $this->getDefaultDesignPageId($skinCode, $skinDevice); | |
| } | |
| $adaptiveSkinCount = 0; | |
| foreach ($skinList as $skin) { | |
| if (($skin['skin_type'] ?? DesignEditorSkinType::ADAPTIVE->value) === DesignEditorSkinType::RESPONSIVE->value) { | |
| $responsiveSkinCount++; | |
| } else { | |
| $adaptiveSkinCount++; | |
| } | |
| } | |
| // 탭은 스킨 보유 여부와 무관하게 항상 노출되므로, 기본 탭은 현재 사용 중인 스킨 유형을 따른다. | |
| $isResponsiveActive = $usingSkinType === DesignEditorSkinType::RESPONSIVE->value; | |
| $defaultTab = $isResponsiveActive ? DesignEditorSkinType::RESPONSIVE->value : DesignEditorSkinType::ADAPTIVE->value; | |
| return [ | |
| 'responsiveSkinCount' => $responsiveSkinCount, | |
| 'adaptiveSkinCount' => $adaptiveSkinCount, | |
| 'isResponsiveActive' => $isResponsiveActive, | |
| 'isAdaptiveActive' => !$isResponsiveActive, | |
| 'defaultTab' => $defaultTab, | |
| ]; | |
| } | |