회원가입 | 고객센터 |
DESIGNONEX
디자인원엑스
Q&A
지식공유
공지사항
DX마켓
쇼핑몰
포트폴리오
통계
로그인 회원가입
고객센터

DXCMS v10.1.0

D DX관리자
2026.09.28 11:03(수정됨) 8 0 5

DXCMS v10.1.0 패치 노트

릴리즈 버전: v10.1.0
기준 버전: v10.0.9
작성일: 2026-09-28



1. 버전 단일 관리 (version.php)

대상 파일

  • version.php ← 신규
  • index.php
  • dx_load.php
  • install/index.php
  • install/migrate.php

변경 내용

  • 루트 version.php(return '10.1.0';) 한 곳에서 버전 관리 — 버전 변경 시 이 파일 한 줄만 수정
  • index.php · dx_load.php · install/index.php · install/migrate.php 모두 이 파일을 읽어 DX_VERSION 상수 정의 (파일 없으면 0.0.0)
  • 기존 DX_VERSION 사용처(캐시 버스팅 ?v=, DX Market X-Cms-Version, 관리자 버전 표시)는 수정 없이 그대로 동작
  • migrate.php 맨 끝에 현재 버전 동기화 블록 추가 — cms_version = DX_VERSION 기록. 앞으로는 버전을 올려도 migrate.php를 고칠 필요 없음 (DB 구조 변경 시에만 버전별 블록 추가)
  • migrate.php 화면 제목·배지·완료 문구가 DX_VERSION을 자동 표시


2. 설치 마법사 전면 개편 (install v2.0.0)

대상 파일

  • install/index.php
  • install/css/install.css
  • install/js/install.js ← 신규

변경 내용

  • 4단계 구성: 라이선스 동의 → 환경 점검 → 설치 정보 → 완료
  • 라이선스 동의 단계 신설 (GNU LGPL v3.0)
    • 허용 / 의무 / 금지 사항 요약 + LICENSE.ko.md 전문 표시 + 보증 부인 고지 + 온라인 안내 링크
    • 동의 여부를 매 단계 서버에서 재확인 — URL(?step=3) 직접 입력으로 건너뛸 수 없음
    • 설치 시 dx_settings에 license_type(LGPL-3.0), license_agreed_at, license_agreed_version 기록
  • 신규 설치 시 cms_version 기록 (기존에는 migrate.php에서만 기록되어 신규 설치 사이트는 값이 비어 있었음)
  • 설치 실행부(스키마 실행, 보안 경로 생성, config.php 작성)는 기존 로직 그대로 유지
  • 관리자 비밀번호 확인 입력 추가 (서버·브라우저 양쪽 검증)
  • 오류 시 입력값 유지 (비밀번호 제외)
  • 설치 버튼 중복 제출 방지·진행 표시
  • 환경 점검: mbstring을 권장 → 필수로 변경 (코어가 mb_* 함수를 46곳에서 폴백 없이 사용 — 없으면 사이트 500 오류), 설치 스키마 파일 확인 추가
  • 버그 수정: 설치 완료 후 config.php가 생기면서 완료 화면 대신 "이미 설치되어 있습니다"가 표시되던 문제 → 1회용 토큰(data/.install_complete)으로 방금 설치한 브라우저에만 완료 화면 표시
  • 디자인: 좌측 단계 레일(진행선) + 우측 작업 영역, 모바일은 상단 단계 표시, 외부 CDN·폰트 의존 없음 (오프라인 NAS·사내망 대응)
  • 검증: MariaDB 실제 설치로 전 과정 확인 (동의 우회 차단, DB 오류 처리, 완료 화면, 토큰 재사용 차단, 설정값 기록, migrate 버전 동기화)


배포 참고

  • 기존 사용자: 파일 덮어쓰기 → install/migrate.php 실행 (cms_version 10.1.0 자동 기록) → Ctrl+F5
  • 신규 설치자: 설치 마법사에서 라이선스 동의 후 설치 (schema.sql 변경 없음)
  • 이후 버전 업: version.php 한 줄만 변경 → migrate.php 실행


변경 파일 전체 목록 (v10.1.0)

파일 패치
version.php 신규 · 버전 단일 관리
index.php version.php 로드
dx_load.php version.php 로드
install/index.php 설치 마법사 v2.0.0 (라이선스 동의 · 버전/동의 기록 · 완료 화면 수정)
install/css/install.css 디자인 전면 개편
install/js/install.js 신규 · 제출 잠금 · 비밀번호 확인
install/migrate.php version.php 로드 · 버전 동기화 블록 · 화면 버전 자동 표시


