constants.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. <?php
  2. /**
  3. * User: kkh0414
  4. * Date: 2020-06-10
  5. * Time: 오후 6:07
  6. */
  7. // 해시 암호화 키
  8. const ENCRYPT_KEY = env('ENCRYPT_KEY');
  9. const ENCRYPT_IV = env('ENCRYPT_IV');
  10. // 관리자 페이지 경로
  11. const ADMIN_PATH = 'admin';
  12. // 새로운 글쓰기 시간
  13. const NEW_POST_SECOND = 10; // 10회
  14. // 현재 접속자 기준
  15. const CURRENT_VISITOR_MINUTE = 5; // 5분
  16. // 캐시 생성 시간(초)
  17. const CACHE_EXPIRE_TIME = 300; // 5분
  18. // 인증번호 만료시간(분)
  19. const VERIFY_EXPIRES_AT = 5; // 5분
  20. // 인증번호 발송 분당 제한 수
  21. const VERIFY_SEND_LIMIT = 3; // 3번
  22. // 한국수출입은행 API Key
  23. const KOREA_EXIM_AUTH_KEY = 'OiZlh6SjbXGBlfbagekBpi6kAE4UyonP';
  24. const SERP_API_KEY = '2a2fd42184c81786bce601b24d6d775a09498f3d6b47c866008a75fe719196ad';
  25. // 프로필, 아이콘 이미지 크기 기본값
  26. const THUMB_MAX_WIDTH = 96; // 가로
  27. const THUMB_MAX_HEIGHT = 96; // 세로
  28. const ICON_MAX_WIDTH = 16; // 가로
  29. const ICON_MAX_HEIGHT = 16; // 세로
  30. // 게시글 설정 값
  31. const DEFAULT_LIST_PER_PAGE = 10; // 게시글 기본 보여줄 수
  32. const DEFAULT_LIST_PAGE_COUNT = 10; // 게시글 기본 페이지 수
  33. // 상품 이미지 크기 기본값
  34. const SHOP_THUMBNAIL_MAX_WIDTH = 120; // 가로
  35. const SHOP_THUMBNAIL_MAX_HEIGHT = 120; // 세로
  36. // 신고기능 종류구분
  37. const BLAME_TARGET_TYPE_POST = '1'; // 게시판
  38. const BLAME_TARGET_TYPE_COMMENT = '2'; // 댓글
  39. const BLAME_TARGET_TYPE_NOTE = '3'; // 쪽지
  40. // 기본 이미지 경로
  41. const NO_IMAGE_NORMAL_SRC = "/images/default/no_image.png"; // 이미지 없을때 일반 이미지 기본값
  42. const NO_IMAGE_THUMB_SRC = "/images/default/thumb.gif"; // 이미지 없을때 프로필 이미지 기본값
  43. const NO_IMAGE_ICON_SRC = "/images/default/icon.png"; // 이미지 없을때 Icon 이미지 기본값
  44. // 파일첨부 경로
  45. const UPLOAD_PATH_APP = "app";
  46. const UPLOAD_PATH_PUBLIC = "public"; // 외부 공개 저장 경로
  47. const UPLOAD_PATH_STORAGE = "storage"; // 내부 저장 경로
  48. const UPLOAD_PATH_FAVICON = "favicon"; // 파비콘
  49. const UPLOAD_PATH_LOGO = "logo"; // 로고
  50. const UPLOAD_PATH_CACHE = "cache"; // 캐시파일 저장경로
  51. const UPLOAD_PATH_CAPTCHA = "captcha"; // 자동등록방지번호
  52. const UPLOAD_PATH_SHOP_PRODUCT = "shop/product"; // 상품
  53. const UPLOAD_PATH_SHOP_PRODUCT_OPTION = "shop/option"; // 상품 옵션
  54. const UPLOAD_PATH_NOTE = "note"; // 쪽지
  55. const UPLOAD_PATH_BANNER = "banner"; // 배너
  56. const UPLOAD_PATH_DOCUMENT = "document"; // 문서
  57. const UPLOAD_PATH_FAQ = "faq"; // FAQ
  58. const UPLOAD_PATH_POPUP = "popup"; // 팝업
  59. const UPLOAD_PATH_POST = "post"; // 게시글
  60. const UPLOAD_PATH_COMMENT = "comment"; // 댓글
  61. const UPLOAD_PATH_EMOTICON = "emoticon"; // 에디터 이모티콘
  62. const UPLOAD_PATH_EDITOR = "editor"; // 게시판 에디터 첨부 이미지
  63. const UPLOAD_PATH_USER_ICON = "user/icon"; // 회원 아이콘
  64. const UPLOAD_PATH_USER_THUMB = "user/thumb"; // 회원 프로필
  65. const USER_GROUP_IMAGE_PATH = "user/group"; // 회원 그룹 이미지 경로
  66. const USER_GRADE_IMAGE_PATH = "user/grade"; // 회원 등급 이미지 경로
  67. const USER_RANK_IMAGE_PATH = "user/level"; // 회원 레벨 이미지 경로
  68. const GAME_RATING_IMAGE_PATH = "/images/game/rating"; // 게임이용등급 이미지 저장경로
  69. const GAME_CONTENT_IMAGE_PATH = "/images/game/content"; // 게임내용표시 이미지 저장경로
  70. const UPLOAD_PATH_MOBILE = "mobile"; // 모바일 디렉토리
  71. /*
  72. * 서버 호스트
  73. */
  74. const LOCAL_HOST = '192.168.1.10:7070';
  75. const DEV_HOST = '172.17.0.1:7070';
  76. /*
  77. * 지원 브라우저 최소 버전 정의
  78. */
  79. const BS_CHROME_VERSION = 59; // 크롬
  80. const BS_EDGE_VERSION = 14; // 엣지
  81. const BS_IE_VERSION = 8; // 인터넷 익스플로어
  82. const BS_FIREFOX_VERSION = 54; // 파이어 폭스
  83. const BS_SAFARI_VERSION = 10; // 사파리
  84. const BS_OPERA_VERSION = 45; // 오페라
  85. /*
  86. * 게시판 그룹 정의
  87. */
  88. const BOARD_LAYOUT_NORMAL = 0; // 일반 게시판
  89. const BOARD_LAYOUT_MEDIA = 1; // 사진/동영상 게시판
  90. /*
  91. * 단말기 종류
  92. */
  93. const DEVICE_TYPE_0 = 0; // 모든 기기
  94. const DEVICE_TYPE_1 = 1; // PC
  95. const DEVICE_TYPE_2 = 2; // Phone
  96. const DEVICE_TYPE_3 = 3; // Mobile
  97. const DEVICE_TYPE_4 = 4; // Tablet
  98. const DEVICE_TYPE_5 = 5; // Robot
  99. const MAP_DEVICE_TYPE = [
  100. DEVICE_TYPE_0 => 'ALL', DEVICE_TYPE_1 => 'PC', DEVICE_TYPE_2 => 'Phone', DEVICE_TYPE_3 => 'Mobile', DEVICE_TYPE_4 => 'Tablet', DEVICE_TYPE_5 => 'Robot'
  101. ];
  102. // 단말기 아이콘 종류
  103. const MAP_DEVICE_ICON_TYPE = [
  104. DEVICE_TYPE_0 => 'All',
  105. DEVICE_TYPE_1 => '<i class="fas fa-desktop"></i>',
  106. DEVICE_TYPE_2 => '<i class="fa-solid fa-mobile-screen-button"></i>',
  107. DEVICE_TYPE_3 => '<i class="fa-solid fa-mobile-screen-button"></i>',
  108. DEVICE_TYPE_4 => '<i class="fas fa-solid fa-tablet-screen-button"></i>',
  109. DEVICE_TYPE_5 => '<i class="fa-solid fa-robot"></i>'
  110. ];
  111. /**
  112. * 입력값 검사 상수
  113. */
  114. const _ALPHAUPPER_ = 1; // 영대문자
  115. const _ALPHALOWER_ = 2; // 영소문자
  116. const _ALPHABETIC_ = 4; // 영대,소문자
  117. const _NUMERIC_ = 8; // 숫자
  118. const _HANGUL_ = 16; // 한글
  119. const _SPACE_ = 32; // 공백
  120. const _SPECIAL_ = 64; // 특수문자
  121. const _UNDER_ = 95; // `_` 언더바
  122. /**
  123. * 1: 게시글, 2: 댓글, 3: 쪽지, 4: 신고, 5: 상품문의, 6: 상품후기, 7: 환불문의
  124. */
  125. const EDITOR_IMG_TYPE_1 = 1;
  126. const EDITOR_IMG_TYPE_2 = 2;
  127. const EDITOR_IMG_TYPE_3 = 3;
  128. const EDITOR_IMG_TYPE_4 = 4;
  129. const EDITOR_IMG_TYPE_5 = 5;
  130. const EDITOR_IMG_TYPE_6 = 6;
  131. const EDITOR_IMG_TYPE_7 = 7;
  132. const MAP_EDITOR_IMG_TYPE = [
  133. EDITOR_IMG_TYPE_1 => '게시글', EDITOR_IMG_TYPE_2 => '댓글', EDITOR_IMG_TYPE_3 => '쪽지', EDITOR_IMG_TYPE_4 => '신고',
  134. EDITOR_IMG_TYPE_5 => '상품문의', EDITOR_IMG_TYPE_6 => '상품후기', EDITOR_IMG_TYPE_7 => '환불문의'
  135. ];
  136. const BOARD_LAYOUT_TYPE_0 = 0; // 일반
  137. const BOARD_LAYOUT_TYPE_1 = 1; // 사진/동영상
  138. /**
  139. * 1: 게시글, 2: 댓글, 3: 상품후기
  140. */
  141. const TARGET_TYPE_1 = 1;
  142. const TARGET_TYPE_2 = 2;
  143. const TARGET_TYPE_3 = 3;
  144. const MAP_TARGET_TYPE = [
  145. TARGET_TYPE_1 => '게시글', TARGET_TYPE_2 => '댓글', TARGET_TYPE_3 => '상품후기'
  146. ];
  147. /**
  148. * 신고 사유 (1: 욕설, 2: 음란, 3: 불법, 4: 신분 사칭, 5: 현금거래유도, 6: 스팸/광고, 7: 도배, 8: 개인정보노출, 9: 기타)
  149. */
  150. const BLAME_TYPE_1 = 1;
  151. const BLAME_TYPE_2 = 2;
  152. const BLAME_TYPE_3 = 3;
  153. const BLAME_TYPE_4 = 4;
  154. const BLAME_TYPE_5 = 5;
  155. const BLAME_TYPE_6 = 6;
  156. const BLAME_TYPE_7 = 7;
  157. const BLAME_TYPE_8 = 8;
  158. const BLAME_TYPE_9 = 9;
  159. const MAP_BLAME_TYPE = [
  160. BLAME_TYPE_1 => '욕설', BLAME_TYPE_2 => '음란', BLAME_TYPE_3 => '불법', BLAME_TYPE_4 => '신분 사칭', BLAME_TYPE_5 => '현금거래유도',
  161. BLAME_TYPE_6 => '스팸/광고', BLAME_TYPE_7 => '도배', BLAME_TYPE_8 => '개인정보노출', BLAME_TYPE_9 => '기타'
  162. ];
  163. /**
  164. * 게시판 접근 안내 문구
  165. *
  166. * 권한 구분값
  167. * 1. 로그인 사용자
  168. * 2. 특정 그룹 사용자
  169. * 3. 특정 등급 이상인자
  170. * 4. 특정 그룹 OR 특정 등급
  171. * 5. 특정 그룹 AND 특정 등급
  172. */
  173. const BOARD_PERMIT_TYPE_1 = 'access_post_list'; // 목록
  174. const BOARD_PERMIT_TYPE_2 = 'access_post_view'; // 글 열람
  175. const BOARD_PERMIT_TYPE_3 = 'access_post_write'; // 글 작성
  176. const BOARD_PERMIT_TYPE_4 = 'access_post_reply'; // 답변 작성
  177. const BOARD_PERMIT_TYPE_5 = 'access_comment_write'; // 댓글 작성
  178. const BOARD_PERMIT_TYPE_6 = 'access_image_upload'; // 파일 업로드
  179. const BOARD_PERMIT_TYPE_7 = 'access_file_download'; // 파일 다운로드
  180. const BOARD_PERMIT_TYPE_8 = 'blame'; // 게시물 신고
  181. const BOARD_PERMIT_TYPE_9 = 'poll_write'; // 설문 등록
  182. const BOARD_PERMIT_TYPE_10 = 'poll_append'; // 설문 참여
  183. const BOARD_PERMIT_TYPE_11 = 'verification'; // 본인 인증
  184. const BOARD_PERMIT_TYPE_12 = 'access_comment_list'; // 댓글 작성
  185. const MAP_BOARD_PERMIT_ALERT_TYPE = [
  186. BOARD_PERMIT_TYPE_1 => '게시판에 접근할 수 있는 권한이 없습니다.',
  187. BOARD_PERMIT_TYPE_2 => '글을 읽을 권한이 없습니다.',
  188. BOARD_PERMIT_TYPE_3 => '글을 작성할 수 있는 권한이 없습니다.',
  189. BOARD_PERMIT_TYPE_4 => '답변을 작성할 수 있는 권한이 없습니다.',
  190. BOARD_PERMIT_TYPE_5 => '댓글을 작성할 수 있는 권한이 없습니다.',
  191. BOARD_PERMIT_TYPE_6 => '파일 업로드 권한이 없습니다.',
  192. BOARD_PERMIT_TYPE_7 => '파일 다운로드 권한이 없습니다.',
  193. BOARD_PERMIT_TYPE_8 => '게시물 신고 권한이 없습니다.',
  194. BOARD_PERMIT_TYPE_9 => '설문 등록 권한이 없습니다.',
  195. BOARD_PERMIT_TYPE_10 => '설문 참여 권한이 없습니다.',
  196. BOARD_PERMIT_TYPE_11 => '본인 인증이 필요한 게시판입니다.',
  197. BOARD_PERMIT_TYPE_12 => '댓글 확인 권한이 없습니다.'
  198. ];
  199. /* 이메일 전송 양식 지정 */
  200. const SEND_MAIL_FORM_TYPE_1 = 'send_email_register'; // 회원가입
  201. const SEND_MAIL_FORM_TYPE_2 = 'send_email_changepw_form'; // 비밀번호 변경
  202. const SEND_MAIL_FORM_TYPE_3 = 'send_email_withdraw_form'; // 회원탈퇴
  203. const SEND_MAIL_FORM_TYPE_4 = 'send_email_auth_form'; // 이메일 인증
  204. const SEND_MAIL_FORM_TYPE_5 = 'send_email_verify_code_form'; // 인증번호
  205. const SEND_MAIL_FORM_TYPE_6 = 'send_email_find_form'; // 회원정보 찾기
  206. const SEND_MAIL_FORM_TYPE_7 = 'send_email_post_form'; // 게시글 작성
  207. const SEND_MAIL_FORM_TYPE_8 = 'send_email_post_comment_form'; // 댓글 작성
  208. const SEND_MAIL_FORM_TYPE_9 = 'send_email_post_blame_form'; // 게시글 신고
  209. const SEND_MAIL_FORM_TYPE_10 = 'send_email_post_comment_blame_form'; // 댓글 신고
  210. const SEND_MAIL_FORM_TYPE_11 = 'send_email_post_personal_form'; // 1:1 문의 접수
  211. const SEND_MAIL_FORM_TYPE_12 = 'send_email_post_personal_reply_form'; // 1:1 문의 답변
  212. const SEND_MAIL_FORM_TYPE_13 = 'send_email_dormant_form'; // 휴면 예정
  213. const SEND_MAIL_FORM_TYPE_14 = 'send_email_dormancy_form'; // 휴면 전환
  214. const SEND_MAIL_FORM_TYPE_15 = 'send_email_recover_form'; // 휴면 해제
  215. const MAP_SEND_MAIL_TYPE = [
  216. SEND_MAIL_FORM_TYPE_1, SEND_MAIL_FORM_TYPE_2, SEND_MAIL_FORM_TYPE_3, SEND_MAIL_FORM_TYPE_4,
  217. SEND_MAIL_FORM_TYPE_5, SEND_MAIL_FORM_TYPE_6, SEND_MAIL_FORM_TYPE_7, SEND_MAIL_FORM_TYPE_8,
  218. SEND_MAIL_FORM_TYPE_9, SEND_MAIL_FORM_TYPE_10, SEND_MAIL_FORM_TYPE_11, SEND_MAIL_FORM_TYPE_12,
  219. SEND_MAIL_FORM_TYPE_13, SEND_MAIL_FORM_TYPE_14, SEND_MAIL_FORM_TYPE_15
  220. ];
  221. /*
  222. * 공감, 비공감
  223. */
  224. const LIKE = 1;
  225. const DISLIKE = 2;
  226. const MAP_LIKE_TYPE = [
  227. LIKE => 'like', DISLIKE => 'dislike'
  228. ];
  229. /**
  230. * 경험치 지급 구분값
  231. */
  232. const EXP_TYPE_1 = 1; // 회원가입
  233. const EXP_TYPE_2 = 2; // 로그인
  234. const EXP_TYPE_3 = 3; // 회원가입 시 추천인
  235. const EXP_TYPE_4 = 4; // 추천인 존재 시 가입자에게
  236. const EXP_TYPE_5 = 5; // 출석
  237. const EXP_TYPE_6 = 6; // 설문조사 참여
  238. const EXP_TYPE_7 = 7; // 게시글 작성
  239. const EXP_TYPE_8 = 8; // 댓글 작성
  240. const EXP_TYPE_9 = 9; // 작성자 본인이 게시글 삭제
  241. const EXP_TYPE_10 = 10; // 관리자가 게시글 삭제
  242. const EXP_TYPE_11 = 11; // 작성자 본인이 댓글 삭제
  243. const EXP_TYPE_12 = 12; // 관리자가 댓글 삭제
  244. const EXP_TYPE_13 = 13; // 파일 업로드
  245. const EXP_TYPE_14 = 14; // 파일 다운로드
  246. const EXP_TYPE_15 = 15; // 파일 다운로드 시 업로더에게
  247. const EXP_TYPE_16 = 16; // 게시글 조회
  248. const EXP_TYPE_17 = 17; // 게시글 추천함
  249. const EXP_TYPE_18 = 18; // 게시글 비추천함
  250. const EXP_TYPE_19 = 19; // 게시글 추천 받음
  251. const EXP_TYPE_20 = 20; // 게시글 비추천 받음
  252. const EXP_TYPE_21 = 21; // 댓글 추천함
  253. const EXP_TYPE_22 = 22; // 댓글 비추천함
  254. const EXP_TYPE_23 = 23; // 댓글 추천 받음
  255. const EXP_TYPE_24 = 24; // 댓글 비추천 받음
  256. const EXP_TYPE_9999 = 9999; // 관리자
  257. const MAP_EXP_TYPE = [
  258. EXP_TYPE_1 => 'exp_register', EXP_TYPE_2 => 'exp_login', EXP_TYPE_3 => 'exp_recommended', EXP_TYPE_4 => 'exp_recommender',
  259. EXP_TYPE_5 => 'exp_attendance', EXP_TYPE_6 => 'exp_poll', EXP_TYPE_7 => 'exp_write', EXP_TYPE_8 => 'exp_comment',
  260. EXP_TYPE_9 => 'exp_post_delete', EXP_TYPE_10 => 'exp_admin_post_delete', EXP_TYPE_11 => 'exp_comment_delete', EXP_TYPE_12 => 'exp_admin_comment_delete',
  261. EXP_TYPE_13 => 'exp_file_upload', EXP_TYPE_14 => 'exp_file_download', EXP_TYPE_15 => 'exp_file_download_uploader', EXP_TYPE_16 => 'exp_read',
  262. EXP_TYPE_17 => 'exp_post_like', EXP_TYPE_18 => 'exp_post_dislike', EXP_TYPE_19 => 'exp_post_liked', EXP_TYPE_20 => 'exp_post_disliked',
  263. EXP_TYPE_21 => 'exp_comment_like', EXP_TYPE_22 => 'exp_comment_dislike', EXP_TYPE_23 => 'exp_comment_liked', EXP_TYPE_24 => 'exp_comment_disliked',
  264. EXP_TYPE_9999 => 'exp_admin'
  265. ];
  266. const MAP_EXP_CONTENT = [
  267. EXP_TYPE_1 => '회원가입', EXP_TYPE_2 => '로그인', EXP_TYPE_3 => '회원가입 시 추천인', EXP_TYPE_4 => '추천인 존재 시 가입자에게',
  268. EXP_TYPE_5 => '출석', EXP_TYPE_6 => '설문조사 참여', EXP_TYPE_7 => '게시글 작성', EXP_TYPE_8 => '댓글 작성',
  269. EXP_TYPE_9 => '작성자 본인이 게시글 삭제', EXP_TYPE_10 => '관리자가 게시글 삭제', EXP_TYPE_11 => '작성자 본인이 댓글 삭제', EXP_TYPE_12 => '관리자가 댓글 삭제',
  270. EXP_TYPE_13 => '파일 업로드', EXP_TYPE_14 => '파일 다운로드', EXP_TYPE_15 => '파일 다운로드 시 업로더에게', EXP_TYPE_16 => '게시글 조회',
  271. EXP_TYPE_17 => '게시글 추천함', EXP_TYPE_18 => '게시글 비추천함', EXP_TYPE_19 => '게시글 추천 받음', EXP_TYPE_20 => '게시글 비추천 받음',
  272. EXP_TYPE_21 => '댓글 추천함', EXP_TYPE_22 => '댓글 비추천함', EXP_TYPE_23 => '댓글 추천 받음', EXP_TYPE_24 => '댓글 비추천 받음',
  273. EXP_TYPE_9999 => '관리자'
  274. ];