GNUBOARD5 개요
Library Documentation
pushmanager.lib.php
그누보드5(GnuBoard5)와 Push Manager API 서버를 연동하기 위한 PHP 라이브러리입니다.
웹사이트에서 쉽게 푸시 알림을 발송하고 구독자를 관리할 수 있는 완전한 솔루션을 제공합니다.
라이브러리 파일: pushmanager.lib.php
주요 기능
- Push Manager API 서버와의 완전한 통합
- 브라우저 푸시 구독 관리 (등록/해제)
- 사용자별 맞춤 알림 설정
- 다양한 알림 타입 지원 (댓글, 쪽지, 문의, 시스템)
- 기기별 알림 제어
- 회원/비회원 구독자 관리
- 통계 및 로그 관리
- AJAX 기반 실시간 처리
라이브러리 구조
핵심 설정 함수
-
FUNC get_pushmanager_config()Push Manager 설정 정보를 조회합니다.
-
FUNC get_site_origin()현재 사이트의 Origin URL을 가져옵니다.
-
FUNC get_api_headers()API 요청용 공통 헤더를 생성합니다.
구독 관리 함수
-
FUNC save_push_subscription()브라우저에서 받은 구독 정보를 데이터베이스에 저장합니다.
-
FUNC unsubscribe_push()구독을 해제하고 비활성화합니다.
-
FUNC get_active_subscriptions()다양한 필터 조건으로 활성 구독자를 조회합니다.
-
FUNC get_subscription_stats()구독자 통계 정보를 조회합니다.
푸시 발송 함수
-
FUNC send_push_notification()기본 푸시 알림 발송 함수입니다.
-
FUNC send_notification()사용자 설정을 확인하여 알림을 발송합니다.
-
FUNC admin_send_push()관리자용 푸시 발송 (기본 옵션 적용).
-
FUNC send_push_to_members()특정 회원들에게 푸시를 발송합니다.
사용자 설정 관리
-
FUNC get_user_notification_settings()사용자의 알림 설정을 조회합니다.
-
FUNC save_user_notification_settings()사용자의 알림 설정을 저장합니다.
-
FUNC get_user_devices()사용자의 등록된 기기 목록을 조회합니다.
-
FUNC toggle_device_notification()기기별 알림을 활성화/비활성화합니다.
AJAX 처리 함수
-
FUNC handle_push_subscription()AJAX 푸시 구독 등록을 처리합니다.
-
FUNC handle_push_unsubscription()AJAX 푸시 구독 해제를 처리합니다.
-
FUNC get_vapid_public_key()AJAX로 VAPID 공개키를 반환합니다.
알림 타입
라이브러리는 다음과 같은 알림 타입을 지원하며, 각 타입별로 사용자가 개별 설정할 수 있습니다.
알림 타입 | 설명 | 사용자 설정 | 기본값 |
---|---|---|---|
comment | 댓글 알림 (게시판, 블로그 댓글 등) | comment_notification | 활성화 |
message | 쪽지 알림 (개인 메시지) | message_notification | 활성화 |
inquiry | 1:1 문의 답변 알림 | inquiry_notification | 활성화 |
system | 시스템 알림 (긴급 공지 등) | 설정 무시 | 강제 발송 |
데이터베이스 테이블
라이브러리 사용을 위해 다음 테이블들이 필요합니다.
필수 테이블
-
TABLE pushmanager_configPush Manager 기본 설정 정보 (API 키, 서버 URL 등)
-
TABLE pushmanager_subscriptions브라우저 푸시 구독 정보 (엔드포인트, 암호화 키 등)
-
TABLE pushmanager_user_settings사용자별 알림 설정 (회원/비회원 지원)
-
TABLE pushmanager_logs푸시 발송 로그 및 활동 기록
설치 및 설정
요구사항: 그누보드5, PHP 7.0+, MySQL 5.7+
의존성: Push Manager API 서버
브라우저: Service Worker를 지원하는 모던 브라우저
의존성: Push Manager API 서버
브라우저: Service Worker를 지원하는 모던 브라우저
기본 사용법
// 1. 라이브러리 포함
include_once(G5_LIB_PATH.'/pushmanager.lib.php');
// 2. 기본 푸시 발송
$result = admin_send_push('제목', '메시지');
// 3. 특정 회원에게 발송
$result = send_push_to_members(['user1', 'user2'], '제목', '메시지');
// 4. 알림 타입별 발송 (사용자 설정 확인)
$result = send_notification('comment', ['user1'], '새 댓글', '댓글이 달렸습니다');
include_once(G5_LIB_PATH.'/pushmanager.lib.php');
// 2. 기본 푸시 발송
$result = admin_send_push('제목', '메시지');
// 3. 특정 회원에게 발송
$result = send_push_to_members(['user1', 'user2'], '제목', '메시지');
// 4. 알림 타입별 발송 (사용자 설정 확인)
$result = send_notification('comment', ['user1'], '새 댓글', '댓글이 달렸습니다');