


개요
게시판별로 열람 포인트를 설정하는 플러그인입니다. 설정된 게시판의 게시글을 열람할 때 지정한 포인트가 자동으로 차감되며, 포인트가 부족하거나 로그인하지 않은 경우 콘텐츠가 잠금 처리됩니다.
플러그인 활성화만으로 동작하며 코어 파일 및 테마 파일은 수정하지 않습니다.
주요 기능
- 게시판별 독립적인 포인트 뷰 설정
- 열람 시 포인트 자동 차감 (중복 차감 방지)
- 포인트 부족 / 비로그인 / 충분 3가지 잠금 화면 자동 표시
- 작성자 본인 무료 열람 설정
- 관리자 계정 무료 열람 설정
- 잠금 안내 메시지 게시판별 커스터마이즈
- 전체 열람 기록 관리자 조회 (게시판·회원·날짜 필터)
- 독립 관리자 화면 (
/admin/view-point)
설치 방법
1단계 — 파일 업로드
압축 파일(dx-view-point.zip)을 해제하면 아래 구조가 나옵니다.
plugins/
└── dx-view-point/
├── manifest.php
├── plugin.php
├── core/
│ ├── install.php
│ └── helper.php
└── admin/
└── index.php
dx-view-point 폴더 전체를 서버의 plugins/ 디렉터리 안에 업로드합니다.
/your-site/
└── plugins/
└── dx-view-point/ ← 여기에 업로드
2단계 — 플러그인 활성화
- DXCMS 관리자 페이지에 로그인합니다.
- 좌측 메뉴 플러그인을 클릭합니다.
- 목록에서 "DX 포인트 뷰" 를 찾아 활성화 버튼을 클릭합니다.
- 활성화 시 DB 테이블이 자동으로 생성됩니다.
3단계 — 게시판 설정
- 관리자 좌측 메뉴 포인트 > 포인트 뷰 설정 을 클릭합니다.
- 설정할 게시판의 설정 버튼을 클릭합니다.
- 원하는 값을 입력하고 저장 합니다.
관리자 화면 사용법
관리자 URL: /admin/view-point
게시판별 설정 메뉴
게시판 목록이 표시되며, 각 게시판의 설정 버튼을 클릭하면 인라인으로 설정 패널이 펼쳐집니다.
| 설정 항목 | 설명 | 기본값 |
|---|---|---|
| 포인트 뷰 활성화 | 해당 게시판에 포인트 열람 기능 ON/OFF | OFF |
| 차감 포인트 | 열람 시 차감할 포인트 수 | 10pt |
| 작성자 무료 | 본인이 작성한 게시글은 무료 열람 | ON |
| 관리자 무료 | 관리자 계정은 무료 열람 | ON |
| 잠금 안내 메시지 | 잠금 화면에 표시할 안내 문구 | 기본 메시지 |
열람 기록 메뉴
누가 어떤 게시글을 언제 열람했는지 기록을 조회합니다.
- 게시판 KEY 로 특정 게시판만 필터
- 회원 ID 로 특정 회원의 열람 기록 필터
- 날짜 로 특정 일자 필터
- 무료 열람(작성자·관리자)과 포인트 차감 열람을 구분하여 표시
열람 흐름
게시판에 포인트 뷰가 활성화된 경우 아래 순서로 처리됩니다.
게시글 뷰 요청
│
▼
관리자 무료 설정 ON + 관리자 계정? ──Yes──▶ 바로 열람
│ No
▼
작성자 무료 설정 ON + 본인 게시글? ──Yes──▶ 바로 열람
│ No
▼
이미 열람한 기록 있음? ──Yes──▶ 바로 열람
│ No
▼
로그인 상태? ──No──▶ [로그인 안내 잠금 화면]
│ Yes
▼
포인트 충분? ──No──▶ [포인트 부족 잠금 화면]
│ Yes
▼
[포인트 차감 버튼 잠금 화면]
│ 버튼 클릭
▼
포인트 차감 + 열람 기록 저장
│
▼
페이지 새로고침 → 콘텐츠 정상 출력
잠금 화면 3가지
비로그인 상태
🔒 열람 포인트 필요
이 게시글은 포인트를 사용해야 열람할 수 있습니다.
┌─────────────────────────────┐
│ 로그인 후 열람할 수 있습니다. │
└─────────────────────────────┘
[ 로그인하기 ]
포인트 부족
🔒 열람 포인트 필요
이 게시글은 포인트를 사용해야 열람할 수 있습니다.
┌─────────────────────────────┐
│ 포인트 부족 │
│ 보유: 3pt / 필요: 10pt │
└─────────────────────────────┘
[ 포인트 충전하기 ]
포인트 충분 (차감 대기)
🔒 열람 포인트 필요
이 게시글은 포인트를 사용해야 열람할 수 있습니다.
┌─────────────────────────────┐
│ 보유: 50pt → 차감 후: 40pt │
└─────────────────────────────┘
[ 🔓 10pt로 열람하기 ]
포인트는 즉시 차감되며 환불되지 않습니다.
안전장치
중복 차감 방지
- DB에
UNIQUE KEY (post_id, member_id)제약을 걸어 동일 게시글을 두 번 차감하지 않습니다. - 빠른 연속 클릭 시 버튼이 즉시 비활성화됩니다.
포인트 처리
- DXCMS 공식 포인트 엔진
DxPoint::add()를 우선 사용합니다. DxPoint를 사용할 수 없는 환경에서는 직접 DB를 처리하며, 차감 전 잔액을 재검증합니다.
CSRF 보안
- 모든 포인트 차감 요청에 CSRF 토큰 검증이 적용됩니다.
X-Requested-With: XMLHttpRequest헤더로 AJAX 요청을 구분합니다.
제거 방법
- DXCMS 관리자 > 플러그인에서 비활성화 합니다.
- 서버에서
plugins/dx-view-point/폴더를 삭제합니다. - 생성된 DB 테이블을 삭제하려면 아래 SQL을 실행합니다.
DROP TABLE IF EXISTS `{prefix}view_point_settings`;
DROP TABLE IF EXISTS `{prefix}view_point_log`;
{prefix}는 DXCMS 설정의 DB 테이블 접두사로 대체하세요. (기본값:dx_)
기술 정보
| 항목 | 내용 |
|---|---|
| 사용 훅 | dx_extend_top (priority 1), dx_board_view_context (priority 5), dx_admin_top (priority 1) |
| 콘텐츠 차단 방식 | dx_board_view_context 에서 post['content'] 를 잠금 HTML로 교체 |
| 포인트 차감 방식 | AJAX → 차감 성공 → location.reload() |
| post_id 처리 | (string) 캐스팅 (DXCMS post_id = string 타입) |
| DB 테이블 | view_point_settings, view_point_log |
| 코어 파일 수정 | 없음 |
| 관리자 URL | /admin/view-point |
자주 묻는 질문
Q. 이미 포인트를 냈는데 다시 차감되나요?
A. 아닙니다. 첫 열람 시에만 차감되며, 이후 동일 게시글 접근 시에는 포인트 없이 바로 열람됩니다.
Q. 작성자가 본인 글을 보면 차감되나요?
A. 설정에서 작성자 무료를 ON으로 설정하면 차감되지 않습니다. 기본값은 무료입니다.
Q. 비회원은 어떻게 되나요?
A. 로그인 안내 화면이 표시됩니다. 현재 비회원 포인트 차감은 지원하지 않습니다.
Q. 포인트를 0으로 설정하면 어떻게 되나요?
A. 활성화 상태여도 포인트 차감 없이 바로 열람됩니다. 열람 기록만 남습니다.
Q. 잠금 안내 메시지를 게시판마다 다르게 할 수 있나요?
A. 네. 각 게시판 설정에서 잠금 안내 메시지 항목을 개별 입력할 수 있습니다.
Q. 관리자도 포인트가 차감되나요?
A. 설정에서 관리자 무료를 ON으로 설정하면 차감되지 않습니다. 기본값은 무료입니다.
Q. 포인트 차감 후 페이지가 새로고침되는 이유는 무엇인가요?
A. DXCMS 에디터의 이미지 라이트박스·코드 하이라이트 등 부가 기능이 페이지 로드 시점에 초기화되기 때문에, 콘텐츠를 안정적으로 렌더링하기 위해 새로고침 방식을 사용합니다.
https://dxcmsboard.com
관리자 아이디 : admin / 비밀번호 : 12341234