Files
Gnuboard7/modules/_bundled/sirsoft-board/config/settings/defaults.json
T
HeuJung 3ebbda5d86 feat(board,ecommerce,pay,verification,templates,core): 문의 답변 사슬·답글 삭제 정책·검증 계약 + 실패 사유 표면화 전수
공개 (답변 중복 등록)/(문의 삭제 시 답변 잔존) 수정과 동형 결함 전수 해소.

- 문의 답변 단일성: 1차(피벗 is_answered) + 2차(게시판 리스너 duplicate 마커) 이중 방어,
 경합 경로에서도 사유(reply_already_exists 422)가 보존되도록 훅 반환 계약 확장
- 질문·답변·피벗 생명주기 대칭: 삭제/복원/영구삭제 훅 연동 + 고아 데이터 백필 업그레이드 스텝
- 게시판별 답글 삭제 정책(cascade/block) 신설, 정렬 화이트리스트·per_page 게이트
 (전량 조회 소비처 200/999 를 수용하는 상한 999 — 조였다가 관리자 화면 2곳 422 회귀 즉시 정정)
- 결제/본인인증 플러그인 검증 계약: FormRequest 15종 승격 + 컨트롤러 catch 정합.
 거래 조회 tid 상한은 저장 컬럼(varchar 100) 기준 — 해외 CBT TID(40자) 수용
- onError 토스트 고정 문구 전수 해소(67건/50파일/15확장) — 서버 실패 사유를 그대로 표면화,
 change-password 오변수(response→error) 교정
- 코어 플러그인 설정 검증 안내의 항목 표시명이 스키마 라벨(ko/en) 폴백에 덮여 요청 로케일
 (ja) 라벨을 잃던 회귀 정정 — 번역 등록이 있으면 그것을 우선 (7.0.7 미출시 기능 자체 결함)
- 사전 결함 정리(Icon 등가표 27·darkmode 2·validated 통일), API 문서·CHANGELOG·ja 팩 동기
- develop(60652fdc0) 리베이스: getTable 정비와 병합 — 양측 의도 보존 (충돌 18파일)
2026-08-17 17:04:44 +09:00

131 lines
4.6 KiB
JSON

{
"_meta": {
"version": "1.0.0",
"description": "게시판 모듈 환경설정",
"categories": ["basic_defaults", "report_policy", "spam_security", "display", "seo", "notifications", "attachment_settings"]
},
"defaults": {
"basic_defaults": {
"type": "basic",
"per_page": 20,
"per_page_mobile": 15,
"order_by": "created_at",
"order_direction": "DESC",
"secret_mode": "disabled",
"use_comment": true,
"use_reply": true,
"max_reply_depth": 5,
"reply_delete_policy": "cascade",
"max_comment_depth": 10,
"comment_order": "ASC",
"show_view_count": true,
"use_report": false,
"min_title_length": 2,
"max_title_length": 200,
"min_content_length": 2,
"max_content_length": 10000,
"min_comment_length": 2,
"max_comment_length": 1000,
"use_file_upload": false,
"max_file_size": 10,
"max_file_count": 5,
"allowed_extensions": ["jpg", "jpeg", "png", "gif", "webp", "pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx", "hwp", "txt", "zip"],
"notify_admin_on_post": true,
"notify_author": true,
"new_display_hours": 24,
"blocked_keywords": [
"시발", "씨발", "ㅅㅂ", "ㅆㅂ", "좆", "ㅈㄴ", "존나", "씹",
"지랄", "ㅈㄹ", "개새끼", "새끼", "ㅅㄲ", "개자식",
"병신", "ㅂㅅ", "미친놈", "미친년", "느금마", "니애미", "느금",
"엠창", "엠뒤", "빡대가리", "개같은", "개년", "개놈", "개돼지", "개씹", "개쓰레기",
"닥쳐", "꺼져", "죽어", "자살해", "뒤져", "저능아", "정신병자",
"썅", "쌍놈", "쌍년", "쉬발", "쒸발", "시팔", "씨팔",
"한남", "한녀", "김치녀", "된장녀", "맘충", "틀딱", "느개비",
"장애인놈", "병신새끼", "흑형", "짱깨", "쪽바리", "왜놈", "튀기", "똥남아",
"야동", "포르노", "섹스", "야사", "음란", "성인사이트", "조건만남",
"원나잇", "섹파", "오피", "키스방", "매춘", "성매매", "몸파는"
],
"default_board_permissions": {
"admin.posts.read": ["admin"],
"admin.posts.write": ["admin"],
"admin.posts.read-secret": ["admin"],
"admin.comments.read": ["admin"],
"admin.comments.write": ["admin"],
"admin.attachments.upload": ["admin"],
"admin.attachments.download": ["admin"],
"admin.manage": ["admin"],
"posts.read": ["admin", "user", "guest"],
"posts.write": ["admin", "user"],
"posts.read-secret": ["admin"],
"comments.read": ["admin", "user", "guest"],
"comments.write": ["admin", "user"],
"attachments.upload": ["admin", "user"],
"attachments.download": ["admin", "user", "guest"],
"manager": ["admin"]
}
},
"report_policy": {
"auto_hide_threshold": 5,
"auto_hide_target": "both",
"daily_report_limit": 10,
"rejection_limit_count": 5,
"rejection_limit_days": 30,
"notify_admin_on_report": true,
"notify_admin_on_report_scope": "per_case",
"notify_admin_on_report_channels": ["mail", "database"],
"notify_author_on_report_action": true,
"notify_author_on_report_action_channels": ["mail", "database"]
},
"spam_security": {
"post_cooldown_seconds": 0,
"comment_cooldown_seconds": 0,
"report_cooldown_seconds": 60,
"view_count_cache_ttl": 86400
},
"display": {
"date_display_format": "standard"
},
"seo": {
"meta_boards_title": "{site_name}",
"meta_boards_description": "",
"meta_board_title": "{board_name}",
"meta_board_description": "{board_description}",
"meta_post_title": "{board_name} - {post_title}",
"meta_post_description": "",
"seo_boards": true,
"seo_board": true,
"seo_post_detail": true
},
"notifications": {
"channels": [
{ "id": "mail", "is_active": true, "sort_order": 0 },
{ "id": "database", "is_active": true, "sort_order": 1 }
]
},
"attachment_settings": {
"purge_enabled": false,
"purge_retention_days": 30
}
},
"frontend_schema": {
"_comment": "프론트엔드에서 미참조 — 전체 카테고리 노출 제외",
"basic_defaults": {
"expose": false
},
"report_policy": {
"expose": false
},
"spam_security": {
"expose": false
},
"display": {
"expose": false
},
"seo": {
"expose": false
},
"attachment_settings": {
"expose": false
}
}
}