Skip to content

feat(visitor-stats): 통계를 날짜를 지정해 본다 - #98

Merged
cubitsnake merged 3 commits into
mainfrom
feat/visitor-stats-custom-period
Oct 23, 2026
Merged

cubitsnake merged 3 commits into
mainfrom
feat/visitor-stats-custom-period

Conversation

@wwizkr

@wwizkr wwizkr commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

배경

VisitorStats 저장소 쿼리는 이미 startDate/endDate를 받습니다. 그런데 기간 선택이 오늘·최근 7일·최근 30일·이번 달 프리셋뿐이어서 원하는 기간을 볼 수 없었습니다. 사이트 운영자의 요청에서 나온 변경입니다.

변경

  • VisitorStatsService::periodToDates()가 custom:YYYY-MM-DD:YYYY-MM-DD를 해석합니다.
    • 형식이 틀렸거나, 없는 날짜이거나, 시작일이 종료일보다 늦으면 최근 7일로 봅니다. 프리셋에 모르는 값이 왔을 때와 같은 처리입니다.
    • 기간이 1년(366일)을 넘으면 종료일 기준 1년으로 자릅니다. 일별 추이 차트가 감당할 수 있는 범위입니다.
    • 기간을 거치는 모든 API(요약·추이·시간대·페이지·유입·환경·캠페인·전환)에 그대로 적용됩니다. 요약의 전기 대비 증감도 같은 길이의 직전 기간으로 계산됩니다.
  • assets/js/period-picker.js를 새로 추가하고 _nav.php에서 defer로 불러옵니다.
    • 기간 select(#vs-period, #cs-period, #cv-period)에 기간 지정 옵션과 시작일·종료일 입력, [적용] 버튼을 붙입니다.
    • 적용하면 옵션 값을 custom:시작:종료로 바꾸고 change를 발생시킵니다. 그래서 7개 화면의 스크립트와 컨트롤러는 고치지 않았습니다.
    • select를 감싸는 묶음 안에 날짜 입력을 넣어, 화면별 flex 배치(양끝 정렬 등)를 흐트리지 않습니다.

확인

  • VisitorStatsServiceTest에 4개 테스트를 추가했습니다: 지정 기간, 하루짜리, 잘못된 값 4종, 1년 제한. 플러그인 테스트 21개 모두 통과했습니다.
  • phpstan, php -l, node --check: 이상 없음
  • 정적 테스트 페이지에서 Playwright로 스크립트 동작을 확인했습니다.
    • 옵션 추가, 입력칸 보이기/숨기기, 적용 시 custom:2026-09-01:2026-09-15 전달, 스크립트 오류 없음
    • 실제 관리자 화면에서는 확인하지 않았습니다.

🤖 Generated with Claude Code

wwizkr and others added 3 commits October 21, 2026 13:53
저장소 쿼리는 이미 시작일·종료일을 받았지만 기간이 오늘·최근 7일·최근 30일·
이번 달 프리셋뿐이라 원하는 기간을 볼 수 없었다.

- periodToDates() 가 'custom:YYYY-MM-DD:YYYY-MM-DD' 를 해석한다. 형식이
  틀리거나 거꾸로 된 기간은 최근 7일, 1년을 넘으면 종료일 기준 1년으로 자른다
- period-picker.js 가 통계 화면의 기간 select 에 '기간 지정'과 날짜 입력을
  붙인다. 화면 스크립트와 API 는 period 문자열을 그대로 넘기므로 손대지 않는다

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Codex <codex@openai.com>
366일을 초과하면 종료일 기준으로 시작일을 보정하고 안내한다. 기간 선택 화면별 경계값·윤년·시간대 회귀 테스트와 체인지로그를 추가한다.

Co-authored-by: Codex <codex@openai.com>
@cubitsnake
cubitsnake merged commit 4585368 into main Oct 23, 2026
13 checks passed
@cubitsnake
cubitsnake deleted the feat/visitor-stats-custom-period branch October 23, 2026 08:15
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.

2 participants