Skip to content

feat: 모듈 프리셋#3

Open
iosHumhae wants to merge 5 commits intoDokernoin:masterfrom
iosHumhae:new_module_preset
Open

feat: 모듈 프리셋#3
iosHumhae wants to merge 5 commits intoDokernoin:masterfrom
iosHumhae:new_module_preset

Conversation

@iosHumhae
Copy link

모듈 프리셋 기능 추가


개요(필수)

  • 설정된 모듈 세팅(프리셋)을 내보내기 및 가져오기
  • 사전에 설정된 프리셋을 바탕으로 사용자들이 손쉽게 레이아웃을 구현할 수 있음

변경 사항(필수)

  • 프론트 UI (사이드 패널/버튼/하이라이트/토글)
  • 프리셋 적용 로직 (ajax.preset_apply.php)
  • 프리셋 내보내기 (ajax.preset_export.php)
  • 경로/스킨 매핑(/rb/rb.preset/<preset>/rb.widget/**)
  • DB 마이그레이션(rb_module, rb_module_shop)
  • 기타(기술 부채/정리):

주요 포인트

  • 레이아웃 선택 의존 표시: 레이아웃 선택 시에만 “프리셋 적용하기” 섹션 노출
  • 적용 레이아웃 소스: JSON의 md_layout이 아닌 프론트 셀렉트 값 사용
  • JSON 정합성: theme/…rb.preset/<프리셋>/… 경로로 일괄 변환
  • 사이드바 토글 시 초기화: 선택 하이라이트/스타일/셀렉트 값 리셋

백엔드(API)

ajax.preset_apply.php 핵심(요약)

<?php
// 입력: preset_md_theme, preset_md_layout(이름), preset_selected_layout(번호)
$theme       = trim($_POST['preset_md_theme'] ?? '');
$layout_name = trim($_POST['preset_md_layout'] ?? '');
$layout_no   = trim($_POST['preset_selected_layout'] ?? ''); // 실제 적용 레이아웃

// 테이블 결정
$table = defined('_SHOP_') ? 'rb_module_shop' : 'rb_module';

// 기존 데이터 제거
sql_query("DELETE FROM {$table} WHERE md_theme = '".sql_real_escape_string($theme)."' AND md_layout_name = '".sql_real_escape_string($layout_name)."' AND md_layout = '".sql_real_escape_string($layout_no)."'");

// JSON 파싱 & 경로 재매핑(theme/.. → rb.preset/<preset>/..), 부모-자식 포함 삽입…

DB 변경(필수)

  • 변경 없음

설정/엔드포인트

  • APPLY : /rb/rb.config/ajax.preset_apply.php
  • EXPORT: /rb/rb.config/ajax.preset_export.php

호환성/부수효과 점검(필수)

  • 기존 테마/스킨 로딩과 충돌 없음
  • 모바일(G5_IS_MOBILE) 경로 처리 이상 없음
  • 캐시/리라이트(.htaccess) 영향 없음

시나리오

  • 레이아웃 셀렉트에서 값 선택 시 “프리셋 적용하기” 섹션 표시
  • 패널 닫을 때 하이라이트/셀렉트/스타일 초기화
  • 모듈 체크: 부모 해제→자식 자동 해제
  • “프리셋 내보내기” 버튼: 선택된 모듈이 있을 때만 노출
  • 적용 시 DB(rb_module/rb_module_shop) 기존 레코드 삭제 후 JSON 기준으로 선택 레이아웃 번호로 재삽입
  • 경로가 rb.preset/<프리셋>/rb.widget/** 형태로 저장되는지 확인
  • 모바일/PC 페이지에서 정상 동작

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant