plugins/ — 플러그인 시스템
CMS 기능을 코어 수정 없이 확장하는 플러그인 폴더입니다. 각 플러그인은 독립 폴더로 분리되며, plugin.php 에서 dx_register_plugin() 으로 등록됩니다.
plugins/
├── dx-payment-helper.php ← 결제 플러그인 공통 헬퍼 함수
├── example-plugin/ ← 플러그인 개발 예제
│ ├── plugin.php ← 플러그인 등록 + 훅 연결 코드
│ └── manifest.php ← 플러그인 메타 정보 (이름•버전•설명)
├── dx-socket/ ← WebSocket 실시간 기능 플러그인
│ ├── plugin.php
│ ├── socket-core.js.php ← 소켓 클라이언트 JS 동적 생성
│ └── admin/ ← 소켓 관리자 페이지 (상태•설정)
│ ├── settings.php
│ └── widget.php
├── ckeditor4-editor/ ← CKEditor 4 에디터 플러그인
├── tosspay-payment/ ← 토스페이 결제
│ ├── plugin.php
│ ├── manifest.php
│ └── assets/ ← 결제 관련 JS/CSS 파일
├── kakaopay-payment/ ← 카카오페이 결제
├── naverpay-payment/ ← 네이버페이 결제
├── danal-payment/ ← 다날 결제 (신용카드•휴대폰)
├── kcp-payment/ ← NHN KCP 결제
├── kg-inicis-payment/ ← KG 이니시스 결제
├── nicepay-payment/ ← 나이스페이먼츠 결제
├── payletter-payment/ ← 페이레터 결제
├── paypal-payment/ ← PayPal 해외 결제
├── stripe-payment/ ← Stripe 해외 결제
└── custom-payment-template/ ← 커스텀 결제 개발 템플릿
플러그인 파일 구조 상세
| 파일 |
필수 |
역할 |
| plugin.php |
✅ 필수 |
플러그인 등록 (dx_register_plugin) + 훅 연결 코드. 활성화 시 로드됨 |
| manifest.php |
권장 |
플러그인 메타 정보 단독 파일. 비활성 상태에서도 관리자에서 정보 표시 |
| admin/ |
선택 |
관리자 패널에 플러그인 전용 설정 화면 추가 |
| assets/ |
선택 |
플러그인 전용 CSS•JS•이미지. URL로 직접 접근 가능 |
| controllers/ |
선택 |
DxContainer 가 자동 탐색하는 컨트롤러 클래스 파일 |
플러그인 등록 API
// plugins/my-plugin/plugin.php
dx_register_plugin(array(
'id' => 'my-plugin',
'type' => 'editor', // editor | payment | socket | captcha | other
'name' => 'My Plugin',
'version' => '1.0.0',
'author' => 'Dev Name',
'settings' => array( // 관리자에서 설정 가능한 옵션 정의
'api_key' => array(
'label' => 'API 키',
'type' => 'text', // text | select | checkbox | textarea
'default' => '',
),
),
));
// 훅으로 기능 연결 (플러그인 로드 시 즉시 실행)
dx_add_hook('dx_editor_render', function($args) {
$apiKey = dx_plugin_option('my-plugin', 'api_key');
// 에디터 HTML 출력
}, 10);