DXCMS v10.0.9 패치 노트

릴리즈 버전: v10.0.9
기준 버전: v10.0.2 (v9.0.0 기반 패치본)
작성일: 2026-09-28



1. 게시판 설문 첨부 버그 수정 (survey_fix)

대상 파일

  • assets/js/dx-board-write.js
  • themes/default/board/basic/write.php
  • boards/skins/gallery/write.php

변경 내용

  • 버그: JS 분리(v10.0.0) 과정에서 dxSurveyToggle()이 본문(#dx-survey-body) 대신 외곽 박스(#dx-survey-wrap)를 토글 → 신규 글쓰기에서 설문 첨부 체크 시 펼쳐지지 않음 (수정 화면은 PHP가 펼친 상태로 출력해 정상처럼 보였음)
  • dxAddSq()가 존재하지 않는 #dx-sq-list를 참조하고 필드명(sq_question[], single/multi)이 handler(sq_text[], radio/checkbox)와 달라 문항 추가 불가 → 수정
  • dxSurveyToggle, dxSqTypeChange, dxRemoveSq, dxAddSq 4개 함수를 v9.0.0 원본 로직으로 복원
  • 신규 글쓰기에서 설문 영역 기본 펼침 ($_surveyOn = ($_esSurvey !== null) || empty($_isEd)) — 빈 문항은 dx_board_save_survey()에서 걸러져 빈 설문 미생성
  • 설문 첨부 전체를 <div id="dx-survey-group">으로 감쌈 — 플러그인 개발용 훅 (basic·gallery 공통, use_survey 게시판에서만 출력)


2. 갤러리 글쓰기 JS 분리 누락분 적용 (gallery_write_patch)

대상 파일

  • boards/skins/gallery/write.php

변경 내용

  • v10.0.0 JS 분리에서 누락된 gallery write.php 인라인 스크립트 4블록(링크·파일첨부·설문·검증) 제거 → assets/js/dx-board-write.js 공통 사용 (basic과 v9 기준 코드 동일 확인)
  • basic에만 반영돼 있던 v10 패치 2건 동기화
    • 스타일 경로 하드코딩 dx_base_url('themes/default/board/basic/style.css') → dx_theme_url('board/basic/style.css')
    • 비회원 글 수정용 guest_token hidden 필드 누락 추가
  • 49KB → 33KB


3. 인라인 CSS 전면 분리 (css_split)

변경 내용

  • PHP 내 <style> 블록 27개 중 25개를 외부 CSS 파일로 분리, 원래 위치에 <link>로 교체 (캐스케이드 순서 동일, ?v=DX_VERSION)
  • core/·extend/는 웹 접근 차단(403)이므로 core 계열 CSS는 assets/css/ 하위에 배치
  • PHP 동적 값 처리
    • _social_notice.php — $notice_type 색상 분기 → <body class="is-error"> 클래스 방식
    • 캡차 — #동적ID::placeholder → .dx-cap-input 클래스
    • 최신글 갤러리 grid/slide — #동적ID 선택자 → .dx-latest-gallery-grid / .dx-latest-gallery-slide
    • _head.php — 테마 변수는 theme-vars.css로, 관리자 설정 색상 --p 한 줄만 인라인 유지
  • 인라인 유지: layout/_head.php의 --p, core/DxCss.php SSR(페이지별 동적 생성)
  • 검증: 분리 CSS 전체를 원본 블록과 글자 단위 자동 대조(일치), php -l 통과, CRLF/LF 보존


4. 인라인 JS 전면 분리 (js_split 1~5차)


공통 원칙

  • 로직은 원문 그대로 이동 — 변경 줄은 PHP 값 참조부만 (원본 대비 줄 단위 diff 확인)
  • PHP 값은 원본 리터럴(따옴표·addslashes·htmlspecialchars·json_encode 포함)을 그대로 인라인 설정 객체로 이동 → 인코딩 결과 동일
  • PHP 조건문(<?php if … ?>)은 설정값 null/true/false 분기로 변환 (관리자 전용 함수 등 기존 조건 유지)
  • <script src>를 원래 블록 위치에 배치해 실행 순서·DOM 타이밍 유지, 즉시 실행 블록은 JS 파서 분석 후 위치별 개별 파일로 분리
  • 검증: 전 파일 node --check / php -l, 설정 블록은 실제 PHP 실행으로 값 확인, 주요 흐름은 헤드리스 크롬으로 원본 대비 동작 비교


1차 — 게시판 스킨 (basic · gallery list/view)

  • view 블록 5개(basic=gallery 원문 동일) → dx-board-view.js로 통합 (YouTube embed, CSRF, 새 글·수정 브로드캐스트, 이동/복사, 비회원 비밀번호 확인)
  • list — 정렬 토글은 dx-board-list.js, 모바일 카테고리 바는 dx-board-list-cat.js(신규), 실시간·일괄처리는 스킨별 list-live.js, CSRF 갱신·전체공지는 list-tail.js
  • gallery 전용 기능(갤러리 카드 실시간 삽입, 전체공지 실시간)은 gallery 파일에만 두어 basic 동작 불변
  • gallery list 1145→843줄, view 1175→1031줄 / basic list 589→413줄, view 1180→1036줄


2차 — themes

  • _list_rows.php 전체공지 실시간 핸들러 → _list_rows.js (페이지당 1회 출력 가드 유지, 주석 깨진 문자 정리)
  • auth/mypage/profile.php 탈퇴 모달 자동 표시 → profile-withdraw.js ($withdrawMsg 있을 때만 로드)
  • layout/_head.php Google Analytics 초기화 → assets/js/dx-gtag.js (측정 ID는 data-ga-id, 원본과 같은 실행 순서를 위해 async gtag.js 앞에서 로드)


3차 — core (auth 포함)

  • _social_notice.php 소셜 가입 인증코드 제출 → assets/js/auth/social-verify.js (원본/분리본 실제 제출 폼 값 동일 확인)
  • email-verify.php → assets/js/auth/email-verify.js, register.php(2블록) → assets/js/auth/register.js, profile.php → assets/js/auth/profile.js
  • core/auth/mypage/_foot·memo·profile.php — theme 분리본과 동일 구조로 정렬, dx-mypage.js·dx-mypage-memo.js 재사용
  • DxPopup → assets/js/core/dx-popup.js (DX_POPUP_DATA)
  • 캡차: 내장 → captcha.js, reCAPTCHA v3 → recaptcha-v3.js (폼별 인스턴스 값은 data-sk/data-ctx), Turnstile → turnstile.js


4차 — admin

  • 관리자 인라인 스크립트 23블록 분리, 각 페이지 옆에 배치 (예: admin/boards/list.js, admin/market/script.js)
  • PHP 값은 DX_ADM_* 설정으로 이동 (레벨·메뉴·메일·인기글 차트·전체공지·게시판 삭제 토큰맵·추가필드·소켓·페이지 관리·플러그인·마켓)
  • admin 내 로직 포함 인라인 스크립트 0개 (소켓·세션가드 설정만 유지)


5차 — plugins · pages

  • 결제 플러그인 8종(PayPal, NICEPAY, 네이버페이, Stripe, 토스페이, KCP, KG이니시스, 템플릿) → 각 플러그인 payment.js (DX_PAY_*)
  • 토스페이: PHP 문자열 출력 스크립트의 이스케이프 해제 후 실행 코드 그대로 분리
  • dx-socket/admin/settings.php·widget.php → settings.js·widget.js, pages/shop.php → assets/js/pages/shop.js


의도적 인라인 유지

  • PHP → JS 설정값 블록 (DX_BASE, DX_SOCKET, DX_*_CFG 등)
  • 다크모드 FOUC 방지 스크립트 (extend/top/01_darkmode_early.php) — 외부화 시 로드 실패하면 화면이 숨김 상태로 남을 위험
  • 결제·로그인·로그아웃 리다이렉트 한 줄(location.href/location.replace) — 토큰·결제 URL 포함 단일 응답
  • dxb-css 로더·rescan, DxSeo JSON-LD(데이터)


5. 마이페이지 쪽지 CSRF 누락 버그 수정 (memo_csrf_fix)

대상 파일

  • assets/js/dx-mypage-memo.js

변경 내용

  • 버그: v10.0.0 마이페이지 JS 분리 시 var MX_CSRF 선언이 인라인에서 삭제되고 JS 파일에도 없음 → 쪽지 읽음·삭제·보내기 요청 시 ReferenceError
  • 원본 선언 줄을 dx-mypage-memo.js 상단에 그대로 복원


6. DB 마이그레이션 v10.0.9 블록 추가 (migrate)


대상 파일

  • install/migrate.php


변경 내용

  • v10.0.9 블록 추가 — dx_settings.cms_version = 10.0.9 기록 (ON DUPLICATE KEY UPDATE, 중복 실행 안전)
  • DB 구조(테이블·컬럼) 변경 없음
  • 마이그레이션 화면 표시 버전 v8.8.3 → v10.0.9, 완료 안내에 캐시 새로고침(Ctrl+F5) 안내 추가, 주요 변경 사항에 v10.0.9 항목 추가 (v8.8.3 내역은 하단 유지)
  • 기존 사용자는 파일 덮어쓰기 후 반드시 https://도메인/install/migrate.php 실행


배포 참고

  • 기존 사용자: 패치 파일 덮어쓰기 → install/migrate.php 브라우저 실행 (cms_version 10.0.9 기록) → Ctrl+F5
  • 신규 설치자: 전체 소스로 설치 (install/schema.sql 변경 없음)
  • 캐시: JS/CSS 캐시 버스팅이 ?v=DX_VERSION 이므로 배포 시 DX_VERSION을 10.0.9로 올려야 방문자 브라우저가 새 파일을 받음 (미변경 시 구 JS + 신 PHP 조합으로 DX_CSRF is not defined 등 오류)
  • 적용 순서: CSS 분리 → JS 분리 1~5차 (일부 PHP 파일에 CSS·JS 변경이 함께 포함)
  • 서버 charset: 분리된 .js/.css가 UTF-8로 전송되어야 함 (카페24 등 기본 EUC-KR 호스팅은 AddCharset UTF-8 .js .css 필요)
  • boards/skins/product/ 는 운영 서버에 없어 패치 대상에서 제외


변경 파일 전체 목록 (v10.0.9)

파일 패치
admin/boards/fields.js 신규 · JS 분리 4차
admin/boards/index.php CSS 분리 + JS 분리 4차
admin/boards/list-2.js 신규 · JS 분리 4차
admin/boards/list.js 신규 · JS 분리 4차
admin/boards/style.css 신규 · CSS 분리
admin/boards/type.js 신규 · JS 분리 4차
admin/global_notices/form.js 신규 · JS 분리 4차
admin/global_notices/index.php JS 분리 4차
admin/global_notices/list.js 신규 · JS 분리 4차
admin/index.php JS 분리 4차
admin/layout.js 신규 · JS 분리 4차
admin/levels/index.php JS 분리 4차
admin/levels/script.js 신규 · JS 분리 4차
admin/market/index.php JS 분리 4차
admin/market/script.js 신규 · JS 분리 4차
admin/menus/index.php JS 분리 4차
admin/menus/script.js 신규 · JS 분리 4차
admin/pages/index.php JS 분리 4차
admin/pages/script.js 신규 · JS 분리 4차
admin/plugins/delete.js 신규 · JS 분리 4차
admin/plugins/index.php JS 분리 4차
admin/plugins/script.js 신규 · JS 분리 4차
admin/popular/chart.js 신규 · JS 분리 4차
admin/popular/index.php JS 분리 4차
admin/popup/index.php CSS 분리 + JS 분리 4차
admin/popup/script.js 신규 · JS 분리 4차
admin/popup/style.css 신규 · CSS 분리
admin/sendmail/compose.js 신규 · JS 분리 4차
admin/sendmail/index.php CSS 분리 + JS 분리 4차
admin/sendmail/smtp.js 신규 · JS 분리 4차
admin/sendmail/style.css 신규 · CSS 분리
admin/sendsms/index.php JS 분리 4차
admin/sendsms/script.js 신규 · JS 분리 4차
admin/settings/index.php JS 분리 4차
admin/settings/script.js 신규 · JS 분리 4차
admin/shop/index.php JS 분리 4차
admin/shop/script.js 신규 · JS 분리 4차
admin/sites/index.php JS 분리 4차
admin/sites/script.js 신규 · JS 분리 4차
admin/socket/index.php JS 분리 4차
admin/socket/script.js 신규 · JS 분리 4차
admin/theme/index.php JS 분리 4차
admin/theme/script.js 신규 · JS 분리 4차
assets/css/auth/email-verify.css 신규 · CSS 분리
assets/css/auth/login.css 신규 · CSS 분리
assets/css/auth/register.css 신규 · CSS 분리
assets/css/auth/social-error.css 신규 · CSS 분리
assets/css/auth/social-notice.css 신규 · CSS 분리
assets/css/core/captcha.css 신규 · CSS 분리
assets/css/core/dx-debugbar.css 신규 · CSS 분리
assets/css/core/dx-popup.css 신규 · CSS 분리
assets/css/core/session-expired.css 신규 · CSS 분리
assets/css/dx-font.css 신규 · CSS 분리
assets/css/pages/home.css 신규 · CSS 분리
assets/css/pages/shop.css 신규 · CSS 분리
assets/js/auth/email-verify.js 신규 · JS 분리 3차
assets/js/auth/profile.js 신규 · JS 분리 3차
assets/js/auth/register.js 신규 · JS 분리 3차
assets/js/auth/social-verify.js 신규 · JS 분리 3차
assets/js/core/captcha.js 신규 · JS 분리 3차
assets/js/core/dx-popup.js 신규 · JS 분리 3차
assets/js/core/recaptcha-v3.js 신규 · JS 분리 3차
assets/js/core/turnstile.js 신규 · JS 분리 3차
assets/js/dx-board-list-cat.js 신규 · JS 분리 1차
assets/js/dx-board-list.js JS 분리 1차
assets/js/dx-board-view.js JS 분리 1차
assets/js/dx-board-write.js 설문 첨부 수정
assets/js/dx-gtag.js 신규 · JS 분리 2차
assets/js/dx-mypage-memo.js JS 분리 3차 + MX_CSRF 복원
assets/js/pages/shop.js 신규 · JS 분리 5차
boards/skins/gallery/list-live.js 신규 · JS 분리 1차
boards/skins/gallery/list-tail.js 신규 · JS 분리 1차
boards/skins/gallery/list.php JS 분리 1차
boards/skins/gallery/view.php JS 분리 1차
boards/skins/gallery/write.php 설문 첨부 수정 + 갤러리 글쓰기 JS 분리
core/DxDebugBar.php CSS 분리
core/DxPopup.php CSS 분리 + JS 분리 3차
core/DxSocialAuth.php CSS 분리
core/Secure.php CSS 분리
core/auth/_social_notice.php CSS 분리 + JS 분리 3차
core/auth/email-verify.php CSS 분리 + JS 분리 3차
core/auth/login.php CSS 분리
core/auth/mypage/_foot.php JS 분리 3차
core/auth/mypage/memo.php JS 분리 3차
core/auth/mypage/profile.php JS 분리 3차
core/auth/profile.php JS 분리 3차
core/auth/register.php CSS 분리 + JS 분리 3차
core/captcha/DxBuiltinDriver.php CSS 분리 + JS 분리 3차
core/captcha/DxRecaptchaV3Driver.php JS 분리 3차
core/captcha/DxTurnstileDriver.php JS 분리 3차
core/functions.php CSS 분리
install/css/install.css 신규 · CSS 분리
install/css/migrate-required.css 신규 · CSS 분리
install/css/migrate.css 신규 · CSS 분리
install/index.php CSS 분리
install/migrate.php CSS 분리 + v10.0.9 마이그레이션 블록
pages/home.php CSS 분리
pages/shop.php CSS 분리 + JS 분리 5차
plugins/custom-payment-template/payment.js 신규 · JS 분리 5차
plugins/custom-payment-template/plugin.php JS 분리 5차
plugins/dx-socket/admin/settings.js 신규 · JS 분리 5차
plugins/dx-socket/admin/settings.php JS 분리 5차
plugins/dx-socket/admin/widget.css 신규 · CSS 분리
plugins/dx-socket/admin/widget.js 신규 · JS 분리 5차
plugins/dx-socket/admin/widget.php CSS 분리 + JS 분리 5차
plugins/dx-socket/plugin.php CSS 분리
plugins/dx-socket/style.css 신규 · CSS 분리
plugins/kcp-payment/payment.js 신규 · JS 분리 5차
plugins/kcp-payment/plugin.php JS 분리 5차
plugins/kg-inicis-payment/payment.js 신규 · JS 분리 5차
plugins/kg-inicis-payment/plugin.php JS 분리 5차
plugins/naverpay-payment/payment.js 신규 · JS 분리 5차
plugins/naverpay-payment/plugin.php JS 분리 5차
plugins/nicepay-payment/payment.js 신규 · JS 분리 5차
plugins/nicepay-payment/plugin.php JS 분리 5차
plugins/paypal-payment/payment.js 신규 · JS 분리 5차
plugins/paypal-payment/plugin.php JS 분리 5차
plugins/stripe-payment/payment.js 신규 · JS 분리 5차
plugins/stripe-payment/plugin.php CSS 분리 + JS 분리 5차
plugins/stripe-payment/style.css 신규 · CSS 분리
plugins/tosspay-payment/payment.js 신규 · JS 분리 5차
plugins/tosspay-payment/plugin.php JS 분리 5차
themes/default/auth/mypage/profile-withdraw.js 신규 · JS 분리 2차
themes/default/auth/mypage/profile.php JS 분리 2차
themes/default/board/basic/_list_rows.js 신규 · JS 분리 2차
themes/default/board/basic/_list_rows.php JS 분리 2차
themes/default/board/basic/list-live.js 신규 · JS 분리 1차
themes/default/board/basic/list-tail.js 신규 · JS 분리 1차
themes/default/board/basic/list.php JS 분리 1차
themes/default/board/basic/view.php JS 분리 1차
themes/default/board/basic/write.php 설문 첨부 수정
themes/default/board_latest/gallery/grid.css 신규 · CSS 분리
themes/default/board_latest/gallery/grid.php CSS 분리
themes/default/board_latest/gallery/slide.css 신규 · CSS 분리
themes/default/board_latest/gallery/slide.php CSS 분리
themes/default/layout/_head.php CSS 분리 + JS 분리 2차
themes/default/layout/css/theme-vars.css 신규 · CSS 분리
themes/default/parts/pagination.css 신규 · CSS 분리
themes/default/parts/pagination.php CSS 분리
themes/default/search/list.css 신규 · CSS 분리
themes/default/search/list.php CSS 분리


DXCMS v10.0.0 패치 노트

릴리즈 버전: v10.0.0
기준 버전: v9.9.0
작성일: 2026-09-21



1. 게시판 JS 분리 (board_js_patch)

대상 파일

  • assets/js/dx-board-view.js
  • assets/js/dx-board-list.js
  • assets/js/dx-board-write.js
  • themes/default/board/basic/view.php
  • themes/default/board/basic/list.php
  • themes/default/board/basic/write.php
  • boards/skins/gallery/view.php
  • boards/skins/gallery/list.php


변경 내용

  • 각 스킨(view/list/write)에 인라인으로 포함되어 있던 JS를 외부 파일로 분리
  • dxFetch, LightBox, OG카드, 삭제 모달 등 공통 함수를 dx-board-view.js로 통합
  • dxToggleSearch, dxToggleAdmMenu, dxBulkDelete 등을 dx-board-list.js로 통합
  • dxWriteAlert 등을 dx-board-write.js로 통합


2. 뷰 페이지 페이지네이션 vp → page 변경 (vp_patch, vp-re-patch)


대상 파일

  • themes/default/board/basic/view.php
  • boards/skins/gallery/view.php


변경 내용

  • 뷰 페이지 하단 목록 페이지네이션 URL 파라미터 vp= → page= 변경
  • 하위 호환: $_GET['vp'] 폴백 유지
  • 페이지네이션 base URL을 view/{id}? → list? 로 변경 (목록 페이지 기반)
  • $_ltPaginationParam = 'page' 적용


3. 갤러리/베이직 뷰 최종 패치 (view_final_patch)


대상 파일

  • assets/js/dx-board-view.js
  • themes/default/board/basic/view.php
  • boards/skins/gallery/view.php


변경 내용

  • LightBox HTML(div#dx-lb-ov)을 script src 앞에 배치 (DOM 존재 보장)
  • dx-cmt-del-modal HTML 추가
  • gallery/style.css 추가 로드
  • JS 분리 + LB HTML 삽입 최종 확정


4. 다크모드 CSS 외부 파일화 (darkmode_patch, darkmode_css_patch)


대상 파일

  • assets/dx-dark.css ← 신규
  • assets/js/dx-darkmode-engine.js
  • extend/top/01_darkmode_early.php
  • extend/bottom/02_darkmode_engine.php


변경 내용

  • injectSiteCss(), injectAdminCss() 동적 <style> 생성 제거
  • 사이트+관리자 다크모드 CSS를 assets/dx-dark.css 정적 파일로 분리
  • injectDarkLink() 추가 — 다크모드 ON/OFF 시 <link> 태그 추가/제거 방식으로 교체
  • scanAll(), processEl() 인라인 style 주입 함수 제거 (693줄 → 119줄)
  • 01_darkmode_early.php 인라인 <style> 블록 제거 — 다크모드일 때만 <link> 동적 삽입
  • themes/default/layout/_head.php 에서 body.dark CSS 변수 블록 제거 (dx-dark.css로 이동)


5. 소켓 플러그인 CSS/JS 정리 (socket_patch, socket_css_patch, socket_js_patch, reply_fix_patch)


대상 파일

  • plugins/dx-socket/plugin.php
  • plugins/dx-socket/chats/default/chat.php
  • plugins/dx-socket/chats/bubble/chat.php
  • assets/js/dx-socket-core.js


변경 내용

  • 채팅 스킨 CSS를 chat.php 직접 출력 → plugin.php의 dx_head 훅으로 이동
  • dx-socket-core.js: dxLog, dxLogToServer 함수 및 호출 제거 (1150줄 → 1105줄)
  • 답글 소켓 실시간 반영 버그 수정 (socket-core.js.php)


6. DxCache 에러 로그 제거 (dxcache_patch)


대상 파일

  • core/DxCache.php


변경 내용

  • file_get_contents() 전에 file_exists() 선체크 추가
  • @file_get_contents() 적용 — PHP error_log에 캐시 파일 없음 에러 기록 제거


7. N 배지 버그 수정 (badge_fix)


대상 파일

  • themes/default/layout/_init.php
  • themes/default/layout/_main.php


변경 내용

  • slug 중복 카테고리(DX개발이야기, ADAY 모두 slug=dx) 오배지 수정
  • _dxCatNewBadge() — slug 체크 시 category 이름도 동시 체크
  • board_key 단독키 + board_key|category 복합키 모두 세팅
  • _main.php — 부모 카테고리 N 배지에서 자식 카테고리($_subs) 체크 제거


8. 검색 기능 개선 (search_fix)


대상 파일

  • core/search/handler.php


변경 내용

  • ft_min_word_len(기본값 4) 미만 키워드는 FULLTEXT 대신 LIKE 검색으로 폴백
  • "흥청" 등 2~3글자 한국어 검색 정상 동작
  • ft_min_word_len 값은 1시간 캐시로 조회 (DB 부하 최소화)
  • MySQL 5.6 ~ 최신 버전 모두 호환


9. 회원관리 대시보드 + 로그인 로그 (members_patch)


대상 파일

  • admin/index.php
  • admin/members/index.php
  • core/auth/Auth.php
  • install/schema.sql
  • install/migrate.php


변경 내용

  • 관리자 사이드메뉴 회원 목록 → 회원 관리로 변경
  • 회원관리 서브메뉴 8개 탭 구조 추가
    • 회원 현황(대시보드) / 회원 목록 / 가입 관리 / 회원 그룹 / 권한 관리 / 활동 관리 / 제재 관리 / 탈퇴 관리
  • 대시보드: 통계 카드 4개 + 최근 7일 가입 추이 바 차트 + 8개 메뉴 카드
  • 활동 관리 탭: 로그인/로그아웃/실패 기록 조회 (검색, 필터, 페이지네이션)
  • dx_login_logs 테이블 신설 (신규 설치 schema.sql + 마이그레이션)
  • Auth.php — 로그인 성공/실패/로그아웃 시 dx_login_logs 자동 기록


10. 소셜 로그인 이메일 인증 연동 (social_email_patch, social_email_fix)


대상 파일

  • core/DxSocialAuth.php
  • core/auth/_social_common.php
  • core/auth/_social_notice.php
  • core/auth/email-verify.php


변경 내용

  • 소셜 로그인으로 신규 가입 시 use_email_verify 설정 적용
  • use_email_verify = OFF → 기존과 동일 (바로 가입+로그인)
  • use_email_verify = ON → 소셜 정보를 세션에 임시 저장 + 인증 메일 발송 + 인증 페이지 안내
  • 기존 회원 소셜 로그인은 인증 없이 바로 로그인
  • _social_notice.php — 이메일 인증 필요 시 인증 코드 입력 폼 표시 (6자리, Enter 지원)
  • email-verify.php — 인증 완료 후 dx_social_pending 세션으로 소셜 회원 직접 가입+로그인


11. 홈 CSS 개선 (home_css_patch)


대상 파일

  • themes/default/page/home.php
  • themes/default/layout/css/home.css


변경 내용

  • 홈 페이지 CSS 외부 파일 분리


12. 마이페이지 개선 (mypage_patch)


대상 파일

  • assets/js/dx-mypage.js
  • assets/js/dx-mypage-memo.js
  • themes/default/auth/mypage/profile.php
  • themes/default/auth/mypage/memo.php
  • themes/default/auth/mypage/_foot.php


변경 내용

  • 마이페이지 JS 외부 파일 분리
  • 쪽지 JS 외부 파일 분리


13. 게시판 고정글 관리자 기능 (boards_sticky_patch)


대상 파일

  • admin/boards/index.php


변경 내용

  • 게시판 관리자에서 고정글(sticky) 설정 기능 추가


14. 다운로드 버그 수정 (dx-download-patch)


대상 파일

  • core/api/download.php


변경 내용

  • 파일 다운로드 처리 버그 수정


변경 파일 전체 목록

파일 패치
assets/dx-dark.css 신규
assets/js/dx-board-view.js JS 분리
assets/js/dx-board-list.js JS 분리
assets/js/dx-board-write.js JS 분리
assets/js/dx-darkmode-engine.js 693줄→119줄
assets/js/dx-socket-core.js 1150줄→1105줄
assets/js/dx-mypage.js JS 분리
assets/js/dx-mypage-memo.js JS 분리
themes/default/board/basic/view.php JS분리+vp→page
themes/default/board/basic/list.php JS 분리
themes/default/board/basic/write.php JS 분리
themes/default/layout/_head.php body.dark 제거
themes/default/layout/_init.php N배지 버그 수정
themes/default/layout/_main.php N배지 버그 수정
themes/default/page/home.php CSS 분리
themes/default/layout/css/home.css 신규
themes/default/auth/mypage/profile.php JS 분리
themes/default/auth/mypage/memo.php JS 분리
themes/default/auth/mypage/_foot.php JS 분리
boards/skins/gallery/view.php JS분리+vp→page
boards/skins/gallery/list.php JS 분리
plugins/dx-socket/plugin.php CSS head로 이동
plugins/dx-socket/chats/default/chat.php CSS link 제거
plugins/dx-socket/chats/bubble/chat.php CSS link 제거
extend/top/01_darkmode_early.php 인라인CSS 제거
extend/bottom/02_darkmode_engine.php CSS link 로드
core/DxCache.php 에러로그 제거
core/DxSocialAuth.php 이메일인증 연동
core/auth/Auth.php 로그인 로그 기록
core/auth/_social_common.php need_verify 처리
core/auth/_social_notice.php 인증 코드 입력폼
core/auth/email-verify.php 소셜 가입 완료
core/api/download.php 버그 수정
core/search/handler.php LIKE 폴백 추가
admin/index.php 회원관리 메뉴명
admin/members/index.php 대시보드+서브메뉴
admin/boards/index.php 고정글 기능
install/schema.sql login_logs 추가
install/migrate.php v9.0.0 블록 추가

DXCMS — Copyright (C) 2026 designonex [디자인원엑스]
License: GNU Lesser General Public License v3.0 (LGPL-3.0)

댓글5

D
DX관리자 2026.09.28 11:07
요번 패치는 좀 많이 했습니다.




인스톨 화면도 갱신했습니다.

요번 패치로 안보이는 실행 오류가 분명히 있을 거라 생각합니다.
패치 범위가 너무 컸습니다.
피드백 부탁드립니다. 감사합니다.
여
여유당 2026.09.28 13:34
고생 많으셨습니다.
D
DX관리자 2026.09.28 14:34
감사합니다. ^^
D
DX러브맨 2026.09.28 21:48
수고 많으셨습니다
내일까지 일정이 있는데 모레부터 다시 열심히 방문하겠습니다
^___^
D
DX관리자 2026.09.28 23:14
^^ 네네 
시간되실 때 오세요^^
제가 열심히 지키고 있습니다. ~~~~^^b
로그인 후 댓글을 작성할 수 있습니다.
번호 제목 작성자 날짜 조회
공지
D DX관리자
07.29 30
14
DX관리자
09.29 1
DX관리자 · 1
DX관리자
09.28 8
DX관리자 · 8
12
DX관리자
08.31 52
DX관리자 · 52
11
DX관리자
08.16 29
DX관리자 · 29
10
DX관리자
07.29 34
DX관리자 · 34
9
DX관리자
07.20 36
DX관리자 · 36
8
DX관리자
07.14 39
DX관리자 · 39
7
DX관리자
07.09 38
DX관리자 · 38
6
DX관리자
07.07 39
DX관리자 · 39
5
DX관리자
07.06 39
DX관리자 · 39
4
DX관리자
07.02 48
DX관리자 · 48
3
DX관리자
06.27 46
DX관리자 · 46
2
DX관리자
06.21 81
DX관리자 · 81
1
DX관리자
06.15 88
DX관리자 · 88
50
전체 회원
1,516
전체 게시글
2,969
전체 댓글
5
오늘 방문
55,144
전체 방문
0
현재 접속
인기글 7일 이내
최신글
최신댓글
내 플레이리스트
플레이리스트가 비어있습니다
스튜디오 게시판에서
플레이리스트에 담기 버튼을
눌러보세요
목록 로그인
목록