공개 (답변 중복 등록)/(문의 삭제 시 답변 잔존) 수정과 동형 결함 전수 해소.
- 문의 답변 단일성: 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파일)
131 lines
4.6 KiB
JSON
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
|
|
}
|
|
}
|
|
} |