본문 바로가기
디자인원엑스커뮤니티의 새로운 기본
홈 고객센터
Latest Version
DXCMS v10.3.02026.06.15 배포 D+125일 (4개월)
  • 155다운로드
  • 0테마
  • 59플러그인
  • 7스킨
디엑스AI공부방

AI 단계별 작업 문서 00 — 작업 지침 및 구현 원칙

D DX관리자
2026.10.18 01:31(수정됨) 2 0 1

AI 단계별 작업 문서 00 — 작업 지침 및 구현 원칙

이 문서는 원본 가이드의 해당 구간을 그대로 보존합니다. 코드 블록을 삭제하거나 축약하지 않았습니다. 먼저 읽고, 실제 작업 요청에 해당하는 다음 단계 문서를 이어서 확인하세요.

DXCMS 여분 필드 — 목록 노출 · 검색 필터 구현 가이드

대상: DXCMS v10.3.0 / AI 에이전트 작업 지침서 범위: 여분 필드의 is_list(목록 노출)와 is_search(검색 필터) 두 설정을 실제로 동작하게 만드는 방법 근거: 소스 직접 분석(boards/handler.php, core/BoardFields.php, 번들 gallery 스킨) + 이 문서의 코드를 MariaDB 10.11 / PHP 8.3 에서 실행 검증 (부록 A)


0. AI 에이전트 사용 지침

  • 사용자가 "여분 필드를 목록에 보이게 해줘", "필드 값으로 검색/필터하고 싶다"고 요청하면 이 문서대로 작업한다.
  • 기본 구조(정의 dx_board_fields, 값 dx_post_meta, 폼 name bf_{key})는 이미 알고 있다고 가정한다.
  • 추측하지 말 것. is_list, is_search 체크박스는 DB에 값만 저장하며, 코어는 이 값을 읽는 코드가 없다. 이 문서의 코드를 설치해야 비로소 동작한다.
  • 작업 순서는 항상 아래와 같다.
[1단계] 헬퍼 파일 설치 (코어 수정 없음)         ← 필수
[2단계] 스킨에 목록 칸 추가                     ← "목록 노출" 요청일 때
[3단계] handler.php 패치 3곳 + 스킨에 필터 폼   ← "검색 필터" 요청일 때
[4단계] 검증 체크리스트 수행                     ← 항상
  • 수정 전에 대상 파일을 백업하고, 수정 후에는 php -l 파일 로 문법을 확인한다.
  • 사용자가 "목록 노출만" 원하면 3단계는 하지 않는다. (코어 파일 수정이 필요한 것은 3단계뿐)

1. 소스에서 확인된 사실 (이 가이드의 근거)

# 사실 의미
1 is_list, is_search 를 읽는 코드는 코어 어디에도 없다 (관리자 저장 화면에서만 사용) 스킨/핸들러에서 직접 구현해야 함
2 목록 쿼리는 boards/handler.php 의 case 'list': case 'search': 안에서 $where 문자열과 $params 배열로 조립된다. 조건을 끼워 넣는 훅이 없다 필터는 handler.php 에 소량 패치가 필요
3 COUNT(*) 쿼리와 목록 쿼리가 같은 $where/$params 를 쓴다. 글 별칭은 p 조건을 한 번만 붙이면 총 개수·페이지 수가 함께 맞는다
4 목록 캐시(DxCache, 60초, 키=게시판+페이지)는 !$search && !$cat && !$tag && 비로그인 && $action!=='search' 일 때만 사용된다 필터 조건을 캐시 조건에 넣지 않으면 필터가 무시된 캐시 목록이 나온다 → 패치에 반드시 포함
5 dx_board_list_context 훅은 쿼리 이후에 실행되지만, 캐시 경로에서는 실행되지 않는다 훅으로 글에 meta를 붙이는 방식은 비로그인 방문자에게 누락될 수 있음 → 스킨에서 직접 조회
6 목록 파라미터는 s, sf, cat, parent, tag, page. 스킨의 페이지네이션은 이 값들만 링크에 이어붙인다 필터 파라미터(bf_*)를 페이지네이션 링크에 직접 추가해야 2페이지에서 필터가 풀리지 않음
7 gallery 스킨은 _list_rows.php(카드 행 partial), list-live.js(새 글 실시간 삽입, /api/post_row 호출)를 쓴다 실시간으로 삽입된 새 행에는 여분 필드 칸이 없을 수 있음 (새로고침하면 정상)
8 글 상세 하단의 "목록"은 별도 쿼리(view 액션)이다 필터는 목록 화면에만 적용된다

2. 구현 방식 선택

요구 권장 방법 코어 수정 비고
목록에 값 표시 스킨에서 일괄 조회 후 출력 없음 2단계
필드 값으로 검색/필터 handler.php 3곳 패치 + 헬퍼 소량 (3곳) 3단계, 권장
(대안) 스킨 독립 핸들러 list/handler.php 목록 액션 전체를 스킨이 처리 없음 공지·카테고리·캐시·SEO·소켓을 전부 재구현해야 하므로 비권장
(비권장) 현재 페이지 결과를 JS/PHP로 걸러내기 — — 페이지 단위로만 걸러져 총 개수·페이지네이션이 어긋남
(비권장) dx_board_list_context 훅으로 meta 부착 — — 캐시 경로에서 실행 안 됨 (사실 #5)

댓글1

디
디엑스AI 2026.10.18 01:31

관리자님, 이번 글은 2장 표의 마지막 행까지 "(이하 생략)" 없이 끝까지 전달된 것으로 보입니다. 코드 블록이 없는 구간이라 그런 것 같지만, 원인은 제 자료로 확정할 수 없습니다.

받은 내용을 정리하면 이렇습니다. 0장 지침은 작업 순서를 헬퍼 설치, 스킨 목록 칸, handler.php 패치와 필터 폼, 검증 순으로 두었고, 수정 전 백업과 php -l 문법 확인을 요구합니다. 1장은 코어가 is_list와 is_search를 읽지 않는다는 점을 비롯한 사실 8가지입니다. 특히 캐시 조건에 필터 여부를 넣어야 하고, 페이지네이션 링크에 bf_ 파라미터를 이어붙여야 하며, 필터는 목록 화면에만 적용된다는 점이 눈에 띕니다. 2장은 목록 표시는 코어 수정 없이 스킨에서, 검색 필터는 handler.php 3곳 패치로 처리하라고 권합니다. 스킨 독립 핸들러, 결과 걸러내기, 훅 방식은 이유와 함께 비권장으로 적혀 있습니다.

이 문서는 00번 지침편이라 코드와 패치 위치는 다음 단계 문서에 있을 것으로 이해했고, 그 부분은 짐작하지 않겠습니다. 다음 조각도 @디엑스로 불러 주시면 받은 범위만 읽고 있는 그대로 말씀드리겠습니다.

※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.

로그인 후 댓글을 작성할 수 있습니다.
NO TITLE AUTHOR DATE VIEW
공지
D DX관리자
05.22 295
54
DX관리자
10.18 2
DX관리자 · 2
53
DX관리자
10.18 2
DX관리자 · 2
47
D DX러브맨
10.16 8
D DX러브맨 · 8
46
DX관리자
10.16 7
DX관리자 · 7
44
DX관리자
10.16 6
DX관리자 · 6
내 플레이리스트
플레이리스트가 비어있습니다
스튜디오 게시판에서
플레이리스트에 담기 버튼을
눌러보세요
목록 로그인
TODAY 가입0 게시글8 댓글56 방문18
TOTAL 회원56 게시글1,633 댓글3,532 방문56,039
현재 접속1
목록