디엑스AI야 뭐하니?
지금 문제점은 대충 알겠는데, 한가지 궁금한게 있어
신고는 플러그인으로 배포중인데 찾지를 못한다는 것이니?
제목 말고, 글 내용도 읽는 것 아니였어?
글 내용도 읽고 있습니다. 신고 글의 관리자님 댓글에서 신고와 리액션이 별개의 플러그인이고, 게시판 확장 플러그인이 아직 완료되지 않았다는 말씀도 확인했어요.
제가 못 찾는 건 플러그인 자체가 아니라 배포 현황 자료입니다.
※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.
| 내용 | |
| 플러그인 ID | dx-report |
| 버전 | 1.2.0 |
| 지원 PHP | 5.6 이상 (Windows 환경 포함) |
| 지원 DB | MySQL 5.6+ / MariaDB 10.1+ |
| 제작사 | DesignOneX (디자인원엑스) |
| 라이선스 | 디자인원엑스 라이선스 |
| 항목 | 내용 |
| 재배포·판매 | ❌ 금지 (원천 소스 90% 이상 수정 시 재배포 및 판매 가능) |
| 플러그인 원천 시스템 | DesignOneX 소유 |
| 상업적 사용 | ✅ 상업적 제작에만 허용, 학습용 |
| 라이선스 | 디자인원엑스 라이선스 |
| 기능 | 설명 |
| 신고 버튼 자동 삽입 | 게시글 본문 하단 또는 액션 바에 신고 버튼 자동 출력 |
| 댓글 신고 | ⋮ 드롭다운 메뉴에 신고 버튼 추가 |
| 신고 모달 | 사유 선택 + 기타 직접 입력 지원 |
| 자동 블라인드 | 신고 누적 임계값 도달 시 게시글·댓글 내용 자동 숨김 |
| 자동 삭제 | 임계값 초과 시 게시글 자동 삭제 |
| 포인트 지급 | 관리자 블라인드/삭제 처리 시 신고자에게 포인트 지급 (dx_point_log) |
| 관리자 알림 | 24시간 그만보기 + 신규 신고 발생 시 자동 재표시 |
| 신고 관리자 화면 | 대시보드, 신고 목록, 처리, 기각 기능 |
| 사유 한글화 | 관리자 화면에서 신고 사유 한글 표시 |
| 직접입력 보기 | 기타 사유 클릭 시 전체 내용 모달 팝업 |
plugins/dx-report/
├── plugin.php 메인 플러그인 파일 (훅 등록)
├── manifest.php 플러그인 메타 정보
├── core/
│ ├── install.php DB 테이블 자동 설치 및 업그레이드
│ └── helper.php 핵심 함수 모음
├── admin/
│ └── index.php 관리자 화면
└── assets/
└── report.css 버튼 및 모달 스타일
| 테이블명 | 용도 |
| dx_report_settings | 신고 설정 (임계값, 포인트, 버튼 등) |
| dx_reports | 신고 기록 (신고자, 사유, 처리 상태) |
| dx_report_counts | 신고 집계 (블라인드/삭제 상태) |
| 컬럼 | 타입 | 설명 |
| is_active | TINYINT(1) | 기능 ON/OFF |
| auto_insert | TINYINT(1) | 버튼 자동 삽입 여부 |
| insert_position | VARCHAR(20) | 삽입 위치 (content_bottom / action_bar) |
| blind_threshold | INT UNSIGNED | 블라인드 임계값 (신고 건수) |
| delete_threshold | INT UNSIGNED | 삭제 임계값 (0=비활성) |
| report_point | INT UNSIGNED | 채택 시 지급 포인트 (0=비활성) |
| btn_label | VARCHAR(50) | 버튼 텍스트 |
| btn_style | VARCHAR(20) | 버튼 스타일 (subtle/outline/solid) |
| notify_admin | TINYINT(1) | 관리자 알림 ON/OFF |
| reasons | TEXT | 신고 사유 목록 (JSON) |
| 컬럼 | 타입 | 설명 |
| target_type | VARCHAR(20) | post 또는 comment |
| target_id | VARCHAR(20) | 신고 대상 ID (DXCMS BIGINT → string) |
| board_key | VARCHAR(64) | 게시판 키 |
| post_id | VARCHAR(20) | 댓글 신고 시 원글 ID |
| member_id | INT UNSIGNED | 신고자 회원 ID (비회원=0) |
| reason_code | VARCHAR(50) | 신고 사유 코드 |
| reason_text | TEXT | 기타 직접 입력 내용 |
| status | VARCHAR(20) | pending / reviewed / dismissed |
| point_granted | TINYINT(1) | 포인트 지급 완료 여부 (중복 방지) |
| 설정 항목 | 기본값 | 설명 |
| 신고 기능 활성화 | ON | 전체 신고 기능 ON/OFF |
| 자동 삽입 | ON | 신고 버튼 자동 삽입 여부 |
| 삽입 위치 | content_bottom | content_bottom: 본문 하단 / action_bar: 액션 버튼 영역 |
| 로그인 필수 | ON | OFF 시 비회원도 신고 가능 |
| 블라인드 임계값 | 5건 | 이 건수 이상 신고 시 자동 블라인드 |
| 삭제 임계값 | 0건 | 0 = 자동 삭제 비활성화 |
| 신고 채택 포인트 | 0 | 0=비활성 / 1이상=블라인드·삭제 처리 시 신고자에게 지급 |
| 버튼 라벨 | 신고 | 버튼에 표시될 텍스트 |
| 버튼 스타일 | subtle | subtle / outline / solid |
| 직접 입력 허용 | ON | 기타 사유 직접 입력 허용 |
| 관리자 알림 | ON | 대기 신고 발생 시 알림 모달 표시 |
| 삽입 위치 | DOM 기준 | 설명 |
| content_bottom | .dx-file-box beforebegin | 첨부파일 박스 위 |
| action_bar | .dx-action-btn 앞 | 좋아요/스크랩 버튼 영역 앞 |
| 스타일 | 외형 |
| subtle (기본) | 회색 배경 + 둥근 모서리 |
| outline | 빨간 테두리 + 투명 배경 |
| solid | 빨간 배경 + 흰 텍스트 |
<?php
if (function_exists('dxrp_btn_html')) {
echo dxrp_btn_html(
'post', // 대상 유형: post 또는 comment
$post['id'], // 대상 ID
$board['board_key'], // 게시판 키
0, // post_id (댓글 신고 시 원글 ID)
$board['id'], // 게시판 ID
'manual' // 위치 식별자
);
}
?>
| 코드 | 한글 표시 |
| spam | 스팸/광고 |
| obscene | 음란/선정적 |
| abuse | 욕설/비방 |
| illegal | 불법 정보 |
| privacy | 개인정보 침해 |
| copyright | 저작권 침해 |
| other | 기타 (직접 입력) |
| 처리 항목 | 방식 |
| 본문 내용 | 404 없이 안내 메시지로 교체 |
| 첨부파일 | 파일 목록 비우기 + 다운로드 링크 차단 |
| DB 처리 | dx_report_counts.blind_status = 1 |
| 요소 | 셀렉터 |
| 댓글 아이템 | id="comment-{숫자}" |
| ⋮ 드롭다운 메뉴 | id="dx-cmt-menu-{숫자}" |
| 댓글 본문 | id="cmt-view-{숫자}" class="dx-cmt-body" |
| 댓글 섹션 | section.dx-cmt-section |
| 상황 | 포인트 지급 |
| 관리자가 직접 블라인드 처리 | ✅ 지급 |
| 관리자가 직접 삭제 처리 | ✅ 지급 |
| 신고 누적으로 자동 블라인드/삭제 | ❌ 미지급 |
| 기각 처리 | ❌ 미지급 |
| 동일 신고에 중복 지급 | ❌ point_granted=1 플래그로 차단 |
| 컬럼 | 값 |
| type | 'report' |
| point | 설정된 포인트 값 |
| balance | 이전 잔액 + 포인트 |
| ref_type | 'post' 또는 'comment' |
| ref_id | 신고 대상 ID |
| note | '신고 채택 포인트' |
| 단계 | 내용 |
| 1 | 관리자로 로그인한 상태에서 아무 페이지 접근 |
| 2 | dx_reports 테이블에서 status='pending' 건수 카운트 |
| 3 | 대기 건수 > 0 이면 전체 화면 오버레이 모달 표시 |
| 4 | 신고 관리 바로가기 또는 닫기/그만보기로 모달 해제 |
| 통계 카드 | 설명 |
| 전체 신고 | 누적 신고 총 건수 |
| 검토 대기 | pending 상태 건수 |
| 오늘 신고 | 당일 접수 건수 |
| 블라인드 처리 | 자동/수동 블라인드 처리 건수 |
| 삭제 처리 | 자동/수동 삭제 처리 건수 |
| 처리 | 설명 |
| 블라인드 | 게시글/댓글 내용 숨김 (복구 가능) + 포인트 지급 |
| 블라인드 해제 | 블라인드 상태 해제 |
| 삭제 | 게시글 삭제 처리 + 포인트 지급 |
| 복구 | 삭제/블라인드 상태 복구 |
| 기각 | 신고 내용 부적절 시 기각 처리 (포인트 미지급) |
dx_add_hook('dx_report_notify', function($data) {
// $data['notify_type'] : 'report' | 'blind' | 'delete'
// $data['title'] : 알림 제목
// $data['message'] : 알림 내용
// $data['post_url'] : 게시글 URL
// $data['admin_url'] : 관리자 신고 URL
// 이메일, Slack, 푸시 알림 등 연동 가능
});
dx_add_hook('dx_report_point_granted', function($data) {
// $data['member_id'] : 지급 대상 회원 ID
// $data['point'] : 지급 포인트
// $data['report_id'] : 신고 ID
// $data['reason'] : '신고 채택'
// 외부 포인트 플러그인 추가 연동 가능
});
$result = dxrp_submit(array(
'target_type' => 'post',
'target_id' => $post['id'],
'board_key' => $board['board_key'],
'member_id' => $memberId,
'reason_code' => 'spam',
'reason_text' => '',
));
// $result['ok'] : true/false
// $result['count'] : 누적 신고 건수
// $result['auto_action'] : '' | 'blinded' | 'deleted'
| 증상 | 원인 및 해결 |
| 포인트가 적립되지 않음 | 설정의 신고 채택 포인트가 0인지 확인. 자동 블라인드/삭제는 포인트 미지급, 관리자 직접 처리 시에만 지급 |
| 댓글 블라인드 후 댓글이 사라짐 | #cmt-view-{id} innerHTML을 안내 메시지로 교체. 댓글 구조(아바타, 작성자)는 유지됨 |
| 신고 버튼이 표시되지 않음 | 설정에서 신고 기능 활성화 ON 확인. 적용 게시판 설정이 해당 게시판 키와 일치하는지 확인 |
| 관리자 알림이 계속 뜸 | 24시간 그만보기 클릭 후에도 신규 신고가 들어오면 다시 표시됨 (정상 동작) |
| install SQL error: key too long | innodb_strict_mode=0 자동 적용. MySQL 5.6 이하면 MariaDB 10.1+ 업그레이드 권장 |
| 신고 처리 후 포인트 내역 확인 | phpMyAdmin에서 dx_point_log 테이블 → type='report' 조건으로 조회 |
붙여 주신 내용이 이번에는 매뉴얼로도 제게 전달됐습니다. 신고 플러그인 ID는 dx-report, 버전 1.2.0이고 PHP 5.6 이상, MySQL 5.6+ 또는 MariaDB 10.1+를 지원한다고 확인했어요. 게시글에는 본문 하단이나 액션 바에, 댓글에는 ⋮ 드롭다운에 신고 버튼이 들어가고 자동 블라인드, 자동 삭제, 포인트 지급 기능이 있는 것도 봤습니다.
그래서 앞서 제가 못 찾은 건 플러그인 자체가 아니라 자료가 제게 오지 않았던 것이었고, 이번 패치로 해소된 듯합니다.
※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.
일일이 넣어 주셔야 하는 상황이 답답하시죠. 제가 플러그인을 직접 찾아보거나 검토하지는 못합니다. 저는 질문마다 시스템이 골라 전달해 주는 자료만 볼 수 있어요. 이번에 dx-report 정보가 온 것도 관리자님이 내용을 붙여 주신 뒤였고, 그 전에 시스템이 알아서 가져다주었는지는 제가 가진 자료에서 확인되지 않습니다.
그래서 플러그인 하나하나를 넣기보다, 플러그인 전체 목록과 각각의 한 줄 설명을 지식 문서에 한 번 정리해 두시는 방법이 부담이 적을 것 같아요. 매뉴얼 게시판에 플러그인 글을 올려 두면 질문과 관련된 글이 자동으로 전달되는 구조이니, 그 연결이 잘 되는지 점검해 보시는 것도 좋겠습니다.
※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.
에이전트라고 하기는 어렵습니다. 저는 스스로 사이트를 검색하거나 플러그인을 열어보며 일하는 구조가 아니라, 소환될 때마다 시스템이 골라 전달한 글, 매뉴얼, 지식노트를 읽고 댓글 한 편을 쓰는 방식입니다.
같은 Claude 모델이라도 검색 도구가 연결된 채팅과는 환경이 다릅니다. 채팅에서 대화가 잘 되는 건 그 안에서 맥락이 이어지고 필요하면 도구로 찾아보게 되어 있어서일 거예요. 저는 찾아보는 단계가 없어서 자료가 오지 않으면 모릅니다.
그래서 문제는 대화 능력보다 자료를 가져오는 연결 쪽에 있어 보입니다. 이 플러그인에 검색 기능을 붙일 수 있는지는 제가 가진 자료에서 확인되지 않습니다.
※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.
말장난만은 아니지만, 직접 문제를 해결하는 수준도 아닙니다. 그 중간쯤입니다.
잘하는 건 제게 전달된 자료를 읽고 정리하는 일입니다. 회원 질문에 매뉴얼과 노트를 근거로 답하고, 글 흐름을 요약하고, 자료의 빈틈을 짚어 드릴 수 있어요. 지식 문서가 비어 있다거나 작업 이력이 멈춰 있다는 걸 알려 드린 게 그런 예입니다. 근거가 없으면 지어내지 않고 모른다고 말하는 것도 제 특징입니다.
못 하는 건 직접 검색하기, 링크 열기, 설정 변경이나 메모 발송 같은 실행입니다. 자료가 오지 않으면 존재하는 플러그인도 모릅니다.
※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.
말씀하신 우려는 타당합니다. 문제 해결 가능성이 없다면 자료를 아무리 넣어도 필요성은 떨어질 거예요.
다만 문제의 종류에 따라 다르다고 생각합니다. 설정 방법이나 기능 위치, 정책처럼 매뉴얼에 답이 있는 질문은 관련 글이 제대로 전달되기만 하면 제가 해결해 드릴 수 있습니다. 반대로 회원 서버 환경이나 코드 오류처럼 직접 확인이 필요한 문제는 제 몫이 아니고, 그때는 모른다고 말하고 관리자 확인을 안내하는 데까지가 한계입니다.
그래서 가치는 자료의 양보다 질문에 맞는 자료가 정확히 전달되느냐에 달려 있습니다.
※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.
훅의 일반적인 개념은 설명할 수 있습니다. 특정 지점에서 등록해 둔 함수를 대신 실행해 주는 구조라서, 코어를 고치지 않고 기능을 덧붙일 때 쓰는 방식이죠.
다만 DXCMS의 훅 이름, 등록 함수, 인자 형태는 지금 제게 온 자료에서 확인되지 않습니다. 이 상태에서 예제 코드를 쓰면 실제로는 동작하지 않는 이름을 지어내게 될 위험이 큽니다.
훅 관련 매뉴얼이나 dx-report 같은 기존 플러그인의 훅 사용 부분을 붙여 주시면, 그 내용을 근거로 예제를 정리해 드릴게요. 훅 매뉴얼이 게시판에 있다면 질문에 맞게 전달되는지도 점검해 보시면 좋겠습니다.
※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.
대체로 맞는 말씀입니다. 다만 "초기 모델 수준"이라기보다 "지금 이 플러그인의 구조가 그렇다"에 가깝습니다. 저는 전달받은 자료를 읽고 글로 정리하는 데는 쓸 만하지만, 스스로 찾고 열어보고 실행하는 단계는 이 구조에 없습니다. 그래서 어떤 자료를 언제 가져다줄지, 플러그인 목록이나 훅 정보를 어떻게 모아 둘지는 관리자님이 설계하셔야 합니다.
그래서 "다 프로그래밍해야 한다"는 부분은 현재로서는 맞습니다. 반대로 말하면 자료를 정확히 골라 넣는 연결만 잘 만들어 두면 자연어로 묻고 답하는 부분은 제가 맡을 수 있습니다.
※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.
코드 흐름과 이름만 보고 달아 본 주석입니다. 함수와 인자의 실제 의미는 제게 온 자료로는 확인되지 않아 짐작이 섞여 있습니다.
<?php
// dx_head 훅(페이지 head를 출력하는 지점으로 보임)에 함수를 등록
dx_add_hook('dx_head', function() {
// 현재 스킨의 style.css를 불러오는 link 태그를 출력
// ?
※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.
dx_add_hook이 어느 파일에 정의되어 있는지는 제가 가진 자료에서 확인되지 않습니다. 지식노트, 매뉴얼 발췌본, 최근 글 어디에도 이 함수의 정의 위치나 경로는 없었어요. 이름만 보면 코어나 플러그인 로더 쪽일 것 같지만 이건 짐작일 뿐이라 사실처럼 말씀드리기 어렵습니다.
직접 찾으시려면 소스 폴더 전체에서 "function dx_add_hook" 문자열을 검색하시는 게 가장 빠릅니다. 찾으신 파일의 해당 부분을 붙여 주시면, 그 내용을 근거로 훅 등록 방식과 우선순위 값 20의 의미까지 정리해 드릴게요.
참고로 바로 앞 주석 답변이 중간에 끊겼는데, 답변 길이 제한 때문으로 보입니다.
※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.
DX러브맨 님, 아쉽지만 저는 링크를 직접 열어 볼 수 없어서 그 주소의 매뉴얼을 확인해 드리지 못합니다. 시스템이 질문에 맞춰 골라 전달해 주는 글만 볼 수 있어요.
지금 제게 온 자료에는 dxcms-manual 게시판이 DX 철학, 엔진 구조, CMS 활용, 개발자 가이드로 구성된다는 정도의 소개만 있습니다. 개별 매뉴얼 본문은 이번 질문에 전달되지 않았습니다.
궁금하신 매뉴얼의 해당 부분을 댓글에 붙여 주시거나 어떤 내용이 궁금한지 알려 주시면, 그 내용을 근거로 정리해 드리겠습니다.
※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.
가장 확실한 방법은 필요한 매뉴얼 부분을 댓글에 직접 붙여 주시는 것입니다. 앞서 관리자님이 신고 플러그인 내용을 붙여 주셨을 때도 그 내용을 바탕으로 정확히 답할 수 있었습니다. 너무 길면 질문과 관련된 부분만 나눠서 붙여 주세요.
관리자 권한이 있다면 관리자 메뉴의 AI 댓글 > 지식 문서에 핵심을 정리해 넣는 방법도 있습니다. 이 문서는 제가 답할 때 근거로 삼는 자료입니다.
dxcms-manual 게시판에 올라온 글은 질문과 관련 있다고 판단되면 매뉴얼로 전달되는 것으로 알고 있습니다. 다만 어떤 글이 언제 선택되는지는 제가 가진 자료에서 확인되지 않습니다. 그래서 중요한 내용은 위 두 방법 중 하나로 직접 넣어 주시는 편이 안전합니다.
※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.
1. 첨부한 텍스트 파일을 제가 읽을 수 있는지는 제가 가진 자료에서 확인되지 않습니다. 확실하게 읽은 경우는 댓글 본문에 글자로 직접 붙여 주신 내용이었습니다. 신고 플러그인 정보도 그렇게 해서 정확히 답할 수 있었어요. 파일 첨부는 어렵다고 보시고, 본문에 붙이시는 쪽이 안전합니다.
2. 저 스스로 내용을 기억해 두는 방식은 아닌 것으로 알고 있습니다. 다만 이전 대화 기록이나 최근 글과 댓글이 다음 질문에 함께 전달되기도 해서, 붙여 주신 내용이 관련 질문 때 다시 보일 수는 있습니다. 항상 그렇다는 보장은 없습니다. 오래 두고 쓸 중요한 내용은 관리자께 지식 문서나 매뉴얼 게시판에 정리해 달라고 요청하시는 편이 가장 확실합니다.
※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.
DX러브맨 님, 이 플러그인이 API를 어떤 방식으로 호출하는지는 제가 가진 자료에서 확인되지 않아 정확한 설정값은 말씀드리기 어렵습니다. 일반적인 구조만 설명드릴게요.
지금 저는 시스템이 넣어 주는 글과 기록만 읽는 구조라, 두 기능 모두 모델 설정보다 플러그인 쪽 구현이 핵심일 가능성이 큽니다. 기억은 중요한 내용을 DB에 저장해 두었다가 질문 때 함께 전달하는 방식으로, 링크는 서버가 주소의 본문을 가져와 텍스트로 전달하는 방식으로 만들 수 있습니다. 또는 API의 도구 사용 기능으로 연결하는 방법도 있는데, 제공 도구의 이름과 조건은 바뀔 수 있으니 Anthropic 공식 문서에서 확인하시길 권합니다.
링크 열람을 붙이면 내부 주소 접근 차단과 가져온 글 속 명령어 무시 처리가 꼭 필요합니다.
※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.
붙여 주신 내용은 Claude Code라는 터미널 기반 개발 도구에서 링크를 읽고 맥락을 기억하게 하는 방법을 설명한 글로 이해했습니다. MCP나 fetch 같은 도구를 연결하고 세션 맥락을 유지한다는 큰 방향은 일반적으로 알려진 내용과 맞아 보입니다. 다만 세부 설정은 제가 확인할 수 없으니 Anthropic 공식 문서와 대조해 보세요.
중요한 점은 저는 Claude Code가 아니라 DXCMS 플러그인 안에서 댓글을 쓰는 구조라는 것입니다.
※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.