fix(core,extensions): 설치 완료 스크롤 + 미인증 화면 테마 버튼 무반응 수정

Modern PHP User Group 2026-09 정기모임 설치 리뷰에서 접수된 제보 2건.

설치 완료·실패·중단·필수파일 안내는 페이지 최상단에 뜨는데, 진행 로그를 보느라
화면이 아래에 머물러 있으면 안내가 눈에 들어오지 않았다. 네 경로 모두 DOM 변경이
끝난 뒤 결과 섹션으로 부드럽게 이동시킨다(모션 최소화 설정 시 즉시 이동).

미인증 3화면의 테마 버튼은 setTheme 을 params.theme 으로 불렀는데 핸들러는
action.target 만 읽는다. 엔진에 상호 폴백이 없어 클릭이 콘솔 경고 한 줄만 남기고
아무 일도 하지 않았다. 로그인 이후 화면은 핸들러를 거치지 않는 ThemeToggle 을
쓰기 때문에 정상이었고, 그래서 이 세 화면에서만 나타났다.

같은 계약 불일치가 편집기 액션 레시피(admin 9·basic 3)와 두 템플릿 문서에도 있어
함께 고쳤다. 편집기로 만든 액션은 생성 즉시 no-op 이 되는데 오류가 남지 않는다.
정적 검사 레지스트리가 오히려 틀린 계약(params.theme 필수)을 강제하고 있어 올바른
형태를 막고 있었으므로 두 미러를 함께 정정했다.

테마를 고치는 과정에서 별개 결함이 드러났다. GDPR 스토리지 인터셉터가 기능 쿠키
미동의 상태에서 필수 목록 밖 저장을 부팅마다 파기하는데, 화면 테마가 그 목록에서
빠져 있었다. 저장소의 setItem 호출을 기계 도출해 대조한 결과 같은 이유로 사라지던
항목이 13건 더 있었다 — 비회원 주문 조회, 결제창 복귀 기록, 본인인증 복귀 기록,
관리자 화면 상태, 자산 주소 형식 캐시. 전량 필수로 분류하고, 동의 안내 문구가
"다크모드는 기능 쿠키" 라고 말하던 부분을 사실에 맞게 정정했다(기설치본의 저장된
문구는 업그레이드 스텝이 정정하며, 운영자가 고친 문구는 건드리지 않는다).

재발 방지는 허용목록을 직접 import 하고 모집단을 디렉토리 순회로 도출하는 커버리지
테스트가 맡는다 — 손으로 열거하지 않으므로 새 저장 키가 등재를 빠뜨리면 붉어진다.
This commit is contained in:
HeuJung
2026-09-03 18:42:30 +09:00
parent 92923a5011
commit 8cf829f953
47 changed files with 1424 additions and 282 deletions
@@ -10,6 +10,10 @@
- 동의 이력의 출처 "会員退会"(회원탈퇴) 일본어 라벨 추가
### Changed
- 자동 차단 정책 안내의 기능 카테고리 범위 문구에서 다크모드를 뺐습니다 — 화면 테마가 필수 항목으로 재분류되어 동의 여부와 무관하게 저장됩니다.
## [1.0.1] - 2026-08-10
### Added
@@ -124,11 +124,11 @@
"scope_label": "自動ブロック対象",
"tools_label": "代表的なツール例",
"necessary": {
"scope": "自動ブロックしません。セッション·ログイントークン、カート識別子、ユーザーが登録時に選択した言語設定、クッキー同意記録など、サイト動作に不可欠な項目は常に許可されます。",
"tools": "セッションID、認証トークン、CSRFトークン、カート識別子、多言語設定など(別途設定不要)"
"scope": "自動ブロックしません。セッション·ログイントークン、カート識別子、ユーザーが自ら選んだ言語設定と画面テーマ、クッキー同意記録など、サイト動作に不可欠な項目は常に許可されます。",
"tools": "セッションID、認証トークン、CSRFトークン、カート識別子、多言語設定、画面テーマなど(別途設定不要)"
},
"functional": {
"scope": "「自動ブロックポリシー」タブの機能カテゴリドメインリストに登録された外部リソースが、同意前までブロックされます。また、ダークモード·通貨選好などのユーザー利便設定も、同意後のみ保存されます。",
"scope": "「自動ブロックポリシー」タブの機能カテゴリドメインリストに登録された外部リソースが、同意前までブロックされます。また、通貨選好などのユーザー利便設定も、同意後のみ保存されます。",
"tools": "顧客サポートチャットボット(Crisp、Intercom、Tawk.to)、多言語自動翻訳ウィジェット、ユーザー設定同期サービスなど"
},
"analytics": {
@@ -11,6 +11,12 @@
- 확장 제거 시 표시되는 「운영자 파일 사본 보관」 안내 제목·설명의 일본어 번역을 추가했습니다 — 모듈·플러그인·템플릿 제거 결과 화면에서 보관 경로 안내가 일본어 로케일로 표시됩니다.
- 확장 제거가 끝난 뒤 결과 화면 제목(「모듈 제거 완료」·「플러그인 제거 완료」·「템플릿 제거 완료」)의 일본어 번역을 추가했습니다 — 종전에는 결과 화면인데 제목이 「제거 확인」으로 남아 있었습니다.
- 환경설정 > 고급의 리버스 프록시 진단 항목(라벨·상태·안내 문구)의 일본어 번역을 추가했습니다.
- 레이아웃 편집기 「필터 보이기/숨기기」·「필터 표시 초기화」 동작의 저장 키·필터 ID 입력 항목 이름을 일본어로 추가했습니다.
- 사이드바 하위 메뉴 펼치기/접기 버튼의 화면 낭독기 라벨을 일본어로 추가했습니다.
### Changed
- 레이아웃 편집기 「기간 빠르게 선택」의 마지막 선택지 표기를 「今年」에서 「直近1年」으로 바꿨습니다 — 실제 계산 범위가 올해가 아니라 최근 1년이었습니다.
## [1.0.7] - 2026-08-24
@@ -49,6 +49,8 @@
"logout": "ログアウト",
"expand_sidebar": "サイドバーを展開",
"collapse_sidebar": "サイドバーを折りたたむ",
"expand": "展開",
"collapse": "折りたたむ",
"module": "モジュール",
"plugin": "プラグイン",
"status_active": "有効化",
@@ -1261,7 +1261,7 @@
},
"scroll_to_section": {
"label": "特定の領域にスクロール",
"param_section_id": "領域ID"
"param_target_id": "領域ID"
},
"set_date_range": {
"label": "期間を素早く選択",
@@ -1269,15 +1269,15 @@
"preset_today": "今日",
"preset_week": "今週",
"preset_month": "今月",
"preset_year": "今年"
"preset_1year": "直近1年"
},
"toggle_filter_visibility": {
"label": "フィルターの表示·非表示",
"param_filter_key": "フィルターキー"
"param_storage_key": "保存キー",
"param_filter_id": "フィルターID"
},
"save_multilingual_tag": {
"label": "多言語タグを保存",
"param_tag": "タグ"
"label": "多言語タグを保存"
},
"init_theme": {
"label": "画面のテーマをリセット",
@@ -1290,7 +1290,8 @@
"label": "アドレスからメニューを初期化"
},
"init_filter_visibility": {
"label": "フィルター表示をリセット"
"label": "フィルター表示をリセット",
"param_storage_key": "保存キー"
}
},
"condition": {