회원가입 | 고객센터 |
DESIGNONEX
dxcms.kr
DX빌더
DX마켓
Service
PR리그
Q&AN
지식공유
공지사항
통계
로그인 회원가입
고객센터

DX 포인트 뷰 플러그인

D DX관리자
2026.07.16 04:50 2 0





개요

게시판별로 열람 포인트를 설정하는 플러그인입니다. 설정된 게시판의 게시글을 열람할 때 지정한 포인트가 자동으로 차감되며, 포인트가 부족하거나 로그인하지 않은 경우 콘텐츠가 잠금 처리됩니다.

플러그인 활성화만으로 동작하며 코어 파일 및 테마 파일은 수정하지 않습니다.



주요 기능

  • 게시판별 독립적인 포인트 뷰 설정
  • 열람 시 포인트 자동 차감 (중복 차감 방지)
  • 포인트 부족 / 비로그인 / 충분 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단계 — 플러그인 활성화

  1. DXCMS 관리자 페이지에 로그인합니다.
  2. 좌측 메뉴 플러그인을 클릭합니다.
  3. 목록에서 "DX 포인트 뷰" 를 찾아 활성화 버튼을 클릭합니다.
  4. 활성화 시 DB 테이블이 자동으로 생성됩니다.

3단계 — 게시판 설정

  1. 관리자 좌측 메뉴 포인트 > 포인트 뷰 설정 을 클릭합니다.
  2. 설정할 게시판의 설정 버튼을 클릭합니다.
  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 요청을 구분합니다.


제거 방법

  1. DXCMS 관리자 > 플러그인에서 비활성화 합니다.
  2. 서버에서 plugins/dx-view-point/ 폴더를 삭제합니다.
  3. 생성된 DB 테이블을 삭제하려면 아래 SQL을 실행합니다.
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

첨부파일 1개 회원전용 최대100회

댓글0

로그인 후 댓글을 작성할 수 있습니다.
Plugin 13
41
전체 회원
1,254
전체 게시글
2,257
전체 댓글
11
오늘 방문
50,750
전체 방문
1
현재 접속
인기글 7일 이내
최신글
최신댓글
내 플레이리스트
플레이리스트가 비어있습니다
스튜디오 게시판에서
플레이리스트에 담기 버튼을
눌러보세요
목록
목록