Compare commits

...
1969 Commits
Author SHA1 Message Date
thisgun ddd7090801 Merge branch 'master' of github.com:gnuboard/g5 2021-01-11 14:52:19 +09:00
thisgun b01e04a91e 버전 5.4.4.6 수정 2021-01-11 14:47:49 +09:00
thisgun 85697e71b0 PHP8에서 삭제된 함수 대체 및 짧은 주소 잘못된 코드 수정 2021-01-11 14:43:27 +09:00
thisgun aceb0a2751 Merge branch 'master' of github.com:gnuboard/g5 2021-01-09 23:28:56 +09:00
thisgun 233966fb4c 관리자 -> 팝업 레이어 삭제 안되는 오류 수정 2021-01-09 23:23:25 +09:00
thisgun 5c13b8c200 Merge branch 'master' of github.com:gnuboard/g5 2021-01-09 17:23:26 +09:00
thisgun 977a6de93b 게시판에서 이전글 다음글이 나오지 않는 오류 수정 2021-01-09 16:42:30 +09:00
thisgun e927f15282 버전 5.4.4.5 수정 2021-01-09 16:12:52 +09:00
thisgun 051aff0e8e 관리자에서 FAQ 삭제 안되는 오류 수정 2021-01-09 16:12:24 +09:00
thisgun bc0be66aad PHP8 버전에서 경고문 뜨는 코드 추가 수정 2021-01-09 16:10:42 +09:00
thisgun ab7ba78fd2 Merge branch 'master' of github.com:gnuboard/g5 2021-01-08 15:54:28 +09:00
thisgun 8e679ee4da 버전 5.4.4.4 수정 2021-01-08 15:46:33 +09:00
thisgun be2f27a7fa PHP8 버전에서 경고코드가 표시되는 코드 수정 2021-01-08 15:45:55 +09:00
thisgun 18bc64ab0a Merge branch 'master' of github.com:gnuboard/g5 2021-01-06 14:24:51 +09:00
thisgun 5e5cd396c4 잘못 수정한 회원가입완료 코드 재수정 2021-01-06 13:43:00 +09:00
thisgun 24268f70b8 Merge branch 'master' of github.com:gnuboard/g5 2021-01-06 10:43:21 +09:00
thisgun 15ad2b6b35 버전 5.4.4.3 수정 2021-01-06 10:28:42 +09:00
thisgun 2d1ef8b7bb 기존 스킨 또는 테마 title 에서 불필요한 | 문자열이 들어가 PHP8 버전 조건문 추가 2021-01-06 10:27:25 +09:00
thisgun e5ab7456f2 PHP80 버전에서 경고문이 나오는 코드 및 글 이동시 오류 현상 수정 2021-01-06 09:59:33 +09:00
thisgun 3eb07bdfa0 Merge branch 'master' of github.com:gnuboard/g5 2021-01-05 20:34:02 +09:00
thisgun 242eed5b35 head.sub.php 파일의 상태바 타이틀 코드 수정 2021-01-05 20:29:00 +09:00
thisgun caf16b5d6a 버전 5.4.4.2 2021-01-05 20:14:57 +09:00
thisgun c5c8924b42 1:1 문의 답변 오류 및 스킨 코드 수정 2021-01-05 20:14:30 +09:00
lupin_latte e6764f4a7c Merge branch 'master' of github.com:gnuboard/g5 2021-01-05 16:04:40 +09:00
thisgun 6368a5b638 PHP8 버전에서 경고문이 나오는 코드 추가 수정 2021-01-05 15:37:00 +09:00
thisgun 12c836104a 버전 5.4.4.1 수정 2021-01-05 14:13:05 +09:00
thisgun c77a001355 관리자 < 내용관리 삭제가 안되는 오류수정 및 PHP8 경고메시지 뜨는 코드 추가 수정 2021-01-05 14:12:04 +09:00
thisgun 5d37a15fb6 Merge branch 'master' of github.com:gnuboard/g5 2021-01-04 20:16:57 +09:00
thisgun bb0a1aac75 PHP 엑셀 라이브러리 중 텍스트파일 이름 수정 2021-01-04 20:15:05 +09:00
thisgun 681499f8dd Merge branch 'master' of github.com:gnuboard/g5 2021-01-04 20:01:06 +09:00
thisgun 51355dffc5 Merge branch 'master' of github.com:gnuboard/g5 2021-01-04 20:00:42 +09:00
thisgun 389267bb65 버전 5.4.4 수정 2021-01-04 20:00:42 +09:00
thisgun 239b5d7a2c 매우중요 필수패치!!! 다음 우편번호 서비스 가이드에 따른 타URL 파라미터 붙이는 코드 삭제 2021-01-04 20:00:23 +09:00
thisgun b2ec5d7ef2 버전 5.4.4 수정 2021-01-04 18:11:21 +09:00
thisgun 673478d579 매우중요 필수패치git status! 다음 우편번호 서비스 가이드에 따른 타URL 파라미터 붙이는 코드 삭제 2021-01-04 18:09:28 +09:00
thisgun 77b53160b5 php8.0 버전에서 경고메시지 나오는 코드 추가 수정 2021-01-04 17:58:25 +09:00
thisgun 5f05e5cfe9 불필요한 옛날 코드 삭제 2021-01-04 17:52:25 +09:00
thisgun 5ae35f3c34 오타로 인해 XSS 취약점 취약점 수정#69 2021-01-04 17:50:36 +09:00
thisgun a7fa3a20fc [KVE-2020-1276,1546] CSRF 취약점 제보로 1:1 문의 토큰 체크 코드 추가 2021-01-04 17:47:14 +09:00
thisgun 83b4c80964 구글 소셜 로그인 텍스트를 다시 한글로 수정 2021-01-04 15:49:29 +09:00
thisgun 582d1a01f4 php8.0 버전 호환 코드 적용 및 PHP 끝 태그 삭제 일괄적용 2021-01-04 15:33:29 +09:00
thisgun 10d377de7d Merge branch 'master' of github.com:gnuboard/g5 2021-01-02 16:28:15 +09:00
whitedot 6491f13b52 Merge branch 'master' of github.com:gnuboard/g5 2020-12-03 18:19:42 +09:00
whitedot ec32a2b066 게시판 : 스타일시트 기본스타일 (특히 버튼) 복구 ff2e30cd59 2020-12-03 18:19:30 +09:00
thisgun c7092ee1b3 파라미터가 배열일 경우 get_params_merge_url 함수 코드 개선 2020-11-26 18:34:50 +09:00
thisgun 74ea8e651a 게시판 관리자에서 게시판 복사시 누락된 필드(목록에서 파일 사용) 추가 2020-11-26 16:49:26 +09:00
thisgun de9ba8db5b Merge branch 'master' of github.com:gnuboard/g5 2020-11-24 14:30:06 +09:00
thisgun a18cd9d971 갤러리 목록 bo_gallery_height 스타일 추가 수정 2020-11-24 11:35:57 +09:00
thisgun 4ae4bea8e5 버전 5.4.3.1 수정 2020-11-24 11:15:20 +09:00
thisgun 54e5c1b838 get_magic_quotes_gpc함수 DEPRECATED 에 대한 코드 수정 2020-11-24 11:03:17 +09:00
thisgun 68a3d59a57 소셜로그인 페이코, 구글 오류 수정 2020-11-24 10:46:21 +09:00
thisgun afc8adf737 [KVE-2020-0785, 0788] 타 아이디가 에디터 업로드 된 이미지 삭제 가능 취약점 수정 2020-11-20 16:51:02 +09:00
thisgun 02b085b4be [KVE-2020-0797] 영카트 SQL 인젝션 취약점 수정 2020-11-20 13:52:55 +09:00
thisgun 765889f67f 회원아이콘 url에 파일수정시간 파라미터 추가 2020-11-19 11:42:55 +09:00
thisgun d980c4683d Merge branch 'master' of github.com:gnuboard/g5 2020-11-19 10:49:05 +09:00
minsupkr 75b3e34696 게시판 : 갤러리 목록 bo_gallery_height 값으로, 공지게시물 line-height 지정하도록 처리 2020-11-16 10:30:50 +09:00
minsupkr 10d3847c8d 게시판 : 갤러리 목록 bo_gallery_height 값이 0일 때, height/max-height inline 지정 예외처리 (10653) 2020-11-16 10:27:02 +09:00
thisgun 424d29a77c Merge branch 'master' of github.com:gnuboard/g5 2020-11-16 10:22:18 +09:00
minsupkr b6c6644acb Merge branch 'master' of github.com:gnuboard/g5 2020-11-16 10:21:21 +09:00
minsupkr 1fa690cb2c 게시판 : 갤러리 목록 이미지 높이값으로 height, max-height 지정하도록 변경 (10653) 2020-11-16 10:21:10 +09:00
minsupkr ff2e30cd59 게시판 : 스타일시트 기본스타일 커스터마이징 예약 부분 제거 2020-11-16 10:13:43 +09:00
thisgun 90ff96c581 delete_editor_thumbnail 에디터 썸네일이 삭제 안되는 오류 수정 2020-11-09 19:05:23 +09:00
thisgun 1cdb1b9397 관리자 환경설정의 접근차단IP 중 현재 접속 IP를 차단못하게 하기 2020-11-09 15:06:08 +09:00
thisgun 0832f72914 아이코드 전송 데이터와 전송 결과를 초기화 하는 변수 코드 수정 2020-11-06 16:10:47 +09:00
thisgun 4f2e891e62 Merge branch 'master' of github.com:gnuboard/g5 2020-11-06 12:25:01 +09:00
thisgun dd8e7d8e30 get_file 함수에 hook 추가 2020-11-06 12:24:46 +09:00
thisgun 5102e87649 소셜로그인 페이스북 아이디로 로그인 오류 수정 및 트위터 앱 링크 수정 2020-11-05 14:34:56 +09:00
thisgun ed1d882091 sql_free_result 시 mysql resource 확인 2020-11-02 14:56:31 +09:00
thisgun 26a8d29b38 회원 로그인 체크 페이지에 event hook 추가 2020-11-02 12:01:10 +09:00
thisgun c0a92fdf0f 불필요한 PHP버전 확인 삭제 2020-11-02 10:58:06 +09:00
thisgun 714c55485d 관리자로 로그인시 data 폴더에 쓰기권한 또는 웹하드 용량이 있는지 체크과정 추가 2020-10-29 16:30:16 +09:00
seeoya c5ca99cd20 CSS : #93 중복/미사용 코드 제거 2020-10-29 10:19:52 +09:00
thisgun e9439c87d1 Merge branch 'master' of github.com:gnuboard/g5 2020-10-28 15:18:28 +09:00
thisgun 9093603494 common.js 자바스크립트 함수 get_cookie, font_resize 코드 수정 2020-10-28 15:01:40 +09:00
thisgun dff5c711e1 버전 5.4.3 으로 수정 2020-10-28 12:03:32 +09:00
thisgun e3e6d31c10 Merge branch 'master' of github.com:gnuboard/g5 2020-10-27 16:34:51 +09:00
thisgun 2e3f53ed8a 일부 코드 탭 간격 조정 2020-10-27 16:34:39 +09:00
minsupkr 5f27233b00 관리자 : css 중복 등 수정, 버그신고 10603 추가 수정 2020-10-27 15:38:17 +09:00
minsupkr d8746de966 Merge branch 'master' of github.com:gnuboard/g5 2020-10-27 15:30:49 +09:00
minsupkr 8737c67448 관리자 : css 중복 등 수정 버그신고 10603 2020-10-27 15:30:40 +09:00
thisgun f1f639070d 링크 보기 제대로 출력 안되는 오류 재수정 2020-10-26 13:52:06 +09:00
thisgun d015f63301 카카오 REST API키 신청 URL 수정 및 소셜로그인 페이지css 주소에 querystring 추가 2020-10-22 14:59:30 +09:00
thisgun 0e2cb366e6 5.4 버전 이벤트 hook 추가 2020-10-20 19:06:08 +09:00
thisgun bf13cf82ee 최신글 캐시 생성 주기 코드 수정 2020-10-19 18:43:50 +09:00
thisgun 94d04817c7 5.4 버전 hook 이벤트 추가 및 hook 추적에 Object도 가능하게 수정 2020-10-19 18:21:17 +09:00
thisgun 1971be3186 Merge branch 'master' of github.com:gnuboard/g5 2020-10-07 10:52:40 +09:00
thisgun df9891e68b 버전 5.4.2.9 수정 2020-10-07 10:40:35 +09:00
thisgun d19cfdc722 php7.4버전이후 array Deprecate curly brace syntax 영향으로 코드 수정 2020-10-06 18:26:45 +09:00
thisgun 158a7f50d8 관리자 -> 게시판수정에서 컬럼명 추가 sql 코드 수정 2020-10-06 17:12:11 +09:00
thisgun 2ff4306cc6 다운로드 header attachment 코드 수정 2020-09-28 16:59:59 +09:00
thisgun 2f9bb48342 최신글과 각 게시물 리스트 이미지 출력 태그에 hook 적용 2020-09-24 15:20:31 +09:00
thisgun 69c839ef0f 관리자 회원목록에 툴팁 텍스트 추가 2020-09-09 11:02:35 +09:00
thisgun 5353f75284 Merge branch 'master' of github.com:gnuboard/g5 2020-08-13 11:11:16 +09:00
thisgun 5ba1e37f04 버전 5.4.2.8 수정 2020-08-13 09:58:57 +09:00
thisgun 4648b49711 게시판 별로 에디터를 선택시 나오는 수정2 2020-08-13 09:58:05 +09:00
thisgun cf3a4e9e95 reserve_mb_nick 함수 코드 수정 2020-08-11 18:20:12 +09:00
thisgun fc4b095fa1 썸네일과 htmlpurifier 필터링에 대한 hook 코드 추가 2020-08-11 17:59:14 +09:00
thisgun 12eabe4930 탈퇴된 회원에게 쪽지를 보낼수 있는 오류 수정 2020-07-29 17:31:27 +09:00
thisgun 3e04f1403f 게시판 별로 에디터를 선택할수 있게 수정 2020-07-29 17:11:28 +09:00
thisgun dd7bd68e72 RSS 잘못된 링크 코드 수정 2020-07-14 17:51:13 +09:00
thisgun ccf8a27713 SMS 리턴 코드 추가 2020-07-14 17:09:36 +09:00
thisgun 94a8cc3eb6 관리자 SMS 휴대폰번호 관리 페이지 오류 수정 2020-06-26 12:11:12 +09:00
thisgun 63822016d5 get_member 함수 유효성 검사 코드 수정 2020-06-17 19:56:18 +09:00
thisgun 84dd9f0766 Merge branch 'master' of github.com:gnuboard/g5 2020-06-11 12:24:58 +09:00
thisgun 5aa60540fa 버전 5.4.2.7 수정 2020-06-11 11:18:22 +09:00
thisgun 8aaafeddf6 5.4 버전 회원탈퇴와 관리권한설정에 이벤트 HOOK 추가 2020-06-10 11:34:19 +09:00
thisgun 8c49fbafb8 5.4.2.6 패치에서 잘못 수정으로 캡챠 mp3가 로드되지 문제 수정 2020-06-10 10:48:56 +09:00
thisgun c2dbb74920 hook class filters 메소드에서 중첩이 안되는 오류 수정 2020-06-05 17:51:23 +09:00
thisgun a16926a4de Merge branch 'master' of github.com:gnuboard/g5 2020-06-05 11:21:29 +09:00
thisgun 73a72af338 버전 5.4.2.6 수정 2020-06-05 11:20:45 +09:00
thisgun 7cd161c576 소셜로그인 IOS 12 버전대에서 안되는 현상 수정 2020-06-05 10:45:07 +09:00
thisgun 426e4e2819 PHP Warning count 경고문 코드 수정 및 기타 코드 수정 2020-06-04 17:21:40 +09:00
thisgun b90b15ac77 인스톨시 토큰을 생성하는 코드 수정 2020-06-04 15:29:43 +09:00
thisgun 6da105bd64 [KVE-2020-0288,0319,0320]그누보드 다중 취약점 수정 2020-06-04 15:13:20 +09:00
thisgun f1152df518 NHN_KCP 윈도우 본인인증 모듈 추가 2020-06-01 12:01:23 +09:00
thisgun c875121931 Merge branch 'master' of github.com:gnuboard/g5 2020-05-08 16:02:40 +09:00
thisgun c7f1466751 버전 5.4.2.5 수정 2020-05-08 15:12:53 +09:00
minsupkr 045e1363a4 Merge branch 'master' of github.com:gnuboard/g5 2020-05-06 11:59:02 +09:00
minsupkr 812dbc78e0 회원가입 완료에서 html syntax 오류 수정 10396 2020-05-06 11:58:54 +09:00
thisgun 468bc6eb1c [KVE-2020-0273]Cross Site Scripting(XSS) 취약점 수정 2020-04-27 15:45:21 +09:00
thisgun 4c41828e73 [KVE-2020-0200,0202]그누보드,영카트 다중취약점 수정 2020-04-23 17:33:23 +09:00
thisgun 1dc7e5640d 회원 사이드뷰 no 프로필 이미지 사이즈 설정 코드 수정 2020-04-20 16:50:27 +09:00
thisgun e221783c20 잘못된 표기 또는 문법 수정 2020-04-17 13:48:55 +09:00
thisgun 548b992588 5.4 버전 게시판 스킨 코드 수정 2020-04-14 17:43:02 +09:00
thisgun 6cc2bfdd50 Merge branch 'master' of github.com:gnuboard/g5 2020-04-13 16:18:49 +09:00
thisgun 101d5995fa 버전 5.4.2.4 수정 2020-04-13 16:05:06 +09:00
thisgun ecb6226599 아이코드 JSON 버전 적용 및 토큰키 입력 추가 2020-04-13 16:04:35 +09:00
thisgun 50edf32875 get_group 함수 실행 전 배열 체크 코드 추가 2020-04-13 16:03:21 +09:00
thisgun 68feb602ff 5.4버전 게시물 복사이동시 hook 코드 추가 2020-04-07 17:24:35 +09:00
thisgun 7b4a11b99d WEBVIEW 내 파일 다운로드 문제 download Attribute 추가 2020-04-07 11:46:48 +09:00
thisgun 3883924258 5.4 버전 게시판 리스트 스킨 인기게시물 아이콘 위치 수정 2020-04-06 17:56:26 +09:00
thisgun d6d6773fbb 그누보드 XSS 취약점 수정 2020-04-03 12:27:16 +09:00
thisgun 1cc2b141f9 get_group 함수 실행시 string 인지 체크 2020-04-03 12:24:24 +09:00
thisgun 28d1001d1b Merge branch 'master' of github.com:gnuboard/g5 2020-04-03 10:01:33 +09:00
thisgun ab1d514eb4 5.4 게시판스킨 검색창이 안보이는 오류 수정 2020-04-02 18:46:36 +09:00
thisgun a2bad15bfe php7.4 버전에서 경고메시지 나오는 문법 수정 2020-04-02 17:02:29 +09:00
minsupkr b069485c53 최근게시물 : 불분명한 selector 수정, galley > gallery 버그 10335 2020-03-31 11:59:30 +09:00
minsupkr 67126bcbe1 게시판 : 갤러리스킨 gall_img height 지정 버그 10331 2020-03-31 11:54:39 +09:00
minsupkr 81444b42b1 관리자 > 환경설정 > 메뉴설정 : 메뉴 추가 시 추가 삭제 버튼 클래스 수정2 2020-03-25 20:56:46 +09:00
minsupkr dad97445f8 관리자 > 환경설정 > 메뉴설정 : 메뉴 추가 시 추가 삭제 버튼 클래스 수정 2020-03-25 20:54:16 +09:00
thisgun 05a88d12de 5.4 버전 게시판 리스트 스킨 css 코드 수정 2020-03-18 12:30:20 +09:00
thisgun ff4ac1d626 Merge branch 'master' of github.com:gnuboard/g5 2020-03-13 11:27:57 +09:00
thisgun 7a7af424ce 버전 5.4.2.3 수정 2020-03-13 11:12:03 +09:00
thisgun ae75f5bf7a 5.4 버전 그룹 최신글 코드 수정 2020-03-11 16:50:01 +09:00
thisgun 86f8c1a1c1 게시판 삭제시 좋아요 테이블의 기록도 삭제 코드 추가 2020-03-10 19:40:32 +09:00
thisgun a5d959deb8 html_process 클래스 코드 수정 2020-03-09 16:52:08 +09:00
thisgun f5b7b3000c 5.4 버전 최신글 cache 설정 하지 않을시 오류 수정 2020-03-09 12:20:52 +09:00
thisgun fff7e074ff Merge branch 'master' of github.com:gnuboard/g5 2020-03-03 18:48:19 +09:00
thisgun c1adf30b05 버전 5.4.2.2 수정 2020-03-03 18:47:15 +09:00
thisgun a8292a51bd php deprecated 사용되는 코드 재수정 2020-03-03 18:46:17 +09:00
thisgun b28796dd28 [KVE-2020-0115,0120]그누보드RCE및XSS취약점수정 2020-03-03 18:41:45 +09:00
thisgun 8dd2fe58e6 Merge branch 'master' of github.com:gnuboard/g5 2020-03-03 12:01:16 +09:00
thisgun 1395a8f338 버전 5.4.2.1 수정 2020-03-03 11:12:51 +09:00
thisgun 799aefada2 php deprecated 사용되는 코드 수정 2020-03-03 11:08:24 +09:00
thisgun 87bb2f1d8a [KVE-2020-0097,0113,0114,0056]그누보드 다중 취약점 수정 2020-03-02 22:08:54 +09:00
thisgun 6fe20b0a13 [KVE-2020-0013]그누보드_Reflect XSS_수정 2020-03-02 20:23:38 +09:00
thisgun 31705f32c9 [KVE-2020-0104,105,106]그누보드XSS취약점 수정 2020-03-02 20:02:45 +09:00
thisgun 8ba373a951 회원정보 수정시 체크과정 변경 2020-03-02 19:53:17 +09:00
thisgun 8067a20d32 썸네일 center_mode 시 썸네일 height가 원본이미지가 작을때도 동작되게 수정 2020-02-24 17:13:26 +09:00
thisgun e72b71ce12 5.4버전 SNS 동시등록 과 비밀글 태그 위치가 겹치는 스킨 코드 오류 수정 2020-02-19 17:14:00 +09:00
thisgun 596ad4baa6 5.4버전 관리자 에서 게시판 복사시 G5_DB_ENGINE 설정 오류 수정 2020-02-19 10:38:24 +09:00
thisgun 1600f63dee Merge branch 'master' of github.com:gnuboard/g5 2020-02-18 15:24:01 +09:00
thisgun fa9aa8da19 버전 5.4.2 수정 2020-02-18 15:06:37 +09:00
thisgun 85e075a5c6 [KVE-2020-0062]그누보드,영카트 SQL 인젝션 취약점 수정 2020-02-18 12:28:32 +09:00
thisgun 1e7d17fd68 5.4 버전 소셜로그인 스킨 5.3버전에서도 잘 나올수 있도록 수정 2020-02-14 14:35:33 +09:00
thisgun 6ccb8905a0 크롬 80버전 대응 코드 추가 2020-02-14 11:44:04 +09:00
thisgun ebac40312f 5.4 버전 쪽지보기 페이지에서 쪽지 삭제가 안되는 오류 수정 2020-02-13 19:03:38 +09:00
thisgun 3c0cde3fe2 그누보드 XSS 취약점 수정 2020-02-13 16:24:27 +09:00
thisgun 3cf0546711 [KVE-2020-0100,0101]그누보드 관리자페이지 XSS 취약점 수정 2020-02-13 15:23:11 +09:00
thisgun 120d8cf564 [KVE-2019-1571,1573,1578,1580]그누보드 XSS 취약점 수정 2020-02-13 13:48:37 +09:00
thisgun 992d3d93f4 [KVE-2019-1581,1585,1586,1590,2020-0012]그누보드XSS취약점 수정 2020-02-12 11:33:53 +09:00
thisgun 30e0b93ecf get_member_profile_img 함수 내 코드 오류 수정 2020-02-11 15:08:59 +09:00
thisgun 2581bdba9b 5.4버전 exist_seo_url 함수 내 정규식 코드 수정 2020-02-10 19:03:56 +09:00
thisgun d982361541 get_class_encrypt 함수내 잘못된 코드 수정 2020-02-10 17:32:50 +09:00
thisgun e82ebd7ada 카카오 로그인 v2 사용자 정보 요청api로 수정 2020-02-10 16:29:30 +09:00
thisgun 2d1af9a3b2 sms 설치테이블 G5_DB_ENGINE 설정에 따르게 수정 2020-02-10 14:05:30 +09:00
thisgun da29b6d0bb Merge branch 'master' of github.com:gnuboard/g5 2020-02-07 18:19:36 +09:00
thisgun 4493674762 버전 5.4.1.9 수정 2020-02-07 18:14:31 +09:00
thisgun 2e0b99f65c 크롬 80 버전 대응 kcb okname 본인인증 코드 수정 2020-02-07 17:39:22 +09:00
thisgun cc5eb6e520 Merge branch 'master' of github.com:gnuboard/g5 2020-02-04 11:24:30 +09:00
thisgun b855bbfb96 버전 5.4.1.8 수정 2020-02-04 11:23:24 +09:00
thisgun 93753162be 크롬 80버전 samesite 추가 대응 코드 2020-02-04 11:21:10 +09:00
thisgun 726863de44 Merge branch 'master' of github.com:gnuboard/g5 2020-01-31 16:03:22 +09:00
thisgun 69ec7348b8 버전 5.4.1.7 수정 2020-01-31 15:56:27 +09:00
thisgun d8521d4543 크롬 브라우저 80버전 samesite 이슈 대응 코드 2020-01-31 15:55:35 +09:00
thisgun e6eab2d040 [KVE-2019-1517] 그누보드 5_Cross Site Scripting(XSS) 취약점 수정 2020-01-23 10:58:18 +09:00
thisgun 2ad151c0dd 짧은 URL 변환 체크코드 및 스킨 내 코드 오타 수정 2020-01-23 10:57:07 +09:00
thisgun 4c17f79783 5.4 버전 쪽지보내기 스킨 오타 수정 2020-01-14 16:47:06 +09:00
thisgun e329192586 관리자 토큰생성시 button submit 추가 2020-01-14 16:40:58 +09:00
thisgun f96c3558e8 5.4 버전에서 잘못되거나 누락된 코드 수정 2020-01-13 16:31:53 +09:00
thisgun f2a1af5f46 Merge branch 'master' of github.com:gnuboard/g5 2020-01-07 16:34:04 +09:00
thisgun aec86e4360 버전 5.4.1.4 수정 2020-01-07 14:47:58 +09:00
thisgun 6a934c7a36 5.4 버전 모바일 게시판 스킨 내 오타 수정 2020-01-07 14:37:19 +09:00
thisgun ccfe419bbd 54버전 잘못된 hook 이벤트 수정 2020-01-07 14:34:50 +09:00
thisgun 4b0969d244 Merge branch 'master' of github.com:gnuboard/g5 2019-12-27 16:05:56 +09:00
thisgun a5e5531471 php 문법 each deprecated 에 대한 코드 수정 2019-12-27 16:05:04 +09:00
thisgun 5a3c2b628d 잘못된 오타 수정 2019-12-27 09:54:41 +09:00
thisgun b5152b62e8 Merge branch 'master' of github.com:gnuboard/g5 2019-12-23 10:12:10 +09:00
thisgun de59f07a66 버전 5.4.1.3 수정 2019-12-23 10:02:59 +09:00
thisgun 32e024f52e css js 버전 코드 수정 2019-12-23 10:01:29 +09:00
thisgun ffc43056b4 관리자 디비업그레이드시 체크 과정 추가 2019-12-23 09:59:05 +09:00
thisgun 6016db4a95 [KVE-2019-1508]XSS 취약점 수정 2019-12-20 11:18:16 +09:00
thisgun 30f6f09372 theme 설정 hook 이벤트 추가 2019-12-20 11:17:17 +09:00
thisgun d10a1667c7 html_process 변수에 method가 존재하는지 체크과정 추가 2019-12-18 19:55:34 +09:00
thisgun d560892a80 kcaptcha 페이지 오타 수정 2019-12-17 17:15:47 +09:00
thisgun 4e11c1fc1f iframe 허용 조건에 www.google.com 추가 2019-12-16 16:30:25 +09:00
thisgun 54c69dcf35 회원 사이드 뷰 사용시 최신글에서 사용되는 코드 수정 2019-12-10 17:04:28 +09:00
thisgun 7ccf17b479 Merge branch 'master' of github.com:gnuboard/g5 2019-12-09 14:59:18 +09:00
thisgun 0e2dbb6145 버전 5.4.1.2 수정 2019-12-09 14:53:43 +09:00
thisgun 83b85b5d66 회원 쪽지 페이징 코드 css 및 스킨코드 수정 2019-12-09 14:52:25 +09:00
thisgun f68ba794ec 그룹 링크에 잘못된 짧은 주소가 적용된 오류 수정 2019-12-09 14:42:05 +09:00
thisgun 76c1bde119 hook 이벤트 추가 및 php 7.2 버전에 일어나는 최신글 count 오류 수정 2019-12-04 19:55:17 +09:00
thisgun 312fc5daf3 Merge branch 'master' of github.com:gnuboard/g5 2019-12-02 17:01:34 +09:00
thisgun 080370323a 5.4.1.1 버전 수정 2019-12-02 16:34:45 +09:00
thisgun c419e2751f short_url_clean 함수에서 빠진 run_replace 코드 적용 2019-12-02 16:32:57 +09:00
thisgun 6977e9d4b5 내용관리 모바일 이미지 리사이즈css 적용 2019-12-02 16:11:36 +09:00
thisgun e3ed8a1af3 Merge branch 'master' of github.com:gnuboard/g5 2019-12-02 11:11:03 +09:00
thisgun 22aad37bfb 5.4 버전 내용 적용 2019-12-02 10:22:12 +09:00
thisgun f230dc3522 Merge branch 'master' of github.com:gnuboard/g5 2019-10-31 12:18:19 +09:00
thisgun b60daff8f0 특정환경에서 chroot 경로를 치환하지 못하는 오류 수정 2019-10-31 12:17:41 +09:00
thisgun 2fe40edfc5 설치 파일 코드중 문자열을 상수로 수정 2019-09-30 17:35:36 +09:00
thisgun 58878593dc Merge branch 'master' of github.com:gnuboard/g5 2019-09-16 16:04:23 +09:00
thisgun d72a3b5a73 버전 5.3.3.3 수정 2019-09-16 11:39:25 +09:00
thisgun 47bee3d294 탈퇴한 회원이 비밀번호를 찾기 할수 있는 오류 수정 2019-09-16 11:15:18 +09:00
thisgun 8182cac90d XSS 취약점 수정 2019-09-16 10:36:10 +09:00
thisgun b4604fca67 [KVE-2019-1318] SQL Injection 취약점 수정 2019-09-09 12:27:14 +09:00
thisgun 7ad199ccd5 소셜 로그인 가입시 닉네임 중복 체크 코드 수정 2019-09-09 11:30:44 +09:00
thisgun f0e176033f 카카오 링크 v2 버전 코드 수정 2019-09-06 17:48:35 +09:00
thisgun d33753014c [KVE-2019-1162]임의 명령어 실행 취약점 수정 2019-09-06 12:28:27 +09:00
thisgun 3c55c4d60d 그누보드 Stored XSS 취약점(KVE-2019-1198) 수정 2019-08-29 14:44:47 +09:00
thisgun c2922aaa13 그누보드 XSS 취약점(KVE-2019-1235,1236,1238) 2019-08-29 12:23:29 +09:00
thisgun 120d42c431 카카오 소셜 로그인 설정 표시문 수정 2019-08-26 18:03:57 +09:00
thisgun 863f6011ac Merge branch 'master' of github.com:gnuboard/g5 2019-08-12 10:37:25 +09:00
thisgun 067bcd2046 버전 5.3.3.2 수정 2019-08-12 10:22:09 +09:00
thisgun a1633aec96 잘못된 php 코드 수정 2019-07-29 11:42:07 +09:00
thisgun f675c38441 관리자 회원메일발송 페이지 xss 취약점 수정 2019-07-19 19:58:12 +09:00
thisgun cee88a0f6f Merge branch 'master' of github.com:gnuboard/g5 2019-07-15 18:40:40 +09:00
thisgun cbde9c91d7 버전 5.3.3.1 으로 변경 2019-07-15 18:19:15 +09:00
thisgun c17fef6778 파이어폭스 68 버전에서 스마트에디터 오류 나는 부분을 예외처리 2019-07-15 18:18:24 +09:00
thisgun 73478d5961 KVE-2019-1142 LFI & Command Injection 취약점 수정 2019-07-09 14:11:48 +09:00
thisgun 846285549a 새글 삭제시 공지글이 풀리는 오류 수정 2019-07-08 16:05:14 +09:00
thisgun 27b1a5d8f8 Merge branch 'master' of github.com:gnuboard/g5 2019-06-18 17:57:28 +09:00
thisgun 2199ffd44d 5.3.3 버전으로 수정 2019-06-18 17:55:43 +09:00
thisgun 86fb983eac 글 복사 이동시 첨부파일 권한 변경 코드 수정 2019-06-18 17:20:41 +09:00
thisgun 7d494115b3 Merge branch 'master' of github.com:gnuboard/g5 2019-06-14 09:44:03 +09:00
thisgun 17238808b5 잘못된 코드 수정 2019-06-13 16:33:02 +09:00
thisgun a6d851e174 KVE-2019-1045 그누보드 XSS, RCE 취약점 수정 2019-06-13 14:55:25 +09:00
thisgun a1dbe22063 KVE-0994,0995,1014 취약점 수정 2019-06-12 17:14:23 +09:00
thisgun e6a3270936 XSS 취약점 수정 2019-06-12 15:28:41 +09:00
thisgun 0954beced9 Merge branch 'master' of github.com:gnuboard/g5 2019-05-30 11:01:48 +09:00
thisgun 9e14e803e5 5.3.2.9.1 버전 수정 2019-05-30 11:01:04 +09:00
thisgun 250c9fc660 잘못된 패치 내용 수정 2019-05-30 11:00:18 +09:00
thisgun 2534921446 Merge branch 'master' of github.com:gnuboard/g5 2019-05-29 14:41:19 +09:00
thisgun 2ec7390cd6 5.3.2.9 버전 수정 2019-05-29 12:07:34 +09:00
thisgun 630e39de16 KVE-2019-0789, 0821, 0860 취약점 수정 2019-05-29 12:01:25 +09:00
thisgun b1ac49a738 취약점 수정 Some security vulnerabilities #43 2019-05-29 09:58:04 +09:00
thisgun 166727879a 제보받은 작은 문제들 수정 2019-05-28 18:22:08 +09:00
thisgun 9773c13d5d KVE-2019-0724 취약점 수정 2019-05-28 11:57:58 +09:00
thisgun 764cb34957 KVE-2019-0828 그누보드 XSS 취약점 수정 2019-05-27 09:39:13 +09:00
thisgun 18d4a60e03 [KVE-2019-0688,0689,0691,0694,0708,0709,0750,0762,0791,0802,0846] 그누보드,영카트 다중 취약점 수정 2019-05-24 10:44:48 +09:00
thisgun e234b990ec PHP문법에 맞지 않는 코드 수정 2019-05-16 15:36:24 +09:00
thisgun 1655e76d04 갤러리스킨에서 빠진 코드 수정 2019-05-03 10:24:18 +09:00
thisgun 77ea93d50f 다운로드 권한이 없을시 나오는 메시지 출력 오류 수정 2019-05-03 09:59:53 +09:00
thisgun 83d7e1a586 회원정보 관리자에서 회원 추가시 아이콘 이미지가 저장 안되는 오류 수정 2019-04-12 10:53:43 +09:00
thisgun 6e89aff24f 잘못된 코드 수정 2019-04-01 11:15:51 +09:00
thisgun 32924003b9 관리자 환경설정 여분필드 style 수정 2019-03-19 12:29:24 +09:00
thisgun 831219e2c2 Merge branch 'master' of github.com:gnuboard/g5 2019-03-19 11:45:30 +09:00
thisgun e4a7c1b21d 5.3.2.8 버전으로 수정 2019-03-19 11:22:07 +09:00
thisgun 896444ce1a 게시판 복사, 이동 코드 수정 2019-03-13 09:40:47 +09:00
thisgun a844347c4c KVE-2019-0556, 0566 취약점 수정 2019-03-12 12:06:45 +09:00
thisgun a870fe3777 최신글 css 오타 수정 2019-03-08 17:37:10 +09:00
thisgun 05f1e718e1 게시물에서 페이스북 영상 전체화면이 가능하도록 수정 2019-03-07 16:20:06 +09:00
thisgun e97b91cb88 kcb 본인확인 오타 수정 2019-03-07 11:35:46 +09:00
thisgun 4227356108 [KVE-2019-0335, 0344 다중 취약점] 수정 2019-03-06 18:00:32 +09:00
thisgun ae729f1525 Merge branch 'master' of github.com:gnuboard/g5 2019-03-04 13:59:42 +09:00
thisgun 2c61975b49 5.3.2.7 버전 수정 2019-03-04 12:29:45 +09:00
thisgun eb8bcb0a24 회원 삭제시 프로필이미지도 삭제 2019-03-04 12:26:39 +09:00
thisgun 3574a09902 불필요한 코드 제거 2019-03-04 12:25:58 +09:00
thisgun 4d4064c40d Merge branch 'master' of github.com:gnuboard/g5 2019-02-14 10:32:18 +09:00
thisgun 92ded4b17a 5.3.2.6 버전 수정 2019-02-14 10:10:33 +09:00
thisgun 04f55c8b95 게시판 관리 페이지 여분필드 style 수정 2019-02-14 10:09:45 +09:00
thisgun 9c03cd85b6 취약점 보안 및 코드 개선 2019-02-14 09:59:35 +09:00
thisgun d0eb0601ad 잘못된 코드 수정 2019-02-07 16:47:54 +09:00
thisgun e8abeb47e8 Merge branch 'master' of github.com:gnuboard/g5 2019-01-28 11:18:46 +09:00
thisgun 40508b05d0 KVE-2018-2451, 2452, 2453, 2019-0208 그누보드 다중 취약점 수정 2019-01-28 11:11:49 +09:00
thisgun 31bf6e94ad KVE-2019-0001, 0002, 0042, 0050 그누보드 다중 취약점 수정 2019-01-28 10:07:29 +09:00
thisgun f1a69ff7a4 버전 5.3.2.5 수정 2019-01-18 16:57:24 +09:00
thisgun 6b67183ec5 쪽지 저장 코드 수정 2019-01-18 11:58:56 +09:00
thisgun ab5fb4815d KVE-2018-1968 취약점 수정 2019-01-18 11:34:31 +09:00
thisgun 2ce07e5ec9 잘못된 오타 코드 수정 2019-01-16 14:46:39 +09:00
thisgun 826a497e84 환경설정페이지 코드 수정 2019-01-10 20:58:58 +09:00
thisgun 5fdd38e1ce Merge branch 'master' of github.com:gnuboard/g5 2019-01-07 14:48:37 +09:00
thisgun 67353c508a 관리자 게시판 복사시 누락코드 수정 2019-01-07 14:47:14 +09:00
thisgun e069c00ecd 버전 5.3.2.4로 수정 2019-01-07 14:32:35 +09:00
thisgun 60387c8a95 lg XpayClient 로그 기록 남지 않도록 수정 2019-01-07 14:30:53 +09:00
thisgun 4cc8284016 KVE-2018-1827, 1828, 1829, 1830 그누보드/영카트 다중 취약점 처리 2019-01-07 14:13:03 +09:00
thisgun 1ba5bb09fc 보안을 위해 RAR Wrapper 차단 2019-01-07 12:09:29 +09:00
thisgun 953e301096 로그폴더 검색되지 않도록 수정 2019-01-07 12:06:13 +09:00
thisgun 72bbc0b66b 잘못된 코드 수정 2019-01-07 11:49:10 +09:00
thisgun 82cdd90edc Merge branch 'master' of github.com:gnuboard/g5 2018-12-28 11:11:07 +09:00
thisgun 1d0f0bf50b 5.3.2.3 버전 수정 2018-12-28 11:01:27 +09:00
thisgun 4366d20410 잘못된 코드 수정 2018-12-28 10:45:22 +09:00
thisgun e4d47cc7fd 내용관리 이미지 조절 css 코드 수정 2018-12-27 18:20:02 +09:00
thisgun 3efa500b02 썸네일 라이브러리 코드 수정 2018-12-26 15:48:23 +09:00
thisgun 129da34249 iframe 허용 주소에 카카오 tv 주소 추가 2018-12-26 12:15:48 +09:00
thisgun 54b1356ab1 Merge branch 'master' of github.com:gnuboard/g5 2018-12-18 12:29:17 +09:00
thisgun 061e73c014 KVE-2018-1316 취약점 다시 재 수정 2018-12-18 12:26:12 +09:00
thisgun 7ae3d6b00d Merge branch 'master' of github.com:gnuboard/g5 2018-12-17 18:49:03 +09:00
thisgun c028d34f78 5.3.2.2 버전 수정 2018-12-17 18:47:40 +09:00
thisgun 53457e3b2f 소셜로그인 트위터 callback_url 표기 수정 2018-12-17 18:44:14 +09:00
thisgun 39c8182a2f 소셜로그인시 정보수정에 관한 코드 수정 2018-12-13 10:13:05 +09:00
thisgun 038affe798 KVE-2018-1808 취약점 수정 2018-12-12 17:28:55 +09:00
thisgun da963964a9 Merge branch 'master' of github.com:gnuboard/g5 2018-12-11 17:22:45 +09:00
thisgun 82078fc781 파일다운로드시 한글파일명 이슈 다시 수정 2018-12-11 17:20:55 +09:00
thisgun 14f55f7519 오타수정 2018-12-11 16:52:46 +09:00
thisgun 97ee35e985 KVE-2018-1316 취약점 다시 수정 2018-12-07 10:59:59 +09:00
thisgun 7e7d73d394 Merge branch 'master' of github.com:gnuboard/g5 2018-11-26 15:24:07 +09:00
thisgun 70d48e4d5a 5.3.2.1 버전 수정 2018-11-26 15:11:44 +09:00
thisgun 918663a7e2 봇의 메일 링크 크롤링 방지 2018-11-26 15:11:19 +09:00
thisgun 2549172969 Merge branch 'master' of github.com:gnuboard/g5 2018-11-21 15:59:33 +09:00
thisgun 8399dafd4b 5.3.2.0 버전 수정 2018-11-21 15:52:18 +09:00
thisgun 30a0016d0b 잘못된 게시판 스킨 css 코드 수정 2018-11-21 15:03:33 +09:00
thisgun e14f25d10f KVE-2018-1403 취약점 수정 2018-11-21 14:55:57 +09:00
thisgun bc5779fafb KVE-2018-1316 그누보드,영카트 취약점 수정 2018-11-16 17:54:57 +09:00
thisgun ccba200fbd 잘못된 코드 수정 2018-11-16 11:15:10 +09:00
thisgun e7caff2e63 KVE-2018-0979 그누보드 영카트 lgxpay XSS 취약점 수정 2018-11-16 10:55:56 +09:00
thisgun ad2419026a 잘못된 php 코드 수정 2018-10-30 16:09:56 +09:00
thisgun 3fb9c2c15f Merge branch 'master' of github.com:gnuboard/g5 2018-10-30 16:03:27 +09:00
thisgun 26f6edfd0b 소셜 로그인한 계정은 회원 탈퇴를 못하는 오류 수정 2018-10-30 16:02:50 +09:00
thisgun a45241f4bc XSS 취약점 수정 2018-10-30 09:42:48 +09:00
thisgun 0329cc9f9c Merge branch 'master' of github.com:gnuboard/g5 2018-10-26 11:55:51 +09:00
thisgun c82c937fbb get_real_client_ip 함수에 필터링 코드 추가 2018-10-26 11:54:53 +09:00
thisgun 798951f4c6 이미지 보기 잘못된 정규식 코드 수정 2018-10-22 14:33:02 +09:00
thisgun a77a6ffafa Merge branch 'master' of github.com:gnuboard/g5 2018-10-18 18:45:11 +09:00
thisgun d930b36d61 LGU 본인결제 모바일에서 출력안되는 문제 수정 2018-10-18 18:44:24 +09:00
thisgun 15b2e73e73 Merge branch 'master' of github.com:gnuboard/g5 2018-10-17 19:41:16 +09:00
thisgun c8d41381c9 이미지 상세 보기 페이지 확장자 체크 추가 2018-10-17 19:39:00 +09:00
thisgun 0e00f05014 Merge branch 'master' of github.com:gnuboard/g5 2018-10-17 18:42:24 +09:00
thisgun 6a01a868d1 5.3.1.9 버전 수정 2018-10-17 18:32:58 +09:00
thisgun aa7ffdf093 그누보드5 다중 취약점 수정 adm1nkyj( http://adm1nkyj.kr/ ) 제보 2018-10-17 18:01:42 +09:00
thisgun 784f631896 get_selected get_checked 함수 비교문 코드 다시 수정 2018-10-17 16:29:50 +09:00
thisgun 2541664ae2 KVE-2018-0291 추가 취약점 수정 2018-10-12 09:15:12 +09:00
thisgun b2858b65ee Merge branch 'master' of github.com:gnuboard/g5 2018-10-08 12:00:38 +09:00
thisgun cb29c398cc 5.3.1.8 버전 수정 2018-10-08 11:31:01 +09:00
thisgun eccdd7d473 이메일 인증시 탈퇴된 회원이나 차단된 회원은 인증안되게 수정 2018-10-08 11:29:17 +09:00
thisgun a4df23fe6d get_selected get_checked 함수 비교문 코드 수정 2018-10-08 09:54:15 +09:00
thisgun 908d242e52 admin_check_xss_params 함수 추가 2018-10-05 13:55:45 +09:00
thisgun b7989d617f 잘못된 코드 수정 2018-10-05 10:27:28 +09:00
thisgun 7524d29188 KVE-2018-0732 취약점 수정 2018-10-01 10:48:59 +09:00
thisgun a82f61ae2a Merge branch 'master' of github.com:gnuboard/g5 2018-09-17 10:34:00 +09:00
thisgun 6025f10116 5.3.1.7 버전 수정 2018-09-17 10:07:34 +09:00
thisgun d7b209e93c 주소 입력시 포커스문에 setTimeout 시간 추가 2018-09-14 14:36:47 +09:00
thisgun 37b72f36d6 소셜 로그인 스킨 잘못 표기된 태그 수정 2018-09-14 12:23:52 +09:00
thisgun 333c1e1af4 인스톨시 기존 데이터베이스가 존재하는지 체크과정 추가 2018-09-14 12:04:37 +09:00
thisgun c0a4d9776b 소셜 팝업창 옵션에 스크롤 옵션 추가 2018-09-13 18:30:13 +09:00
thisgun 4833ff388b 아이코드 SMS 응답 없을시 지연 시간 수정 2018-09-13 18:25:15 +09:00
thisgun 64f02142b8 카카오톡 공유를 PC 에서 할수 있게 수정 2018-09-13 15:19:27 +09:00
thisgun 2b79194f72 clean_xss_attributes 함수 추가 2018-09-06 10:38:14 +09:00
thisgun 6dd55f3256 get_uniqid 함수 영카트 함수 내용과 동일하도록 수정 2018-09-05 14:53:10 +09:00
thisgun 5be739934b Merge branch 'master' of github.com:gnuboard/g5 2018-08-24 09:35:49 +09:00
thisgun 917b12c2c2 5.3.1.6 버전 수정 2018-08-24 09:25:00 +09:00
thisgun b0c2c9cea6 자동로그인 코드 수정 2018-08-24 09:16:22 +09:00
thisgun b1fc952c76 XSS 취약점 수정 2018-08-22 14:02:14 +09:00
thisgun ac5d6a4be7 Merge branch 'include' of github.com:gnuboard/g5 into include 2018-08-21 18:00:44 +09:00
thisgun a4d3de3227 잘못된 주석 코드 삭제 2018-08-21 17:57:09 +09:00
thisgun 9834a0962e str_encrypt 클래스 코드 수정 2018-08-21 17:57:04 +09:00
thisgun c03fec73b9 KVE-2018-0441,0449,0510 그누보드 영카트 다중 취약점 수정 2018-08-17 14:45:04 +09:00
thisgun a7a8f45301 링크 보기 제대로 출력 안되는 오류 수정 2018-07-30 11:05:17 +09:00
thisgun 3c9f4e05fb iframe 허용 도메인 추가 2018-07-24 09:58:00 +09:00
thisgun 6d7ac7a6be 카카오링크 버전 소스 수정 2018-07-10 17:20:42 +09:00
thisgun 02d816154b Merge branch 'master' of github.com:gnuboard/g5 2018-07-03 16:02:20 +09:00
thisgun 733bca04c8 5.3.1.5 버전 수정 2018-07-03 15:57:21 +09:00
thisgun 244a496490 회원 사이드뷰 전체게시물 클릭시 새창으로 수정 2018-07-03 15:51:43 +09:00
thisgun c6f28c120c 취약점 [KVE-18-339] 수정 2018-07-03 15:29:06 +09:00
thisgun 12ad5e9cb5 방문자 스킨 css 수정 2018-06-08 11:18:28 +09:00
thisgun 0bae2cf182 Merge branch 'master' of github.com:gnuboard/g5 2018-06-05 11:42:10 +09:00
thisgun 85762d4ed6 5.3.1.4 버전 수정 2018-06-05 11:38:30 +09:00
thisgun d7cf0ce39d KVE-2018-366, 379, 397 취약점 수정 2018-06-05 11:33:12 +09:00
thisgun a196c91ed5 Merge branch 'master' of github.com:gnuboard/g5 2018-06-05 09:39:56 +09:00
thisgun a069ec6c93 네이버 소셜 아이디로 가입시 이름을 가져오도록 수정 2018-06-05 09:39:15 +09:00
thisgun 2a4300b4b2 새게시물 페이지에서 게시물 삭제시 게시판 카운트가 제대로 되지 않는 오류 수정 2018-06-04 12:04:34 +09:00
thisgun 5048ac79d2 쪽지 보기에서 사이드뷰 전체게시물 링크를 opener 로 보내게금 수정 2018-06-04 10:55:34 +09:00
thisgun 43cafe7753 잘못된 css 수정 2018-06-04 10:42:58 +09:00
thisgun c24f37421b Merge branch 'master' of github.com:gnuboard/g5 2018-05-23 14:09:13 +09:00
thisgun 0d9ecfda21 5.3.1.3 버전 수정 2018-05-23 13:34:05 +09:00
thisgun 980e65361c KVE-2018-0300,0331,0356,0358,0370 취약점 수정 2018-05-21 20:32:09 +09:00
thisgun c0fcd3a1ed KVE-2018-0289, 0290, 0291, 0292, 0293 영카트, 그누보드 취약점 수정 2018-05-14 16:54:05 +09:00
thisgun da26d2d020 다운로드 카운트 코드 수정 2018-04-25 09:54:57 +09:00
thisgun 74a8e668e5 Merge branch 'master' of github.com:gnuboard/g5 2018-04-23 10:45:56 +09:00
thisgun 215ea45b1f 오타 수정 2018-04-23 10:35:40 +09:00
thisgun f6a8b1bacf Merge branch 'master' of github.com:gnuboard/g5 2018-04-20 16:01:37 +09:00
thisgun 0abf00d793 크롬 모바일 데이터 절약 모드 관리자 페이지 접속 오류 수정 2018-04-20 16:00:54 +09:00
thisgun 8958f138f4 Merge branch 'master' of github.com:gnuboard/g5 2018-04-20 14:27:21 +09:00
thisgun 850145bf36 5.3.1.2 버전 수정 2018-04-20 14:04:56 +09:00
thisgun 0b8ac2f8bb 쪽지 내용 보기의 이전쪽지 다음쪽지 링크 문제 수정 및 스타일 수정 2018-04-20 12:05:57 +09:00
thisgun 00495f4bdb 모바일 구분 AGENT에 블랙베리 모델 BB01 추가 2018-04-20 10:38:51 +09:00
thisgun 4252ba73db 1:1 문의 게시판 스킨 수정 2018-04-20 09:08:08 +09:00
thisgun 177cffc9df 테마 css 수정 및 스킨 파일 css 개선 2018-04-19 14:21:47 +09:00
thisgun 8ce9da7684 스킨파일 오류 구문 수정 2018-04-18 12:30:32 +09:00
thisgun 33451baa46 오타 수정 2018-04-10 16:44:29 +09:00
thisgun af8494e18f Merge branch 'master' of github.com:gnuboard/g5 2018-04-04 12:13:10 +09:00
thisgun e5fd02516f 소셜 로그인 디버그 기능 추가 2018-04-03 18:05:07 +09:00
thisgun 4acf2a5686 잘못된 태그 수정 2018-04-03 11:07:51 +09:00
thisgun b0fd1e7486 Merge branch 'master' of github.com:gnuboard/g5 2018-03-30 19:15:40 +09:00
thisgun ebc35a9c33 5.3.1 버전 수정 2018-03-30 17:41:34 +09:00
thisgun f7ac06d7d4 5.3 버전 내용 적용 2018-03-30 17:40:37 +09:00
thisgun bf8efdf2ab Merge branch 'master' of github.com:gnuboard/g5 2018-03-26 09:52:13 +09:00
thisgun 87fdbc7882 5.2.9.8.4 버전 수정 2018-03-26 09:39:47 +09:00
thisgun 78a6943ed8 타도메인 리다이렉트 체크 오류 코드 수정 2018-03-26 09:15:10 +09:00
thisgun 0055690e54 alert.php 코드 수정 2018-03-23 15:40:35 +09:00
thisgun 632ca4c79a Merge branch 'master' of github.com:gnuboard/g5 2018-03-20 15:58:37 +09:00
thisgun 52f6b39edc 공지가 풀리는 경우 코드 오류 수정 및 메모 카운트 코드 오류 수정 2018-03-20 15:56:24 +09:00
thisgun fddd29388b 취약점 (2018-0085, 0132) 이전 잘못된 코드 수정 2018-03-19 16:55:42 +09:00
thisgun ea9825be61 Merge branch 'master' of github.com:gnuboard/g5 2018-03-19 14:31:06 +09:00
thisgun af6d060fa0 5.2.9.8.3 버전 수정 2018-03-19 14:16:10 +09:00
thisgun 134e504134 최신글 캐시 파일 생성 코드 수정 2018-03-19 12:30:24 +09:00
thisgun 2a70b016f6 게시판 상단 하단 파일 경로 내용 등은 슈퍼관리자만 입력할수 있게 수정 2018-03-19 11:03:25 +09:00
thisgun c665cc0557 그누보드 관리자 페이지 SQL Injection 취약점 수정 2018-03-19 10:24:24 +09:00
thisgun cfc85a327b 분류명 패치 f5f4925d4e 에 따른 추가코드 2018-03-19 09:40:21 +09:00
thisgun a47002d71f 1:1 문의 리스트에서 삭제 토큰 오류 수정 2018-03-16 17:10:54 +09:00
thisgun 6c867f02b4 그누보드 SQL Injection 취약점 (18-0075) 수정 2018-03-16 16:39:07 +09:00
thisgun 108651c46d 그누보드 Reflected XSS 취약점(18-0085, 0132) 수정 2018-03-16 12:17:00 +09:00
thisgun b95db6a4a7 미가입 계정 세션 획득 취약점 (18-0013) 수정 2018-03-15 15:41:20 +09:00
thisgun b79a46b857 그누보드5 Open Redirect+Password Hijack 취약점(2018-0109) 수정 2018-03-14 17:57:34 +09:00
thisgun 06ad4e534a 그누보드 영카트 다중 취약점(17-1029, 17-1047) 수정 2018-03-13 16:11:52 +09:00
thisgun d7b5c9a4bd 그누보드, 영카트 다중 취약점 (18-062, 092, 101, 102) 수정 2018-03-12 18:14:19 +09:00
thisgun 81b39b59c3 그누보드 Reflected XSS 취약점(KVE-2018-0086) 수정 2018-03-12 15:00:58 +09:00
thisgun 4aeae4915a 오타 수정 2018-03-12 09:17:05 +09:00
thisgun a4c3a4b5e9 그누보드 URL Redirect 취약점(KVE-2017-1052) 수정 2018-03-09 10:56:30 +09:00
thisgun c032ed6647 첨부파일명이 외국어일시 다운로드 이슈 수정 2018-02-26 16:37:16 +09:00
thisgun 5b9b29fdfe 게시판 검색시 0 문자열로 검색할수 있도록 수정 2018-02-26 11:50:17 +09:00
thisgun 9e8f75e8fa 회원이 쓴 공지글을 수정할 경우 공지가 풀리는 오류 수정 2018-02-26 09:04:15 +09:00
thisgun f50b4d419f 스크랩 댓글 삭제시 포인트내역이 사라지지 않는 오류 수정 2018-02-20 18:36:00 +09:00
thisgun 58aaef8261 TEXTAREA 로 작성된 글을 에디터로 글 수정시 생기는 문제 수정 2018-02-14 11:50:40 +09:00
thisgun f9b82cfbfb 잘못된 주석 수정 2018-02-05 17:05:11 +09:00
thisgun 80d47facff 문법 오류 수정 2018-01-19 18:23:57 +09:00
thisgun 18749864c0 메모에 페이징 적용 2018-01-19 16:05:33 +09:00
thisgun fc976f2bed 관리자 설문조사 페이지 필터구문 추가 2018-01-05 10:19:47 +09:00
thisgun fbe2021a38 Merge branch 'master' of github.com:gnuboard/g5 2017-12-27 18:16:32 +09:00
thisgun b34f577fbd iframe 허용 목록의 잘못된 정규식 수정 2017-12-27 18:10:40 +09:00
thisgun 5ba5836ecb Merge branch 'master' of github.com:gnuboard/g5 2017-12-27 09:59:37 +09:00
thisgun c1e1f64580 5.2.9.8.1 버전 수정 2017-12-27 09:56:10 +09:00
thisgun 5ab91fa0ab Open Redirect 취약점 수정 2017-12-27 09:45:22 +09:00
thisgun 5abc41cdb9 게시판 글쓰기 iframe 허용 코드 수정 2017-12-27 09:14:48 +09:00
thisgun a90a38f096 Merge branch 'master' of github.com:gnuboard/g5 2017-12-20 12:05:17 +09:00
thisgun 68f8836cfb 5.2.9.8 버전 수정 2017-12-20 11:59:10 +09:00
thisgun 1e41f6a8ff 파일 업로드 취약점 수정 2017-12-18 12:21:23 +09:00
thisgun 875a326344 그누보드 CSRF 취약점(KVE-2017-0883,0884,0923) 수정 2017-12-12 11:59:10 +09:00
thisgun 7f9664af0a 그누보드 Reflected XSS 취약점 (891, 906, 908, 910) 수정 2017-12-11 17:52:20 +09:00
thisgun 8755c8ece7 Open Redirect 취약점 수정 2017-12-11 14:34:01 +09:00
thisgun 66358414f2 pht 파일 업로드 취약점 수정 adm1nkyj(김용진, http://adm1nkyj.kr) 님 제보 2017-12-08 11:27:37 +09:00
thisgun bc68c4bc70 Merge branch 'master' of github.com:gnuboard/g5 2017-12-07 11:18:09 +09:00
thisgun 82279c376b 5.2.9.7 버전 수정 2017-12-07 11:16:48 +09:00
thisgun 8b096e770c 스팸글댓글 유입을 줄이려고 링크에 nofollow 추가함 2017-12-07 11:02:10 +09:00
thisgun 6bf57bd4c6 최신글 캐시 파일 삭제 취약점 수정 2017-12-06 18:31:36 +09:00
thisgun ea55f3880e 그누보드4 가져오기 코드에 게시판 모바일 설정 추가 적용 2017-12-06 16:11:24 +09:00
thisgun 19e0ea60a7 php 잘못된 숏태그 수정 2017-12-05 19:10:41 +09:00
thisgun 7831d9dfb6 가비아 호스팅에서 설치시 에러 문제 수정 2017-12-05 17:10:55 +09:00
thisgun 907db24187 htmlpurifier 4.9.3 버전의 변경 2017-12-05 14:41:49 +09:00
thisgun 5a424d5977 Merge branch 'master' of github.com:gnuboard/g5 2017-12-04 16:02:42 +09:00
thisgun 6c4353fffe php 7.2 버전에서 오류 나는 코드 수정 2017-12-04 15:56:59 +09:00
thisgun fd1ec11ad1 그누보드4 import 코드 수정 2017-12-04 14:26:12 +09:00
thisgun 9f89455b3c 그누보드 XSS 취약점 (17-876, 17-879) 수정 2017-11-28 17:23:50 +09:00
thisgun 7d8e2e4fdd Merge branch 'master' of github.com:gnuboard/g5 2017-11-07 10:11:55 +09:00
thisgun 0aa4ae0b96 5.2.9.6 버전 수정 2017-11-07 10:04:47 +09:00
thisgun 04620f2475 thumbnail 생성 처리 일부 수정 2017-11-07 09:55:36 +09:00
thisgun 6cfb34ab22 영카트 Reflected XSS (17-0789) 취약점 수정 2017-11-06 16:47:24 +09:00
thisgun e46af305a9 sql_real_escape_string 함수 수정 2017-10-18 17:01:08 +09:00
thisgun 2fe00e5e96 자바스크립트 함수 number_format 수정 2017-10-16 11:12:54 +09:00
thisgun 2c7f9bd449 로그인 상태에서 회원정보 찾을시 리다이렉트 순환 오류 수정 2017-10-16 09:14:42 +09:00
thisgun d1ee1eb4e1 lgu 본인인증 기록 관련 수정 2017-10-12 17:21:51 +09:00
thisgun f9dd7644cc Merge branch 'master' of github.com:gnuboard/g5 2017-10-11 09:06:51 +09:00
thisgun 3f94d86db4 5.2.9.5 버전 수정 2017-10-10 11:47:30 +09:00
thisgun 9882234645 관리자 하단에 버전정보 표시 구문 수정 2017-10-10 11:44:38 +09:00
thisgun 838f1a0678 검색순위 관리자 페이지 잘못된 소스 수정 2017-10-10 11:39:32 +09:00
thisgun c111b2beaf 새글 선택내용삭제 과정중 잘못된 변수명 수정 2017-10-10 11:36:55 +09:00
thisgun ebad7240cc 그누보드 RCE 취약점 수정 adm1nkyj(김용진, http://adm1nkyj.kr) 님 제보 2017-10-10 11:26:11 +09:00
thisgun 8ed85a5fb4 게시판 글 쓰기 토큰 적용 이미지 버튼 추가 2017-10-10 11:25:04 +09:00
thisgun 3beaf71e16 동일한 게시판으로 글 복사시 파일 복사 처리 수정 ( 제이프로 님 제안 ) 2017-09-29 12:19:50 +09:00
thisgun 38f1e838a5 그누보드, 영카트 관리자페이지 파일 삭제 취약점 (17-664) 수정 2017-09-29 10:36:32 +09:00
thisgun 0f4ec77ac0 그누보드 다중 취약점 (17-0295, 334, 355) 수정 2017-09-28 20:23:28 +09:00
thisgun 28d079e83f 5.2.9.3 버전 수정 2017-09-11 11:00:14 +09:00
thisgun 5970f2a577 5.2.9.3 버전 수정 2017-09-11 10:50:58 +09:00
thisgun 9dea1a40db ip 차단시 접근불가 글씨 깨지는 현상 수정 2017-09-11 10:47:50 +09:00
thisgun dbe131633a 관리자 하단에 버전 정보 표시 2017-09-07 10:36:38 +09:00
thisgun 277ce801e6 원격 코드 실행 취약점 수정 ( 17-0524,525 ) 2017-09-07 10:05:35 +09:00
thisgun 7e5e973d09 영카트 다중 취약점( 17-0556 ) 수정 2017-09-06 17:07:11 +09:00
thisgun 36fff814bf get_sock 함수 수정 2017-09-06 16:38:23 +09:00
thisgun 94cb7f7956 lgu 본인확인 코드 일부 수정 2017-09-06 14:30:55 +09:00
thisgun edbefc256b 휴대폰본인확인 lg 모듈 최근 버전으로 수정 2017-09-06 11:58:51 +09:00
thisgun 8af8e13686 페이스북 연결 구문 수정 2017-08-25 09:29:35 +09:00
thisgun 3d2d3b9948 오픈 리다이렉트 유저 패스워드 Leak 취약점 수정 adm1nkyj@UpRoot님이 알려주심 2017-08-22 16:46:36 +09:00
thisgun 91f60763d8 IOS 10.3.x 버전대에서 다음 우편주소 오류 수정 2017-08-21 19:38:14 +09:00
thisgun 54401165e8 5.2.9.2 버전 정보 수정 2017-08-16 10:52:49 +09:00
thisgun b99efb8fc8 1:1 문의 및 내용관리 상단 하단 경로 수정 2017-08-16 10:43:24 +09:00
thisgun ad102421cb Stored XSS 취약점 수정 (17-557) 2017-08-16 10:43:21 +09:00
thisgun 9be00683d9 433 포트번호 처리 수정 2017-08-16 10:43:18 +09:00
thisgun e76f36a1be 최고관리자 정보수정 문제 ( 17-00465 취약점 관련 ) 2017-08-16 10:43:15 +09:00
thisgun 70b62a6c6a 패스워드 찾기 https url 처리 2017-08-16 10:43:12 +09:00
thisgun 61b3fe4ebd 쪽지 보낼때 차감 포인트도 표시하기 2017-08-16 10:43:08 +09:00
thisgun 30a93dbef7 아이코드 충전하기 버튼 링크 태그 수정 2017-08-16 10:43:05 +09:00
thisgun b6956bd6fd 모바일 댓글 https 미처리 수정 2017-08-16 10:43:03 +09:00
thisgun 7a4b7e23c5 include path 체크함수 수정 2017-08-16 10:42:47 +09:00
thisgun b34a7610f5 인스톨시 필터링 단어 수정 2017-08-16 10:42:40 +09:00
thisgun cf680e43d8 5.2.9.2 버전 수정 2017-08-16 09:30:52 +09:00
thisgun 3a311906bf 1:1 문의 및 내용관리 상단 하단 경로 수정 2017-08-16 09:24:15 +09:00
thisgun d9789a636e Stored XSS 취약점 수정 (17-557) 2017-08-14 17:23:23 +09:00
thisgun cd8a9078d5 433 포트번호 처리 수정 2017-08-14 17:04:11 +09:00
thisgun 121d369ab8 최고관리자 정보수정 문제 ( 17-00465 취약점 관련 ) 2017-07-20 19:52:00 +09:00
thisgun 1a0eb48b97 패스워드 찾기 https url 처리 2017-07-13 09:17:47 +09:00
thisgun 14e863930c 쪽지 보낼때 차감 포인트도 표시하기 2017-07-12 10:39:36 +09:00
thisgun 6f5775381a 아이코드 충전하기 버튼 링크 태그 수정 2017-07-10 17:53:16 +09:00
thisgun ee9f85628d 모바일 댓글 https 미처리 수정 2017-07-06 11:00:20 +09:00
thisgun 3000fc0b35 include path 체크함수 수정 2017-07-06 10:27:45 +09:00
thisgun bab7fa1f39 인스톨시 필터링 단어 수정 2017-07-06 09:22:24 +09:00
thisgun 0d19b01229 5.2.9 버전 변경 2017-07-03 19:58:40 +09:00
thisgun 2b2d558c87 게시판 본문의 url 자동 링크 소스 수정 2017-07-03 19:41:44 +09:00
thisgun 94f25f73fa 그누보드 글 수정 XSS 취약점 수정 ( 17-454 ) 2017-07-03 19:41:38 +09:00
thisgun 5bd16c0e77 kcaptcha https 적용이 안되는 오류 수정 2017-07-03 19:41:33 +09:00
thisgun 7bb40dd882 코멘트 폼 및 게시판 패스워드 action url에 https 처리 2017-07-03 19:41:26 +09:00
thisgun bb99c050b6 게시판 글쓰기시 버튼도 토큰 적용되도록 수정 2017-07-03 19:41:20 +09:00
thisgun 31cdf10011 스마트에디터 2.9.0 버전으로 수정 2017-07-03 19:41:13 +09:00
thisgun 02c29c137c cheditor js 업로드 수정 2017-07-03 19:41:09 +09:00
thisgun e9afe3fdae 1:1 문의 페이징 오류 수정 2017-07-03 19:41:05 +09:00
thisgun ce9517885b 그누보드 AND 검색을 이용한 취약점 수정 (17-455) 2017-07-03 19:40:57 +09:00
thisgun 6a41d655de 게시판에서 특수문자 일부 입력시 캐쉬 파일 생성 오류 수정 2017-07-03 19:40:50 +09:00
thisgun 9b8588df79 5.2.9 버전 수정 2017-07-03 19:09:40 +09:00
thisgun df97fa71a0 게시판 본문의 url 자동 링크 소스 수정 2017-07-03 19:03:05 +09:00
thisgun b9f1b4e170 그누보드 글 수정 XSS 취약점 수정 ( 17-454 ) 2017-07-03 18:18:50 +09:00
thisgun d89acfd01d kcaptcha https 적용이 안되는 오류 수정 2017-07-03 14:39:20 +09:00
thisgun 3ea7b8e03e 코멘트 폼 및 게시판 패스워드 action url에 https 처리 2017-07-03 14:25:59 +09:00
thisgun 59881232bf 게시판 글쓰기시 버튼도 토큰 적용되도록 수정 2017-07-03 10:19:38 +09:00
thisgun 0575cdab18 스마트에디터 2.9.0 버전으로 수정 2017-07-03 10:06:52 +09:00
thisgun 7f6b5d1b58 cheditor js 업로드 수정 2017-07-03 09:50:13 +09:00
thisgun f365e8abe1 1:1 문의 페이징 오류 수정 2017-06-28 14:33:28 +09:00
thisgun b7edd3fa26 그누보드 AND 검색을 이용한 취약점 수정 (17-455) 2017-06-23 12:26:34 +09:00
thisgun 367a210996 게시판에서 특수문자 일부 입력시 캐쉬 파일 생성 오류 수정 2017-06-14 15:48:22 +09:00
thisgun c2a4a39ea0 에디터 이미지 업로드 부분 정규식 수정 2017-06-14 11:22:05 +09:00
thisgun e056323677 에디터 이미지 업로드 부분 정규식 수정 2017-06-14 11:14:12 +09:00
thisgun b8759e4acd 5.2.8 버젼변경 2017-06-14 10:35:04 +09:00
thisgun e6a3df6f08 그누보드 파일 삭제 취약점 17-282 수정 2017-06-14 10:32:43 +09:00
thisgun 617dfbf0e2 그누보드 원격 취약점 17-259 수정 2017-06-14 10:32:35 +09:00
thisgun e4c9bf5ba4 g5_path 함수 수정 2017-06-14 10:32:29 +09:00
thisgun 910091b6c6 모바일 크롬 브라우저에서 캡챠 조회수 버그 수정 2017-06-14 10:32:23 +09:00
thisgun 92b8ce3a89 게시판 검색시 필드 소문자로 변경 2017-06-14 10:32:13 +09:00
thisgun 8a276fc073 install 파일에 utf-8 헤더 추가 2017-06-14 10:32:08 +09:00
thisgun baa2e890ba 기타 오류 수정 2017-06-14 10:32:04 +09:00
thisgun a9f4aee93f 메뉴 추가 대상에서 게시판일 경우 게시판 그룹 표시하기 #73 2017-06-14 10:31:59 +09:00
thisgun 144926774d 이메일 복화화 문자열이 깨지는 현상 수정 2017-06-14 10:31:53 +09:00
thisgun 3ee82c38d5 5.2.8 버전변경 2017-06-14 09:48:02 +09:00
thisgun c9e85d3159 그누보드 파일 삭제 취약점 17-282 수정 2017-06-13 16:06:12 +09:00
thisgun d755a42530 그누보드 원격 취약점 17-259 수정 2017-06-13 15:20:28 +09:00
thisgun 674a7f3f57 g5_path 함수 수정 2017-05-31 15:42:51 +09:00
thisgun f70df1fff2 모바일 크롬 브라우저에서 캡챠 조회수 버그 수정 2017-05-19 18:15:35 +09:00
thisgun 2553e6464b 게시판 검색시 필드 소문자로 변경 2017-05-19 16:03:40 +09:00
thisgun 746e04cf23 install 파일에 utf-8 헤더 추가 2017-05-19 15:57:27 +09:00
thisgun cecc163230 기타 오류 수정 2017-05-19 14:52:47 +09:00
thisgun edef3b961a 메뉴 추가 대상에서 게시판일 경우 게시판 그룹 표시하기 #73 2017-05-17 14:09:05 +09:00
thisgun 254583a135 이메일 복화화 문자열이 깨지는 현상 수정 2017-04-12 16:22:59 +09:00
thisgun 435da08a02 5.2.7 버전변경 2017-03-20 17:45:21 +09:00
thisgun 945c060b67 썸네일 파일 수정 2017-03-20 17:45:17 +09:00
thisgun 83fd4bf68a cheditor 소스 수정 2017-03-20 17:45:09 +09:00
thisgun f11c4531e9 원격코드 실행 취약점(17-00160) 수정 2017-03-20 17:45:05 +09:00
thisgun f36c24e5d0 오타 수정 (왕대인님 제보) 2017-03-20 17:45:00 +09:00
thisgun 23a91b346d LFI to RCE 취약점 수정 2017-03-20 17:44:56 +09:00
thisgun 08b8d1e3e2 썸네일 파일 수정 2017-03-20 17:25:23 +09:00
thisgun c2a2a11be3 5.2.7 버전변경 2017-03-20 16:06:10 +09:00
thisgun 54abbddbe5 cheditor 소스 수정 2017-03-20 15:46:58 +09:00
thisgun c6425adffc 원격코드 실행 취약점(17-00160) 수정 2017-03-14 12:30:58 +09:00
thisgun 20f658ffbb 오타 수정 (왕대인님 제보) 2017-02-09 11:10:22 +09:00
thisgun ed957cf6b3 LFI to RCE 취약점 수정 2017-02-06 20:00:18 +09:00
thisgun 8eb465d26f 5.2.6 버전변경 2017-01-18 19:59:42 +09:00
thisgun 6ff06d4609 글쓰기시 page 중복 소스 삭제 2017-01-18 19:58:35 +09:00
thisgun c817b1edb7 PHPMailer 5.2.22 버전 적용 2017-01-18 19:58:31 +09:00
thisgun f7c6a52f6d cheditor5 추가 2017-01-18 19:58:20 +09:00
thisgun ce03af265e 5.2.6 버전변경 2017-01-18 18:09:12 +09:00
thisgun 5ba87d9933 글쓰기시 page 중복 소스 삭제 2017-01-18 10:56:01 +09:00
thisgun db32bcfc06 PHPMailer 5.2.22 버전 적용 2017-01-18 10:44:03 +09:00
thisgun 11038348a3 cheditor5 추가 2017-01-18 10:30:17 +09:00
thisgun 3e343bdf66 5.2.5 버전변경 2017-01-09 14:33:20 +09:00
thisgun e131563c8f XSS 취약점(16-1008) 수정 2017-01-09 14:30:47 +09:00
thisgun 0094cc9afe 스마트에디터 업로드 방식 수정 2017-01-09 14:30:39 +09:00
thisgun 5fde923aa0 PHPMailer 5.2.19 버전 적용 2017-01-09 14:30:33 +09:00
thisgun ac780beb2c 5.2.5 버전변경 2017-01-09 10:07:34 +09:00
thisgun 4d4c781a8e XSS 취약점(16-1008) 수정 2017-01-05 17:54:32 +09:00
thisgun 85ace455da 스마트에디터 업로드 방식 수정 2017-01-05 17:52:53 +09:00
thisgun 8e09983805 PHPMailer 5.2.19 버전 적용 2016-12-27 11:56:11 +09:00
chicpro 1e3a4f2657 KCP 본인확인 모바일 관련 수정 2016-12-21 09:56:32 +09:00
chicpro 0991adb756 KCP 본인확인 모바일 관련 수정 2016-12-21 09:50:07 +09:00
chicpro 0693fde962 5.2.4 버전변경 2016-11-22 11:34:16 +09:00
chicpro c1008c87a7 5.2.4 버전변경 2016-11-22 11:29:04 +09:00
chicpro 7fb5f92200 <?php 수정 2016-11-22 10:47:31 +09:00
chicpro 02e4ec4584 <?php 수정 2016-11-22 10:46:03 +09:00
chicpro 50c8207fed 컬럼 정렬 함수에 sca 변수 추가 (sir ko님 제안) 2016-10-20 09:30:42 +09:00
chicpro 3e707708ec 컬럼 정렬 함수에 sca 변수 추가 (sir ko님 제안) 2016-10-20 09:26:47 +09:00
chicpro 6dbfa73461 5.2.3 버전변경 2016-10-19 10:26:05 +09:00
chicpro 727eeb74fe 5.2.3 버전변경 2016-10-19 10:19:25 +09:00
chicpro 76ecc6efe8 XSS 취약점(16-781) 수정 2016-10-17 16:57:04 +09:00
chicpro ecc7690046 XSS 취약점(16-781) 수정 2016-10-17 16:55:07 +09:00
chicpro f4b0737178 개인정보처리방침 명칭 변경 2016-10-17 14:48:00 +09:00
chicpro e99c7a81db 게시글 CSRF 취약점(16-749 16-750) 수정 2016-10-17 14:47:45 +09:00
chicpro ce0a6dc3af js css 버전 상수 추가 2016-10-17 14:47:30 +09:00
chicpro 1f5e3e0daa 개인정보처리방침 명칭 변경 2016-10-13 09:42:11 +09:00
chicpro b69720836b 게시글 CSRF 취약점(16-749 16-750) 수정 2016-10-05 10:34:07 +09:00
chicpro 468cca81d1 js css 버전 상수 추가 2016-10-05 09:48:29 +09:00
chicpro f3e428ea1e 모바이 FAQ 하단 내용 출력 오류 수정 2016-09-21 11:41:04 +09:00
chicpro 5c866ae133 모바이 FAQ 하단 내용 출력 오류 수정 2016-09-21 11:35:16 +09:00
chicpro 9b422b38c5 5.2.2 버전변경 2016-09-20 09:59:04 +09:00
chicpro 2401620dc6 5.2.2 버전변경 2016-09-20 09:24:33 +09:00
chicpro f6056b2d37 오픈 리다이렉트 취약점(16-603) 수정 2016-09-06 14:47:35 +09:00
chicpro 2457b96f7d 오픈 리다이렉트 취약점(16-603) 수정 2016-09-06 10:06:41 +09:00
chicpro a560fc353c htmlpurifier 4.8 업데이트 2016-08-29 13:48:02 +09:00
chicpro 9655c53a3b htmlpurifier 4.8 업데이트 2016-08-29 11:03:17 +09:00
chicpro e2c67e854f 5.2.1 버전변경 2016-08-22 09:56:47 +09:00
chicpro 3b382c0642 5.2.1 버전변경 2016-08-22 09:51:02 +09:00
thisgunandchicpro 3e7617e825 스마트에디터 2.8.2.3 보안패치 #63 2016-08-17 14:37:23 +09:00
thisgun a4ffdb0316 스마트에디터 2.8.2.3 보안패치 #63 2016-08-12 18:24:14 +09:00
chicpro 4515f11169 토큰 초기화 코드 추가 2016-08-10 10:02:04 +09:00
chicpro ec32f64bc4 댓글 수정 CSRF 취약점 수정 2016-08-10 10:01:49 +09:00
chicpro 15bd8b9632 파일경로 필터링 코드 추가 2016-08-10 10:01:35 +09:00
chicpro ef013e0827 wr_id_list 필터링 코드 추가 2016-08-10 09:56:03 +09:00
chicpro 08fc272f1b 토큰 초기화 코드 추가 2016-08-09 09:16:16 +09:00
chicpro c23f6c0161 댓글 수정 CSRF 취약점 수정 2016-08-08 17:44:29 +09:00
chicpro c1eab8e3c7 파일경로 필터링 코드 추가 2016-08-01 09:32:52 +09:00
chicpro fbe30c7ad6 wr_id_list 필터링 코드 추가 2016-07-29 10:21:09 +09:00
chicpro b3773217e9 5.2.0 버전변경 2016-07-25 10:44:58 +09:00
chicpro acc3ede87d 5.2.0 버전변경 2016-07-25 10:33:46 +09:00
chicpro 70f6d92e87 XSS 취약점 수정 16-480 2016-07-21 10:25:46 +09:00
chicpro a79def43c5 XSS 취약점 수정 16-480 2016-07-15 09:25:39 +09:00
chicpro 042695af55 5.1.19 버전변경 2016-07-05 11:01:48 +09:00
chicpro b5592b8466 5.1.19 버전변경 2016-07-05 10:53:16 +09:00
chicpro 85f9523b30 댓글 삭제 토큰 코드 수정 2016-06-28 13:33:28 +09:00
chicpro cb327e902f 댓글 삭제 토큰 코드 수정 2016-06-28 10:25:55 +09:00
chicpro 8c1d6266af 게시글 댓글 삭제 때 토큰 체크 추가 2016-06-24 17:22:29 +09:00
chicpro 30009dba6f 커맨드 인젝션 취약점(16-418 419) 수정 2016-06-24 17:22:14 +09:00
chicpro 2a9e72da41 게시글 댓글 삭제 때 토큰 체크 추가 2016-06-24 17:17:02 +09:00
chicpro e724ef7291 커맨드 인젝션 취약점(16-418 419) 수정 2016-06-13 17:47:41 +09:00
chicpro 24e7e8823e 가입축하 메일의 메일인증코드 수정 2016-05-24 17:46:02 +09:00
chicpro dfc2c110d6 가입축하 메일의 메일인증코드 수정 2016-05-24 17:34:01 +09:00
chicpro 42fb4b71a6 5.1.18 버전변경 2016-05-17 10:05:35 +09:00
chicpro f0134b610b 누락된 필드 추가 2016-05-17 10:05:06 +09:00
chicpro c2cf34392a 1:1문의 등록 오류 수정 2016-05-17 10:04:53 +09:00
chicpro 32235cfd9d 5.1.18 버전변경 2016-05-17 09:58:59 +09:00
chicpro 6457eded48 누락된 필드 추가 2016-05-17 09:54:23 +09:00
chicpro 5cc41e8455 1:1문의 등록 오류 수정 2016-05-17 09:48:08 +09:00
chicpro 20dc859436 5.1.17 버전변경 2016-05-16 15:21:55 +09:00
chicpro cb51396c80 5.1.17 버전변경 2016-05-16 15:06:04 +09:00
chicpro f5ec4d60c0 기본환경설정 NHN KCP 사명변경 2016-05-13 12:03:02 +09:00
chicpro 2a6e2c0450 기본환경설정 NHN KCP 사명변경 2016-05-13 11:56:44 +09:00
chicpro de00b4e9d3 1:1문의 파일업로드 분류 체크 추가 2016-05-04 13:36:31 +09:00
chicpro 8c67945c64 파일 업로드 개수 코드 수정 2016-05-04 13:36:20 +09:00
chicpro e22b4ec085 1:1문의 파일업로드 분류 체크 추가 2016-05-04 13:31:42 +09:00
chicpro 71efd5c97f 파일 업로드 개수 코드 수정 2016-05-04 10:42:59 +09:00
chicpro e5889df761 게시글 카테고리 체크 수정 2016-05-03 17:33:53 +09:00
chicpro 624e3d74a6 파일 업로드 개수 체크 추가 2016-05-03 17:33:37 +09:00
chicpro b4a83c1969 게시글 카테고리 체크 수정 2016-05-03 17:31:10 +09:00
chicpro ee35ce9839 파일 업로드 개수 체크 추가 2016-05-03 16:53:52 +09:00
chicpro 30815f71e0 폼메일에서의 이메일주소 노출 수정 2016-05-03 14:16:38 +09:00
chicpro 949a73b468 1:1문의 이메일 체크 수정 2016-05-03 14:16:23 +09:00
chicpro 24d57cdd4b 스크랩 게시글 체크 추가 2016-05-03 14:16:09 +09:00
chicpro 191f3d2f97 1:1문의 삭제 오류 수정 2016-05-03 14:15:55 +09:00
chicpro 4973714e2f 이메일인증 프로세스 개선 2016-05-03 14:15:40 +09:00
chicpro 7a8a4fe71d 폼메일에서의 이메일주소 노출 수정 2016-05-02 16:53:37 +09:00
chicpro 2e36c0a662 1:1문의 이메일 체크 수정 2016-04-29 15:30:05 +09:00
chicpro 71b403bbe1 스크랩 게시글 체크 추가 2016-04-29 15:26:21 +09:00
chicpro c5d22ace25 1:1문의 삭제 오류 수정 2016-04-29 14:46:59 +09:00
chicpro 81671abd01 이메일인증 프로세스 개선 2016-04-29 14:20:59 +09:00
chicpro 70bfeefb3b 댓글 등록 오류 수정 2016-04-28 09:49:14 +09:00
chicpro da1b302a34 댓글 등록 오류 수정 2016-04-28 09:46:48 +09:00
chicpro e8b83f3a33 비밀글 등록 버그 수정 2016-04-27 10:44:37 +09:00
chicpro 3f7068541f 비밀글 등록 버그 수정 2016-04-26 17:56:14 +09:00
chicpro c6bdc172ee 5.1.16 버전변경 2016-04-20 11:08:39 +09:00
sora90224andchicpro c3cf74f0c5 관리자 부가서비스 kcp 로고 변경 2016-04-20 11:07:58 +09:00
chicpro 52db203ecd 필터링 특수문자 추가 2016-04-20 11:07:23 +09:00
chicpro 6e05353f31 sst 변수 필터링 특수문자 추가 2016-04-20 11:07:12 +09:00
chicpro 2fdc93b3fd 5.1.16 버전변경 2016-04-20 11:03:43 +09:00
sora90224 907dcd829a 관리자 부가서비스 kcp 로고 변경 2016-04-18 09:21:33 +09:00
chicpro b2ef314960 필터링 특수문자 추가 2016-04-05 10:08:28 +09:00
chicpro 6af75013d4 sst 변수 필터링 특수문자 추가 2016-04-04 14:28:18 +09:00
chicpro 7f6a9a090a 5.1.15 버전변경 2016-03-21 09:50:06 +09:00
chicpro fd381a9a93 5.1.15 버전변경 2016-03-21 09:44:36 +09:00
sora90224andchicpro 1825830c3d 모바일 쪽지함 이름겹침수정 2016-03-09 15:03:14 +09:00
sora90224andchicpro e29ea66e41 모바일 쪽지함 이름겹침수정 2016-03-09 14:59:59 +09:00
chicpro 3047e09f88 5.1.14 버전변경 2016-03-07 10:41:33 +09:00
chicpro d7e218350c 5.1.14 버전변경 2016-03-07 10:35:42 +09:00
chicpro 990af076af 커맨드 인젝션 취약점(16-164, 16-165) 수정 2016-02-29 15:14:15 +09:00
chicpro 569dfb5502 커맨드 인젝션 취약점(16-164, 16-165) 수정 2016-02-29 14:39:48 +09:00
chicpro b1f0342921 5.1.13 버전변경 2016-02-22 09:48:17 +09:00
chicpro a14689f66b 5.1.13 버전변경 2016-02-22 09:43:47 +09:00
chicpro 63f9e4c8df SIR 도메인 변경 2016-02-19 11:22:17 +09:00
chicpro ee702ff641 SIR 도메인 변경 2016-02-19 11:16:11 +09:00
chicpro 6b43e67c40 비밀 댓글 노출 취약점(16-067) 수정 2016-02-11 11:01:04 +09:00
chicpro 9a870506ab Reflected XSS 취약점(16-036) 수정 2016-02-11 11:00:30 +09:00
chicpro 008ae978dd XSS 취약점(16-060) 수정 2016-02-11 10:58:45 +09:00
chicpro 20b1d8c7e5 XSS 취약점(16-059) 수정 2016-02-11 10:58:31 +09:00
thisgunandchicpro 1e011ba56d 스마트 에디터 2.8.2 에 추가된 파일 적용 2016-02-04 17:31:09 +09:00
thisgunandchicpro a73e48c3e2 스마트에디터 2.8.2 적용 및 에디터 업로드 보안 수정 2016-02-04 17:30:53 +09:00
chicpro 1a142e5250 Merge branch 'master' into kisa 2016-02-04 17:27:16 +09:00
thisgun c9a4697473 Merge branch 'master' of github.com:gnuboard/g5 2016-02-04 10:30:00 +09:00
thisgun 4b38d93aa9 스마트 에디터 2.8.2 에 추가된 파일 적용 2016-02-04 10:29:44 +09:00
thisgun 5d2851de36 스마트에디터 2.8.2 적용 및 에디터 업로드 보안 수정 2016-02-04 10:28:23 +09:00
chicpro e9fd9f03fd g5_admin_url 코드 수정 2016-02-03 10:42:50 +09:00
chicpro f6e6a73b4d Merge branch 'master' into kisa 2016-02-03 10:40:53 +09:00
chicpro 3674acc4f1 g5_admin_url 코드 수정 2016-02-03 10:37:58 +09:00
chicpro 4913da0a1d g5_admin_url 변수 설정 코드 변경 2016-02-01 11:56:15 +09:00
chicpro 18ef4b0767 메일인증 기능 수정 2016-02-01 11:55:57 +09:00
chicpro ab5365423b Merge branch 'master' into kisa 2016-01-28 17:32:21 +09:00
chicpro e5aedd5cb1 g5_admin_url 변수 설정 코드 변경 2016-01-28 17:31:58 +09:00
chicpro 60ea7fde8a Merge branch 'master' into kisa 2016-01-28 17:05:10 +09:00
chicpro 7db9a33cef 메일인증 기능 수정 2016-01-28 17:02:08 +09:00
chicpro 88c95375f0 비밀 댓글 노출 취약점(16-067) 수정 2016-01-27 14:59:49 +09:00
chicpro d0e368fe2a sca 필터링 코드 수정 2016-01-21 16:00:54 +09:00
chicpro d2785543b4 Merge branch 'master' into kisa 2016-01-21 15:59:09 +09:00
chicpro 9df86d771e sca 필터링 코드 수정 2016-01-21 15:58:32 +09:00
chicpro 714d64afb6 Reflected XSS 취약점(16-036) 수정 2016-01-20 16:23:38 +09:00
chicpro f3abd57925 XSS 취약점(15-727) 수정 2016-01-20 14:51:16 +09:00
chicpro e9023340dd XSS 취약점(16-060) 수정 2016-01-20 14:46:13 +09:00
chicpro 43f4b2c5fb XSS 취약점(16-059) 수정 2016-01-20 14:29:32 +09:00
chicpro 5185f0c12a 5.1.12 버전변경 2016-01-20 10:03:25 +09:00
chicpro cd72e1c06b 5.1.12 버전변경 2016-01-20 09:59:57 +09:00
chicpro f5f4925d4e sca 필터링 코드 추가 2016-01-12 11:08:58 +09:00
chicpro 92210edc16 sca 필터링 코드 추가 2016-01-12 09:59:04 +09:00
chicpro bd3fd20630 게시글 등록 메일 이미지 출력 오류 수정 2016-01-07 10:55:25 +09:00
chicpro 5111f026e6 게시글 등록 메일 이미지 출력 오류 수정 2016-01-06 09:05:07 +09:00
chicpro 6797c85480 5.1.11 버전변경 2016-01-05 09:44:47 +09:00
chicpro 6327e2a5dc 버전변경 5.1.11 2016-01-05 09:32:06 +09:00
chicpro 2c9ff2bb52 모바일 그룹 정렬 필드 수정 2015-12-23 16:43:20 +09:00
chicpro 604f007a30 모바일 그룹 정렬 필드 수정 2015-12-23 16:39:13 +09:00
chicpro cc2b5c246d PHPMailer 5.2.14 버전 적용 2015-12-22 15:27:18 +09:00
chicpro 38596ca77f PHPMailer 5.2.14 버전 적용 2015-12-22 10:06:34 +09:00
chicpro c337bfdf88 5.1.10 버전변경 2015-12-21 11:00:46 +09:00
chicpro c0a2a13efe 5.1.10 버전변경 2015-12-21 10:53:59 +09:00
chicpro cb5603008a 분류 사용할 때 분류선택 여부 체크 추가 2015-12-14 11:08:39 +09:00
chicpro 35c2bac898 분류 사용할 때 분류선택 여부 체크 추가 2015-12-14 11:06:14 +09:00
chicpro 9d147b5e6c 태그 오류 수정 2015-12-10 16:33:15 +09:00
chicpro fb3f11a93f 태그 오류 수정 2015-12-10 15:17:34 +09:00
chicpro aabc82ee6c 5.1.9 버전변경 2015-12-07 11:24:10 +09:00
chicpro 40aff270cd 캡챠 폰트 변경 2015-12-07 11:22:39 +09:00
chicpro 8629b0418d 5.1.9 버전변경 2015-12-07 11:17:12 +09:00
chicpro af4e5ae9de 캡챠 폰트 변경 2015-12-07 11:16:44 +09:00
thisgunandchicpro 851a21a3c1 엑셀 라이브러리 php7 버젼에서 난 오류 수정 2015-11-30 17:33:38 +09:00
thisgun 1f951556fc 엑셀 라이브러리 php7 버젼에서 난 오류 수정 2015-11-30 17:27:40 +09:00
chicpro d5b7dd165d new.php XSS 취약점 수정 2015-11-27 14:25:01 +09:00
chicpro beb7a86f2a 토큰 오류 알림 후 이동 url 지정 2015-11-27 14:24:48 +09:00
chicpro 87446cfcb3 new.php XSS 취약점 수정 2015-11-27 11:47:43 +09:00
chicpro 943e9994c8 토큰 오류 알림 후 이동 url 지정 2015-11-25 14:05:11 +09:00
chicpro a6327afac4 5.1.8 버전변경 2015-11-25 09:55:20 +09:00
chicpro bd57ac57a5 5.1.8 버전변경 2015-11-25 09:50:56 +09:00
chicpro 30305d78dc 1:1문의 SMS 발신번호 사전등록제 관련 코드 수정 2015-11-25 09:48:17 +09:00
chicpro db3519a559 1:1문의 SMS 발신번호 사전등록제 관련 코드 수정 2015-11-25 09:45:36 +09:00
chicpro bb1fd4d3ab 관리자 CSRF 취약점 수정 2015-11-24 16:12:22 +09:00
chicpro 33e9d1e1d0 관리자 CSRF 취약점 수정2 2015-11-24 11:09:54 +09:00
chicpro 32d09cff7d 관리자 CSRF 취약점 수정 2015-11-23 18:22:10 +09:00
chicpro a75e00f9e0 모바일 게시판 제목 적용되도록 수정 2015-11-19 15:50:27 +09:00
chicpro 976c9d0f9b 모바일 제목 설정 적용되도록 수정 2015-11-18 12:03:15 +09:00
chicpro ad67fca323 파일면 변경으로인한 중복 파일 삭제 2015-11-17 16:39:16 +09:00
chicpro 614dce643c 캡챠 오류 수정 및 파일명 변경 2015-11-17 16:37:30 +09:00
sora90224 b261465599 기본 css 캡챠 기기에 맞게 수정 2015-11-17 16:05:01 +09:00
sora90224 67a0d97f60 캡챠 기기에 맞게 수정 2015-11-17 15:58:04 +09:00
sora90224 5ebd5632c4 Merge branch 'master' of github.com:gnuboard/g5 2015-11-17 14:41:54 +09:00
sora90224 141c9f8986 모바일 캡챠 2015-11-17 14:41:01 +09:00
chicpro dbb6ab7fdf 파일명 변경 2015-11-17 14:38:31 +09:00
chicpro 8cf09955fc 삭제된 캡챠 코드 복원 2015-11-17 14:38:16 +09:00
chicpro 19cde16194 누락된 캡챠 코드 복원 2015-11-17 14:00:07 +09:00
sora90224 6a7659b59e 모바일 검색 수정 2015-11-17 11:22:02 +09:00
chicpro c0cd45cc18 캡챠이미지 경로 오류수정 2015-11-17 09:07:12 +09:00
sora90224 31349a62b6 Merge branch 'master' of github.com:gnuboard/g5 2015-11-17 08:58:53 +09:00
sora90224 d8995d15f7 캡챠 수정 2015-11-17 08:58:19 +09:00
chicpro f3e7dbbb43 5.1.7 버전 변경 2015-11-16 16:45:37 +09:00
chicpro 2f822d4ee4 5.1.7 버전변경 2015-11-16 16:41:57 +09:00
chicpro 5247359e39 오타 수정 2015-11-16 16:39:09 +09:00
chicpro 02cfe7a453 오타 수정 2015-11-16 16:37:51 +09:00
chicpro 4ed4938cf1 캡챠 및 회원가입 값체크 개선 2015-11-16 16:36:04 +09:00
chicpro 8ea57846fa Merge branch 'master' of github.com:gnuboard/g5 2015-11-16 16:32:22 +09:00
sora90224 f704fd7ea4 캡챠 수정 2015-11-16 16:31:58 +09:00
chicpro bb3167d5c4 Merge branch 'master' of github.com:gnuboard/g5 2015-11-16 16:28:43 +09:00
sora90224 235f196152 캡챠 수정 2015-11-16 16:27:57 +09:00
chicpro adbc9b1a22 Merge branch 'master' of github.com:gnuboard/g5 2015-11-16 16:25:11 +09:00
sora90224 cd445a2acd 캡챠 수정 2015-11-16 16:23:56 +09:00
chicpro 210ee5285c 회원가입 값 체크 코드 수정 2015-11-16 15:57:32 +09:00
chicpro 644250f3f3 캡챠 노이즈 추가 2015-11-16 14:01:03 +09:00
chicpro 158d9040d2 접속자 Browscap 적용 기능 개선 2015-11-13 11:23:14 +09:00
chicpro 34c633ebb9 사용하지 않는 함수 삭제 2015-11-12 18:12:12 +09:00
chicpro c5da8c4a5a agent 없을 때 예외처리 추가 2015-11-12 17:55:52 +09:00
chicpro 6aeb32bf3f 안내 문구 및 코드 정리 2015-11-12 17:44:20 +09:00
chicpro 531817f553 Browscap 관련 코드 수정2 2015-11-12 17:38:19 +09:00
chicpro 80d72627b0 Browscap 관련 코드 수정 2015-11-12 16:49:32 +09:00
sora90224andchicpro aebfc70b10 불필요한 소스 삭제 2015-11-12 09:38:41 +09:00
sora90224 37e45d81be 불필요한 소스 삭제 2015-11-12 09:31:39 +09:00
chicpro 69ca119b10 업로드 파일명 코드 변경 2015-11-11 11:41:46 +09:00
chicpro 7324ab1060 업로드 파일명 코드 변경 2015-11-10 14:26:17 +09:00
chicpro be15f890c9 5.1.6 버전변경 2015-11-09 09:31:58 +09:00
chicpro 2c866ef2bb 5.1.6 버전변경 2015-11-09 09:28:33 +09:00
chicpro 9ed1ecfcb4 php7 대응 코드 수정 2015-11-04 17:12:28 +09:00
chicproandchicpro bc71241846 php7 대응 코드 수정 2015-11-04 17:11:52 +09:00
chicpro 4bcce2696c sql_set_charset 함수 코드 수정 2015-11-04 10:20:42 +09:00
chicpro e93cc1c920 sql_set_charset 함수 코드 수정 2015-11-04 10:10:55 +09:00
chicpro 7083bb0899 관리자 접속자 기능 개선 2015-11-03 15:35:31 +09:00
chicpro d77231ae1a 관리자 접속자 기능 개선 2015-11-02 13:41:31 +09:00
chicpro c7b1d0ee96 5.1.5 버전 변경 2015-11-02 09:54:40 +09:00
chicpro 5bd41ba2f4 5.1.5 버전 변경 2015-11-02 09:52:18 +09:00
chicpro ba52e4ab6f 회원가입 개인정보취급방침 안내 수정 2015-10-29 09:59:29 +09:00
chicpro b29af7898a 회원가입 개인정보취급방침 안내 수정 2015-10-29 09:54:16 +09:00
sora90224 03e129618d 기본 스킨 회원가입 개인정보동의 2015-10-29 09:16:45 +09:00
sora90224 f0ae5ffeef 모바일 회원가입개인정보약관 2015-10-29 09:09:57 +09:00
sora90224 a80e634776 모바일 회원가입 개인정보동의 2015-10-28 17:55:36 +09:00
sora90224 96612f11e1 회원가입 개입정보처리방침 수정 2015-10-28 17:14:47 +09:00
chicpro e47156ede6 게시판 복사 중 따옴표로 인한 오류 수정 2015-10-28 14:17:07 +09:00
chicpro c465c860ca 게시판 복사 중 따옴표로 인한 오류 수정 2015-10-28 14:15:09 +09:00
chicpro 36ef8e6447 5.1.4 버전변경 2015-10-26 10:08:02 +09:00
chicpro db1d1d26fc 5.1.4 버전변경 2015-10-26 10:05:47 +09:00
chicpro eb154efa24 누락된 닫음태그 추가 2015-10-20 12:02:20 +09:00
chicpro 6a2cbbe075 누락된 닫음태그 추가 2015-10-20 11:41:46 +09:00
chicpro 9bf15fdf32 htmlpurifier 4.7 버전 적용 2015-10-20 11:28:40 +09:00
chicpro 353a0d9409 XSS취약점관련 object 태그 허용설정 변경 2015-10-20 11:28:26 +09:00
chicpro 0535b6d26a post 값 필터링 코드 위치 변경 2015-10-20 11:26:30 +09:00
chicpro 7d132fdbfa post 값 필터링 코드 위치 변경 2015-10-20 11:19:21 +09:00
chicpro 0b66b11ae0 htmlpurifier 4.7 버전 적용 2015-10-20 11:06:15 +09:00
chicpro 8566183f0d XSS취약점관련 object 태그 허용설정 변경 2015-10-20 11:05:30 +09:00
chicpro 1fe4684537 MySQLi 지원 추가 및 SMS5 수정 2015-10-16 10:12:06 +09:00
chicpro f755f96cb1 버전 변경 2015-10-16 10:03:07 +09:00
chicpro 341f599840 발신번호 유효성 체크 추가 2015-10-15 11:38:13 +09:00
chicpro c1842b0155 sms5 발송 기능 수정 2015-10-15 11:17:36 +09:00
chicpro 8bbf5bcc1c mysqli 사용여부 상수 추가 2015-10-15 10:50:30 +09:00
chicpro 1febdfd7a8 불필요한 코드 및 파일 제거 2015-10-13 11:16:14 +09:00
chicpro 481174b1d2 sms5 회원간 문자전송 기능 제거 2015-10-13 11:13:38 +09:00
chicpro 724a15866c sql_error_info 함수 추가 2015-10-12 15:31:03 +09:00
chicpro f1c56fe70c MySQLi 지원 추가 2015-10-12 14:12:45 +09:00
chicpro e016679e67 트위터 공유 기능 url 수정 2015-10-08 16:53:38 +09:00
chicproandchicpro 5073f57167 썸네일 생성 코드 중 코드 오류 수정 2015-10-08 14:28:03 +09:00
chicpro 0803de998b 반응형 대비 캡챠 코드 수정 2015-10-06 09:49:15 +09:00
sora90224 e8dede3910 모바일 피시버젼 캡챠 2015-10-05 18:04:09 +09:00
chicpro 47433e4b42 모바일기기에서의 캡챠 처리를 위해 스타일 class 추가 2015-10-05 17:51:24 +09:00
sora90224 0618fd53dc 모바일 단축키 2015-10-05 12:07:01 +09:00
sora90224 799e0ee367 모바일 캡차 숫자음성 2015-10-05 11:49:43 +09:00
chicpro c29dfab48f 반응형 대비 캡챠 출력 코드 수정 2015-10-05 11:24:28 +09:00
chicpro 273983c87c 따옴표 관련 오류 수정 2015-10-02 17:57:46 +09:00
chicpro 44fc7a257b 따옴표로 인한 오류 수정 2015-10-02 17:50:57 +09:00
chicpro dc8fbb05ef 폼메일 이름 표시 오류 수정 2015-10-02 16:24:10 +09:00
chicpro 41ee457cc7 폼메일 이름 표시 오류 수정 2015-10-02 11:34:48 +09:00
chicpro b14facc9dc 주소 따옴표 출력 관련 코드 추가 2015-10-02 11:29:29 +09:00
chicpro 6e24064711 자기소개 페이지 따옴표로 인한 페이지 오류 수정 2015-10-02 11:08:47 +09:00
chicpro 94cc7639a9 XSS 취약점 수정 및 LMS 모듈 추가 2015-10-01 13:46:46 +09:00
chicpro 66d2401494 LMS 건당 가격 추가 2015-10-01 13:30:06 +09:00
chicpro 93d0220517 버전 변경 2015-10-01 13:16:36 +09:00
chicpro 311867f730 선택삭제 접근 제한 코드 추가 2015-10-01 13:15:26 +09:00
sora90224 b38cbf8ae5 Merge branch 'master' of github.com:gnuboard/g5 2015-09-30 11:22:36 +09:00
chicpro ba186254fd 충돌 수정 2015-09-25 15:23:16 +09:00
chicpro 517e5d117b 모바일 글쓰기 에디터 출력 코드 수정 2015-09-25 15:12:28 +09:00
chicpro 20302f8312 sms5 LMS 모듈 적용 2015-09-25 09:38:56 +09:00
sora90224 b5ccb5448b Merge branch 'master' of github.com:gnuboard/g5 2015-09-24 17:11:59 +09:00
chicpro 7d3b6d12c0 LMS 모듈 port 설정 코드 변경 2015-09-23 14:57:17 +09:00
chicpro fc2fb92d7b 변수명 변경 2015-09-23 10:09:25 +09:00
chicpro 795b5bdf55 아이코드 LMS 모듈 추가 2015-09-22 17:24:41 +09:00
chicpro e2aec15879 xss 취약점 수정 2015-09-22 10:49:56 +09:00
chicpro 3741c53e8b input 필드 따옴표 대응 코드 추가 2015-09-21 10:26:02 +09:00
chicpro 5b6d99a126 잘못된 수정된 부분 복구 2015-09-18 16:28:09 +09:00
chicpro 688bc53da9 XSS 취약점 및 특수문자 치환오류 수정 2015-09-18 16:25:01 +09:00
chicpro b456c0feae 1:1문의 XSS 취약점 수정 2015-09-18 14:17:24 +09:00
chicpro 69e068f80b 큰 따옴표 치환하도록 수정 2015-09-18 12:19:26 +09:00
chicpro d11f67ba2e 다운로드 때 한글파일명 오류 수정 2015-09-18 10:28:25 +09:00
chicpro 921fa1ec08 수정전 코드가 다시 적용된 오류 수정 2015-09-11 17:23:28 +09:00
chicpro 0a4a9e3f47 자동저장 기능을 추가된 에디터에서도 사용할 수 있도록 수정 2015-09-11 16:42:20 +09:00
chicpro 5cf2074338 Merge branch 'master' into patch 2015-09-11 13:58:12 +09:00
chicpro 0bad4aa1c0 LFI(Local File Inclusion) 취약점 수정 2015-09-08 15:47:13 +09:00
chicpro dfd0c5f758 모바일 캡챠 체크 스크립트 중복 호출 수정 2015-09-02 17:40:16 +09:00
chicpro 0bf1f545c1 master merge 충돌 수정 2015-09-02 17:24:07 +09:00
chicpro 85d00b6aca 테마설정 서브메뉴 코드 수정 2015-09-01 11:19:58 +09:00
chicpro b90672ae0e 아이핀 테스트 서비스 url 변경 2015-08-28 16:21:31 +09:00
chicpro 84009dc16c 관리자 글현황 추가 및 기타 오류 수정 2015-08-28 11:42:25 +09:00
chicpro ccd04e73b1 버전변경 2015-08-28 11:40:34 +09:00
chicpro 5321ce17d4 관리자 글현황 기능 추가 2015-08-28 11:31:45 +09:00
chicpro 9337c6d7aa 모바일 쪽지 리스트 내용표시 수정 2015-08-26 10:47:11 +09:00
sora90224 3b0744dcd3 Merge branch 'master' of github.com:gnuboard/g5 2015-08-26 10:23:22 +09:00
kaglaandchicpro 36e88a6a2d 썸네일의 오리지널 이미지 경로를 ori 로 넘기는 코드 추가 2015-08-26 10:04:06 +09:00
kaglaandchicpro 58902f97c4 escapeshellarg 함수에서 일부서버의 경우 빈값일때 '' 결과가 넘어오지 않는 버그가 있습니다. 2015-08-26 10:03:22 +09:00
chicpro e1ef69a0c4 sql_mode 체크 후 대응하도록 코드 수정 2015-08-26 10:03:03 +09:00
chicpro 46fa0f3cd0 SMS 사용 설정 적용되도록 수정 2015-08-26 10:02:43 +09:00
chicpro 1d3edaf62e parse_url 함수에 발생할 수 있는 오류 대응 코드 추가 2015-08-26 10:01:31 +09:00
chicpro adeb007cb0 parse_url 함수에 발생할 수 있는 오류 대응 코드 추가 2015-08-04 10:41:16 +09:00
chicpro 82c12f6d98 투표 결과 테마스킨 적용 오류 수정 2015-08-04 09:05:41 +09:00
chicpro 45e6bcf26f 투포 테마 스킨 적용 오류 수정 2015-08-04 09:00:32 +09:00
chicpro 6beff3a333 그누보드 5.1.0 테마 지원버전 2015-08-03 15:44:15 +09:00
chicpro 5ba1a602fe 버전변경 2015-08-03 15:36:15 +09:00
chicpro 7d4d645935 kcp 본인인증 up_hash 누락 오류 수정 2015-07-31 16:55:48 +09:00
chicpro 23f56520e2 오타 수정 2015-07-31 10:08:41 +09:00
chicpro ee8e184c10 베이직 테마 uri 변경 2015-07-30 10:57:22 +09:00
chicpro db83fba992 사용하지 않는 추가 레이아웃 설정 제거 2015-07-29 10:48:38 +09:00
chicpro c103b9e6f3 테마의 1:1문의 스킨 등의 설정 항목 추가 2015-07-29 09:50:04 +09:00
chicpro a757c437e2 테마 미리보기 예외처리 코드 추가 2015-07-28 18:14:36 +09:00
chicpro 49a07c4ea0 테마기능 추가 2015-07-28 16:01:03 +09:00
chicpro d49200c99e XSS 취약점 및 기타 오류 수정 2015-07-27 14:08:23 +09:00
chicpro 41a2f6803d 버전변경 2015-07-27 14:04:45 +09:00
thisgun d7e3d03c73 sms5 로그 기록 한글 깨짐 오류 수정 2015-07-24 15:57:29 +09:00
chicpro 4c999721bb XSS 취약점 수정 2015-07-24 09:53:40 +09:00
sungkyuchunandchicpro f5ad535387 empty_mb_name checks mb_id, not mb_name
empty_mb_name is a function checking name from user input form. But it
was not checked by empty_mb_name function. So I fix it.
2015-07-21 09:51:12 +09:00
sungkyuchunandchicpro faed6ac09a empty_mb_name checks mb_id, not mb_name
empty_mb_name is a function checking name from user input form. But it
was not checked by empty_mb_name function. So I fix it.
2015-07-21 09:48:45 +09:00
chicpro 9256a5618b 버전변경 2015-07-20 11:52:21 +09:00
chicpro f79ca0f232 버전변경 2015-07-20 11:47:54 +09:00
chicpro a52858fc6d XSS 취약점, 새 우편번호, 기타 오류 수정 2015-07-20 11:40:09 +09:00
sora90224 8da71f60ed 메일인증 메일변경 2015-07-20 10:51:12 +09:00
chicpro ecd4a337ff 이메일 재인증 메일 발송 오류 수정 2015-07-20 10:34:39 +09:00
chicpro 04d8d9b704 이메일 재인증 정보 로드 코드 위치 수정 2015-07-20 10:27:52 +09:00
chicpro 01bc89dd04 G5_LINK_COUNT 0으로 설정 때 오류 수정 2015-07-20 10:07:49 +09:00
chicpro 4d619286c3 우편번호 label 지정 오류 수정 2015-07-17 11:38:29 +09:00
chicpro 22a3c1c4db 새 우편번호 적용 2015-07-17 11:35:58 +09:00
chicpro b61dced93b 새 우편번호 적용 2015-07-17 11:35:27 +09:00
chicpro 346a049c18 Merge branch 'master' into patch 2015-07-17 10:23:49 +09:00
chicpro bc65502fe9 모바일 갤러리 스킨 검색 스타일 정리 2015-07-14 14:21:45 +09:00
iz4blueandchicpro aa1c155123 이미지 width 계산 이후 빠진 attributes 추가 2015-07-14 14:10:57 +09:00
iz4blueandchicpro 2ccc407397 이미지 width 계산 이후 빠진 attributes 추가 2015-07-14 14:10:00 +09:00
chicpro b2bfe11743 XSS 취약점 수정 2015-07-14 13:58:19 +09:00
chicpro 164944dd0c XSS 취약점 수정 2015-07-14 12:10:44 +09:00
chicpro 9356fdfaa8 팝업레이어 중복 쿼리 수정 2015-07-14 12:09:59 +09:00
chicpro 27cd6e6e5b 불필요한 코드 삭제 2015-07-14 12:04:04 +09:00
chicpro f74e8f7250 XSS 취약점 수정 2015-07-14 12:01:21 +09:00
chicpro aa140eb846 팝업레이어 중복 쿼리 수정 2015-07-13 17:20:00 +09:00
chicpro d5bd57cdfa 그누보드 5.0.40 수정내역 적용 및 XSS 취약점 수정 2015-07-13 13:43:46 +09:00
chicpro 54aa905699 버전변경 2015-07-13 10:54:32 +09:00
chicpro 2fc315c51e 중복 urlencode 오류 수정 2015-07-09 16:25:20 +09:00
chicpro 45244de78e XSS 취약점 수정 2015-07-09 13:46:17 +09:00
chicpro 3bbbe96319 XSS 및 Blind SQL Injection 취약점 수정 2015-07-07 13:50:38 +09:00
chicpro 99137d8fef 버전변경 2015-07-07 13:47:45 +09:00
chicpro 0735847508 Merge branch 'master' of github.com:gnuboard/g5 into g5 2015-07-03 17:16:00 +09:00
chicpro e8ea8c8da3 PHP short_open_tag=0 에러 방지 2015-07-03 17:15:27 +09:00
chicpro 78169b372c Merge branch 'merge-patch' 2015-07-03 17:08:55 +09:00
chicpro a79a926221 Merge https://github.com/iz4blue/gnuboard5 into merge-patch 2015-07-03 17:08:21 +09:00
chicpro f72ea8774e Merge branch 'master' into merge-patch 2015-07-03 17:05:45 +09:00
iz4admin 3c9b72d17a PHP short_open_tag=0 에러 방지 2015-07-03 16:53:04 +09:00
chicpro d50d618e01 Blind SQL Injection 취약점 수정 2015-07-03 11:40:54 +09:00
chicpro 02310f2319 XSS 취약점 수정 2015-07-02 14:09:58 +09:00
chicpro f23f0d259c Merge branch 'master' into mbleave 2015-07-02 09:31:15 +09:00
chicpro 8821583e8f 그누보드 5.0.38 수정내역 적용 및 CSRF 취약점 수정 2015-06-29 10:36:44 +09:00
chicpro 327369a761 버전변경 2015-06-29 10:21:26 +09:00
chicpro c56498a529 CSRF 취약점 수정 2015-06-29 10:20:59 +09:00
chicpro 16114cb3bd Merge branch 'master' into mbleave 2015-06-25 09:26:40 +09:00
chicpro 808ac0f0e6 PHP_SELF 를 SCRIPT_NAME 으로 변경 2015-06-24 17:02:29 +09:00
chicpro 6e90622328 그누보드 5.0.37 수정내역 적용 및 XSS 취약점 수정 2015-06-23 11:12:23 +09:00
chicpro b4b24aadfd PHP_SELF 를 이용한 XSS 취약점 수정 2015-06-23 11:01:07 +09:00
chicpro cbe9c53262 버전변경 2015-06-22 17:27:16 +09:00
chicpro 4c2591af36 xss 관련 태그 제거 함수 추가 2015-06-19 09:48:28 +09:00
chicpro 1b8069eec8 cf_include_head 설정 적용 코드 위치 변경 2015-06-18 17:45:00 +09:00
chicpro 52a03dadbe Merge branch 'master' of github.com:gnuboard/g5 2015-06-18 17:33:28 +09:00
chicpro 4d9e6be394 XSS 취약점 수정 2015-06-18 17:33:21 +09:00
kagla cc91e49f7b Merge branch 'master' of github.com:gnuboard/g5 2015-06-18 15:49:09 +09:00
kagla 605933c516 lo_url 의 XSS 취약점 해결 2015-06-18 15:49:04 +09:00
chicpro 7ed4c7fac9 탈퇴 회원 중복 삭제 오류 수정 2015-06-17 14:30:47 +09:00
chicpro d5aca5ab93 그누보드 5.0.36 수정 내역 및 XSS 취약점 수정 2015-06-11 09:54:48 +09:00
chicpro 7224f97781 버전변경 2015-06-11 09:52:12 +09:00
chicpro 1a2f4251ed Reflected XSS 취약점 수정 2015-06-10 13:54:53 +09:00
chicpro ab30d5981d 모바일 회원탈퇴 비밀번호 확인 문구 변경 2015-06-05 11:53:42 +09:00
chicpro 458aecdf7b url 변수 체크 코드 수정 2015-06-05 11:53:27 +09:00
chicpro 7110ccc12f 그누보드 5.0.35 수정내역 적용 2015-06-01 09:38:12 +09:00
chicpro 78bcc97591 버전 수정 2015-05-29 10:57:19 +09:00
chicpro 029444f7be 불필요한 코드 제거 2015-05-28 18:11:16 +09:00
thisgun d3fdc11e56 Merge branch 'master' of github.com:gnuboard/g5 2015-05-28 18:05:39 +09:00
thisgun b5dd51a579 다음 우편 주소 버젼 v2로 변경 2015-05-28 18:04:48 +09:00
chicpro 1e13e8f8a3 check_url_host 함수 코드 수정 2015-05-28 17:10:14 +09:00
sora90224 c9b8d1a11a 부가서비스 아사달 제거 2015-05-27 17:55:42 +09:00
chicpro 5932aefdb0 서비스 신청 url 변경 2015-05-27 13:47:33 +09:00
chicpro 330e656544 그누보드5.0.34 수정내역 적용 2015-05-19 13:59:00 +09:00
chicpro 53e921dc7f check_url_host 함수 수정 2015-05-18 17:31:22 +09:00
chicpro 0835753299 안전하지 않는 사이트 리다이렉션 취약점 수정 2015-05-18 17:29:01 +09:00
chicpro d701f840db AGENT를 이용한 XSS 취약점 수정 2015-05-18 14:37:02 +09:00
chicpro 08f7c21fc2 사용하지 않는 코드 삭제 2015-05-15 16:47:49 +09:00
chicpro 18fc8ec6d1 오타 및 회원가입폼 스타일 수정 2015-05-14 09:14:37 +09:00
chicpro 5dfdcb1d85 경로 오타 수정 2015-05-14 08:49:04 +09:00
chicpro 049b5d8039 #46 회원가입폼 label 너비 변경 2015-05-14 08:47:41 +09:00
chicpro 3923dc9a33 오타 수정 2015-05-13 17:59:55 +09:00
chicpro 01a31bb18f Magic Hash 관련 비밀번호 체크 코드 수정 2015-05-13 17:10:08 +09:00
chicpro b6d84674f6 비밀번호 체크관련 코드 수정 2015-05-13 16:39:13 +09:00
chicpro 2705b9312c 그누보드5.0.33 수정내역 적용 2015-05-13 11:57:04 +09:00
chicpro 9cb8f73738 그누보드5 버전 정보 상수 추가 2015-05-13 11:51:22 +09:00
chicpro cb1b15dbcc Magic Hash 취약점 오류 수정 2015-05-13 11:33:28 +09:00
kagla 6020933f6d mb_tel 전화번호에 <!-- 코드가 있다면 관리자 회원목록에서 제대로 출력되지 않는 버그 수정 ... 팔팔이님 2015-05-13 09:37:12 +09:00
chicpro ae583aea1e #44 메뉴설정에서 따옴표로 인한 오류 수정 2015-05-08 15:17:07 +09:00
sora90224 8cd37c5c61 관리자 부가서비스 키워드광고 빠진 디자인 2015-05-06 14:47:39 +09:00
chicpro 36427eb4b7 부가서비스 페이지 수정 2015-05-06 13:42:11 +09:00
chicpro 1e6f22ce59 투표시작일 표기 수정 2015-05-06 10:54:47 +09:00
thisgun 8584d710c0 임시 저장된글 자바스크립트 조건문 일부 수정 2015-04-29 10:36:41 +09:00
chicpro 90440786b8 1:1문의 하단 내용 출력 오류 수정 2015-04-27 09:30:12 +09:00
chicpro f97a26c6cb 구글 짧은 주소 오류 수정 2015-04-13 14:23:18 +09:00
chicpro 8d342c099e 구글 짧은 주소 오류 수정 2015-04-13 14:19:28 +09:00
chicpro 9fd14cfc17 그누보드 5.0.32 수정내역 적용 2015-04-09 09:16:36 +09:00
thisgun bed3d9982c SMS5 회신 번호 체크하는 자바스크립트 정규식 추가 2015-04-08 11:54:59 +09:00
chicpro 588a1a7c9d sms5 sql injection 취약점 수정 2015-04-07 09:50:14 +09:00
chicpro e28acc8495 관리자 게시판 리스트 정렬 필드 용어 오류 수정 2015-03-30 09:21:09 +09:00
chicpro 3ee5fa6d86 union이 포함된 쿼리 사용할 수 있도록 수정 2015-03-23 09:00:46 +09:00
chicpro 2717346e9d 세미콜론 빠진 것 추가 2015-03-13 11:26:25 +09:00
chicpro a6a2183c7d 그누보드 5.0.31 수정내역 적용 2015-03-10 13:47:21 +09:00
chicpro 31d5e384e2 ie6 스타일 오류 수정 2015-03-10 13:37:54 +09:00
Mabinandchicpro 13cf64cf2e RSS 헤더 오류 수정 (phpxml -> xml) 2015-03-04 17:21:48 +09:00
chicpro 4bd82f7b01 Merge branch 'master' of github.com:gnuboard/g5 into g5 2015-03-04 17:20:18 +09:00
Mabin 4b9369599c RSS 헤더 오류 수정 (phpxml -> xml) 2015-03-04 16:05:18 +09:00
chicpro efe7855776 gif 썸네일 생성 때 발생할 수 있는 오류 수정 2015-03-03 16:46:35 +09:00
chicpro dca1e67105 도메인에 port 있을 때 대응코드 추가 2015-03-03 09:50:00 +09:00
chicpro 6695abda2f iOS8 환경에서 접속자 수 표시 오류 수정 2015-02-23 16:16:55 +09:00
chicpro ae3601af92 사용하지 않는 기능 제거 2015-02-23 14:19:14 +09:00
chicpro b25ec93d14 sql 에러 표시하지 않도록 기본 설정값 변경 2015-02-23 11:30:41 +09:00
chicpro bd557fbdb4 쿼리문에서 따옴표 제대로 제거되지 않는 오류 수정 2015-02-23 11:02:48 +09:00
chicpro b477c2e720 XSS 취약점 패치 및 5.0.30버전 수정내역 적용 2015-02-09 09:57:32 +09:00
chicpro 4b8485b087 Merge branch 'master' of github.com:gnuboard/g5 into g5 2015-02-09 09:55:54 +09:00
chicpro 89dd109a18 게시글 리스트 검색 maxlength 변경 2015-02-05 10:07:46 +09:00
chicpro 846c4500f7 검색 때 게시글 카운트 속도 개선 2015-02-05 09:51:03 +09:00
chicpro 445da5447d XSS 취약점 수정 2015-02-05 09:43:58 +09:00
chicpro 78afba5c29 레이아웃 include 코드에 G5_PATH 상수 추가 2015-02-04 09:22:19 +09:00
chicpro 46c6001c9d 게시글 이동 때 정렬 초기화되는 문제 수정 2015-02-02 18:09:57 +09:00
chicpro 7ef2029a31 그누보드 5.0.29 수정내역 적용 2015-02-02 13:35:15 +09:00
chicpro 3b365d330a Merge branch 'master' of github.com:gnuboard/g5 into g5 2015-02-02 13:33:23 +09:00
chicpro a9bdc255df gitattributes 추가 2015-02-02 13:24:11 +09:00
thisgun 4fb32fad37 SMS5에서 그룹보기 페이지 ajax 파라미터 동작 오류 수정 2015-01-30 13:55:24 +09:00
chicpro b34d31f6a7 경로 코드 오류 수정 2015-01-28 10:35:36 +09:00
chicpro 78d87038aa 초기화면 등의 파일 설정 기능 수정 2015-01-28 10:01:36 +09:00
chicpro be27a72d86 본인확인 사용안함일 때 인증 설정 초기화되도록 수정 2015-01-28 08:54:11 +09:00
chicpro aa86158caf head.sub.php 파일 등을 사용자가 설정할 수 있도록 상수 추가 2015-01-23 09:48:36 +09:00
chicpro de00ac1622 1:1문의 모바일 스킨 적용 오류 수정 2015-01-22 17:51:24 +09:00
chicpro ed41272e81 기본환경 설정 포인트 입력필드 크기 변경 2015-01-22 09:26:38 +09:00
chicpro 7af0db9631 비밀번호 확인없이 회원정보 수정할 수 있는 오류 수정 2015-01-15 15:16:02 +09:00
chicpro 1cd8d590b2 mb_tel 필드를 이용한 xss 취약점 수정 2015-01-14 09:13:22 +09:00
chicpro 799ba3bc46 Merge branch 'master' of github.com:gnuboard/g5 into g5 2015-01-14 09:12:22 +09:00
chicpro 60f378839c mb_tel 필드를 이용한 xss 취약점 수정 2015-01-12 18:09:48 +09:00
chicpro 82a55c96a5 관리자 부가서비스 페이지 추가 2015-01-12 15:00:04 +09:00
chicpro 72fa34a5cf Merge branch 'master' of github.com:gnuboard/g5 into g5 2015-01-12 14:58:54 +09:00
chicpro e7521f0246 관리자 부가서비스 페이지 추가 2015-01-07 18:06:41 +09:00
chicpro bb4dff1caa get_cookie 함수에 unescape 추가 2015-01-07 13:58:34 +09:00
chicpro 489c859d3e 그누보드 5.0.26 수정내역 적용 2015-01-05 10:18:00 +09:00
chicpro 7312385dd6 Merge branch 'master' of github.com:gnuboard/g5 into g5 2015-01-05 10:16:59 +09:00
chicpro 8bd4f8b23c mb_icon 필드 관련 코드 삭제 2014-12-30 09:00:22 +09:00
chicpro e80f294e80 kcp 휴대폰 인증 64비트 시스템에서의 오류 수정 2014-12-29 15:06:11 +09:00
chicpro b57e70ad30 스크랩 로그인 안내 후 이동 url 오류 수정 2014-12-29 10:11:26 +09:00
chicpro 9ac651afd5 음성 캡차 파일 삭제 코드 수정 2014-12-26 13:01:53 +09:00
chicpro d5db75a4c9 입력금지 메일 도메인 체크 코드 수정 2014-12-18 10:11:16 +09:00
chicpro 00a8dee744 Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-12-18 10:08:25 +09:00
chicpro 63270d9a4e 입력 금지 메일 도메인 체크 코드 수정 2014-12-18 10:04:40 +09:00
chicpro f1242397be Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-12-18 09:50:44 +09:00
chicpro 7957f8553c 입력 금지 메일 도메인 체크 코드 수정 2014-12-18 09:45:57 +09:00
chicpro db2ef39126 사용하지 않는 파일 삭제 2014-12-17 10:15:35 +09:00
chicpro 87adbf0f8d 그누보드 5.0.25 보안패치 및 수정내역 적용 2014-12-17 10:14:29 +09:00
chicpro c4967cf252 Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-12-17 10:13:04 +09:00
chicpro af3da468ee 게시글 복사 때 따옴표로 인해 발생하는 오류 수정 2014-12-17 09:54:42 +09:00
chicpro a722af88e0 REQUEST_URI를 이용한 SQL Injection 오류 수정 2014-12-16 16:07:00 +09:00
chicpro 525117f3fd 가입금이 이메일 중 숫자도메인 체크되지 않는 오류 수정 2014-12-16 09:36:46 +09:00
chicpro f35bf05726 사용하지 않는 파일 삭제 2014-12-11 09:24:26 +09:00
chicpro 01902c981c 게시판 복사 때 실명사용 설정 복사되도록 수정 2014-12-10 09:30:34 +09:00
chicpro 244b8ae819 보안패치 및 그누보드 5.0.24 수정내역 적용 2014-12-08 11:23:01 +09:00
chicpro 72489b0979 Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-12-08 11:21:30 +09:00
chicpro fa793a828b ckeditor4 배포판에서 제외 2014-12-08 11:09:06 +09:00
chicpro d2a1501e82 ckeditor 제외 2014-12-08 11:07:01 +09:00
chicpro 892c67bae5 게시글 정렬 기본값 지정 2014-12-08 09:54:49 +09:00
chicpro fe35a8c782 SQL Injection 취약점 수정 2014-12-05 17:13:10 +09:00
chicpro b608efa5da 게시글 작성 때 필터링 대소문자 구분하지 않도록 수정 2014-12-05 09:29:13 +09:00
chicpro 8c0b7e45de 오타 수정 2014-12-03 10:07:58 +09:00
chicpro 7ea9d2e1d2 그누보드 5.0.23 수정 내역 적용 2014-12-02 10:16:35 +09:00
chicpro 3b7e42c280 Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-12-02 10:14:50 +09:00
chicpro c6199fa00d 내용관리 모바일 내용 및 스킨설정 기능 추가 2014-11-21 11:26:01 +09:00
chicpro e3db3728f9 배열 키에 따옴표 추가 2014-11-18 09:18:55 +09:00
chicpro f3cd3a4e24 conv_subject 함수 내 코드 적용 순서 변경 2014-11-14 09:46:28 +09:00
chicpro 634d85c763 음성 캡챠 파일 삭제 코드 변경 2014-11-12 17:35:42 +09:00
chicpro 18e09702f3 get_cookie 함수 md5 중복 호출 수정 2014-11-12 17:16:07 +09:00
SIR 4ee0fd5c54 곱슬최씨님이 신고한 url_auto_link에 특수문자 ] 가 포함되는 현상 해경 2014-11-12 15:01:29 +09:00
thisgun a752574f66 스마트 에디터 _generateAutoLink 함수 수정 및 link 오류 수정 2014-11-12 11:15:20 +09:00
chicpro f2d574fab5 모바일 최근게시글 링크 이동하지 않는 오류 수정 2014-11-10 17:42:49 +09:00
chicpro 2cf6a67a53 kcp 휴대폰인증 리눅스 64비트 실행 환경 추가 2014-11-10 16:43:34 +09:00
chicpro 3857ab22d3 get_cookie 함수에서 md5 함수 중복 호출 수정 2014-11-10 13:11:53 +09:00
chicpro de8af9c9f1 모바일에서 폰트 리사이즈 유지되도록 수정 2014-11-10 09:31:14 +09:00
chicpro cc12f9863e 오타 수정 2014-11-07 14:12:29 +09:00
chicpro 7dc293a147 그누보드 5.0.22 보안패치 적용 2014-11-07 09:26:16 +09:00
chicpro a5f671fa76 Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-11-07 09:24:46 +09:00
chicpro c6fe8397a7 타인의 회원아이콘을 삭제할 수 있는 오류 수정 2014-11-05 09:39:57 +09:00
chicpro d3154bd94f 오타 수정 2014-10-30 18:28:02 +09:00
chicpro 097903d0ce 그누보드 5.0.21 보안패치 및 기타 오류 수정 2014-10-28 13:17:24 +09:00
chicpro 3639509a69 Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-10-28 13:16:13 +09:00
chicpro 4c8349fbb5 오타 수정 2014-10-28 10:16:34 +09:00
chicpro fcf518353c wr_link를 이용한 sql injection 대응 코드 추가 2014-10-28 10:15:44 +09:00
chicpro e7c1835b19 1:1문의 설정 가져오는 코드 위치 변경 2014-10-27 18:20:54 +09:00
chicpro 5f12b870e6 오타 수정 2014-10-27 15:46:28 +09:00
chicpro 9ef65f3f25 경고 알림 후 이동 경로 추가 2014-10-27 15:31:25 +09:00
chicpro c6552d0b60 1:1문의 설정 중복 호출 수정 2014-10-27 10:46:57 +09:00
chicpro 78fa0cb41b 파일 업로드 보안 오류 수정 2014-10-27 10:43:46 +09:00
chicpro d98c8242af 1:1문의 글삭제 오류 수정 2014-10-27 10:08:00 +09:00
chicpro 4ae4cc2169 wr_link 값에 substr 적용 무시되는 오류 수정 2014-10-27 10:00:15 +09:00
chicpro 9ac6bdbeaa class 지정 오류 수정 2014-10-27 09:52:45 +09:00
chicpro 8fc6f81f8d this.ref를 this.href로 수정 2014-10-27 09:47:49 +09:00
chicpro 37b0fa5788 SQL Injection 및 관리자가 게시글 수정때 정보 반영되도록 수정 2014-10-24 11:02:39 +09:00
chicpro 9a4363a6a5 Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-10-24 11:02:03 +09:00
chicpro 50c42776e7 SQL Injection 및 관리자가 게시글 수정때 정보 반영되도록 수정 2014-10-24 11:01:34 +09:00
chicpro ad78efcdaa 회원 홈페이지를 이용한 SQL Injection 오류 수정 2014-10-23 09:25:33 +09:00
chicpro fb8b63cffa Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-10-23 09:24:07 +09:00
chicpro 36e6d53374 회원 홈페이지를 이용한 SQL Injection 오류 수정 2014-10-23 09:21:59 +09:00
chicpro 352deb6133 보안패치 및 그누보드 5.0.20 수정사항 적용 2014-10-22 13:16:44 +09:00
chicpro 9cc14af668 Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-10-22 13:15:29 +09:00
chicpro 46f484461f DHTML 에디터 관련 코드 수정 2014-10-20 10:33:18 +09:00
chicpro 7863d42834 설문조사 기타의견 XSS 공격 대응코드 추가 2014-10-20 09:42:08 +09:00
thisgun 743c206bc7 올바르지 않은 이름입력으로 인한 sms5 페이지 오류 코드 수정 2014-10-17 13:49:04 +09:00
chicpro 9691405fd4 관리자 XSS 대응 코드 추가 2014-10-17 13:22:26 +09:00
chicpro 12f9a05106 XSS 및 SQL Injection 오류 수정 2014-10-17 11:15:36 +09:00
chicpro be8c7e3ee5 회원가입시 올바르지 않은 이름입력으로 인한 가입완료 페이지 오류 수정 2014-10-17 10:03:03 +09:00
chicpro f3b6f58344 게시글 및 댓글 작성시 올바르지 않은 이름입력으로 인한 new 페이지 오류 수정 2014-10-17 09:57:10 +09:00
thisgun f65540dd19 FAQ 관리 페이지 코드 수정 2014-10-15 17:00:07 +09:00
chicpro 6fb06a0564 오타 수정 2014-10-15 16:03:57 +09:00
thisgun acbd99f2ed 내용관리 관리자 쓰기 페이지 코드 수정 2014-10-15 10:20:49 +09:00
chicpro 541cb5244d get_editor_image 함수에서 대소문자 구분하지 않도록 수정 2014-10-14 09:02:38 +09:00
chicpro 1355c7ef57 그누보드 5.0.19 수정사항 적용 2014-10-13 15:13:08 +09:00
chicpro 9214b4a5da Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-10-13 15:11:09 +09:00
chicpro 9cbff6835b sfl에 mb_id가 있으면 인기 검색어 기록하지 않도록 수정 2014-10-13 13:12:43 +09:00
chicpro 8818f7b7e5 모바일 회원 아이콘 경로 변수 수정 2014-10-13 09:45:14 +09:00
chicpro 8fc0bc98f3 #39 사용자화면 강제 설정 기능 추가 2014-10-10 14:11:57 +09:00
thisgun 021048d95e Merge branch 'master' of github.com:gnuboard/g5 2014-10-08 10:40:02 +09:00
thisgun aa46c9fb27 sms5 문자 보내기 오류 코드 수정 2014-10-08 10:39:51 +09:00
chicpro 3fe9bfc719 임시저장글 삭제 오류 수정 2014-10-07 17:56:18 +09:00
chicpro 4ca027de06 폼메일 발송 오류 수정 및 임시 파일 삭제코드 추가 2014-10-02 11:31:13 +09:00
chicpro 3fa9aec9f2 그누보드 5.0.18 수정사항 적용 2014-09-29 15:56:30 +09:00
chicpro bc79530c52 Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-09-29 15:51:56 +09:00
chicpro aecc1adbaf faq 스킨 필드 추가 2014-09-29 15:38:28 +09:00
chicpro 582de7c18c Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-09-29 13:31:22 +09:00
chicpro f6a1fa94d3 회원 삭제 때 회원자료 삭제하도록 member_delete 함수 수정 2014-09-26 15:32:56 +09:00
chicpro 51c3f8a378 투명 gif 썸네일 생성 추가 2014-09-25 17:00:32 +09:00
chicpro 05b40efddf 관리자 로그인 알림 후 이동경로 수정 2014-09-25 16:59:06 +09:00
chicpro 7f379482a8 파일 설명을 이용한 XSS 오류 수정 2014-09-25 15:46:07 +09:00
chicpro 06eb66840a faq 기본 스킨설정 누락 수정 2014-09-22 09:47:22 +09:00
chicpro 5dad177d3e lguplus 본인확인 신청페이지 링크 변경 2014-09-19 09:44:14 +09:00
chicpro 4c083b6471 기능개선 및 라이센스 기타오류 수정 2014-09-16 10:33:19 +09:00
chicpro 5077a3d43f Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-09-16 10:30:21 +09:00
chicpro dae6437421 라이센스 파일 변경 2014-09-16 10:22:15 +09:00
chicpro 68c08ba9eb 회원가입 완료 페이지 안내 문구 수정 2014-09-15 09:23:57 +09:00
chicpro 71b15b08eb SMS5 새창 이름 변경 2014-09-11 09:53:42 +09:00
chicpro afd6447581 <?를 <?php 로 변경 2014-09-11 09:49:16 +09:00
chicpro e923fb045e 구글 짧은 주소를 생성하지 못했을 때 대응코드 추가 2014-09-05 15:07:05 +09:00
chicpro 5cb4415032 이전 다음 검색 버튼 출력되지 않는 오류 수정 2014-09-03 11:16:06 +09:00
thisgun 7b1a7fd20e 다음 주소 사용 페이지 button으로 변경 및 win_zip함수 변경 2014-08-28 17:44:48 +09:00
chicpro 38bda21f84 bin2hex 함수를 md5로 변경 2014-08-25 15:48:36 +09:00
chicpro 3997bebb76 보안서버 접속시 jquery ui 로딩 오류 수정 2014-08-25 10:36:18 +09:00
chicpro 916cd86330 다음주소 API 기본코드로 변경 및 불필요한 파일 삭제 2014-08-22 15:21:23 +09:00
chicpro 9a4b3034ea Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-08-22 15:17:10 +09:00
thisgun f26a418a87 다음 주소 js 상수명을 G5_POSTCODE_JS로 변경 2014-08-22 15:00:05 +09:00
thisgun 729e7ef6d5 다음 주소 api 수정된 것 적용 및 zip.php 관련된 코드 삭제 2014-08-22 14:04:44 +09:00
chicpro 09f0530d57 add_javascript 함수 추가 2014-08-22 10:30:08 +09:00
chicpro 6ef722e7ea 닉네임 금지단어 체크 코드 추가 2014-08-22 09:54:10 +09:00
chicpro 5a37e8243d 다음주소API 관련 스크립트 코드 및 기타 코드 수정 2014-08-20 16:55:18 +09:00
chicpro c7c112ee71 Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-08-20 16:53:11 +09:00
chicpro 42682120ef Merge branch 'master' of github.com:gnuboard/g5 2014-08-20 16:19:47 +09:00
chicpro 6bb27c3b24 하단 PC 모바일 보기 버튼 링크 수정 2014-08-20 16:18:40 +09:00
thisgun dd95b638e8 daum 도로명 주소 관련 zip.js 수정 2014-08-20 16:09:09 +09:00
thisgun cb6fe2d32c daum 도로명 주소 적용 스킨 수정 및 zip.js 로 분리 2014-08-20 15:21:06 +09:00
chicpro a6bd17fa01 print_address 함수 코드 수정 2014-08-20 10:29:53 +09:00
chicpro e891791f86 불필요한 파일 삭제 2014-08-19 14:55:42 +09:00
chicpro 59468d1312 다음 주소 API 적용 및 기타 수정 2014-08-19 14:52:47 +09:00
chicpro 4ddc6294e1 Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-08-19 14:49:50 +09:00
chicpro 43fae4ed50 불필요한 파일 삭제 2014-08-19 14:47:55 +09:00
chicpro 916f079ecc 회원정보찾기 인증 URL에 들어가는 난수 개선 - 성기진님 제공 코드 2014-08-19 14:37:57 +09:00
chicpro 426004e795 주소입력관련 자바스크립트 코드 수정 2014-08-19 11:49:15 +09:00
chicpro 09f68b767c 주소 출력함수 수정 2014-08-18 13:24:22 +09:00
chicpro c3a7da959e minlength 속성 체크하도록 wrest.js 수정 2014-08-14 17:02:23 +09:00
chicpro 5068b081c9 차단 회원 체크 코드 추가 2014-08-14 10:35:52 +09:00
chicpro 19054ea5f2 주소입력 변경으로 인한 코드 추가 2014-08-14 09:21:35 +09:00
chicpro 1ecc87ab26 투명 png 썸네일 생성 기능 추가 2014-08-13 18:06:29 +09:00
chicpro b7e947b915 사용하지 않는 파일 삭제 2014-08-13 17:06:46 +09:00
thisgun 3eed685906 daum 주소 api 적용중 불필요한 코드 제거 2014-08-13 16:58:24 +09:00
thisgun 80a52d8c3c daum 주소 api 적용 2014-08-13 16:12:13 +09:00
chicpro ec8f2368da 회원가입폼에 minlength 속성 추가 2014-08-12 09:41:46 +09:00
chicpro fdc93c1c2d 5.0.13 버전 패치 적용 2014-08-11 15:01:27 +09:00
chicpro b89592b84f Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-08-11 14:59:18 +09:00
chicpro 2d5f24b4de 스킨 표시 코드 수정 2014-08-11 11:43:33 +09:00
chicpro a82579dc60 페이스북 샘플 파일 삭제 2014-08-11 11:38:39 +09:00
chicpro 4d4113fccc 스킨 표시 코드 수정 2014-08-11 11:36:43 +09:00
chicpro 1cc13235cf xss 관련 태그 제거 함수 추가 2014-08-08 13:38:42 +09:00
thisgun a1e11d9521 sms5 icode를 미선택시 사용하는 경우 오류처리및 common.php에 faq 스킨 경로 추가 #35 2014-08-08 11:16:56 +09:00
chicpro e72c78cd7f colspan 관련 코드 수정 및 삭제 2014-08-08 09:11:27 +09:00
chicpro 37e3424782 아이코드 사용자정보 함수 추가 2014-08-07 15:45:30 +09:00
chicpro 768ef23f29 minlength 관련 코드 수정 2014-08-07 14:45:44 +09:00
chicpro 64cf90313d 접근 ip 체크 패턴 수정 2014-08-07 14:01:05 +09:00
chicpro ca7b488f4d 전체검색 결과 오류 수정 2014-08-07 09:42:30 +09:00
chicpro bcab73a2f5 minlength 체크 오류 수정 2014-08-05 17:54:45 +09:00
chicpro 79d7a690f4 XSS 및 SQL Injection 보안 취약점 수정 2014-07-31 17:01:06 +09:00
chicpro 86a7dfeba5 Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-07-31 17:00:08 +09:00
chicpro 84e4f6fee8 post로 선언된 전역 변수 unset 코드 추가 2014-07-31 16:13:26 +09:00
chicpro 4d115fd895 XSS 및 SQL Injection 취약점 수정 2014-07-31 15:48:34 +09:00
chicpro 3100f342c3 댓글 이름 출력에 get_text 함수 적용 2014-07-31 14:42:05 +09:00
chicpro 41d9638ce6 자동 로그인 아이디 대소문자 구분해 체크하도록 수정 2014-07-31 14:41:41 +09:00
chicpro 0742c5f81b 댓글 wr_name 이용한 XSS 보안 취약점 수정 2014-07-30 18:05:52 +09:00
chicpro 83eab8e5c5 Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-07-30 18:04:20 +09:00
chicpro 8d2d10b15a Merge branch 'master' of github.com:gnuboard/g5 2014-07-30 17:49:01 +09:00
chicpro eb30cf84b4 댓글 wr_name을 이용한 xss 보안 취약점 수정 2014-07-30 17:48:48 +09:00
SIR b5abe21889 최소, 최대 댓글수 안내문구 수정 2014-07-30 15:45:45 +09:00
chicpro 0b4fe3148f 포트번호 중복되는 오류 수정 2014-07-30 10:40:16 +09:00
chicpro d5e6a07dda xss 대응 코드 추가 2014-07-29 16:33:19 +09:00
chicpro e4c2841444 Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-07-29 16:30:00 +09:00
chicpro 941e2ee411 bo_table url 변수에 xss 대응코드 추가 2014-07-29 15:29:12 +09:00
chicpro e84a1c8c98 그누보드 5.0.9 패치 적용 2014-07-28 11:41:12 +09:00
chicpro 8705232ea3 Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-07-28 11:39:09 +09:00
thisgun 3c104111a0 스마트 에디터2 ie 11에서 개행문자 처리 2014-07-28 11:08:39 +09:00
chicpro 02f7e386a4 필드명 오타 수정 2014-07-25 13:05:54 +09:00
chicpro a006bbed98 회원가입폼 본인확인 관련 안내 출력 코드 수정 2014-07-25 10:44:59 +09:00
chicpro 12b298abd6 datepicker 스타일 add_stylesheet 함수 적용 2014-07-25 09:36:40 +09:00
chicpro 0018ffb5bb 경로 설정 코드 수정 2014-07-22 09:25:27 +09:00
thisgun 6a939480c9 스마트 에디터 이미지 업로드 유효성 체크 로빈아빠님이 알려주심 2014-07-21 18:09:32 +09:00
chicpro 2221d27722 Merge branch 'master' of github.com:gnuboard/g5 2014-07-21 13:26:02 +09:00
chicpro 25af73bee8 경로 설정코드에서 HTTP_HOST 사용하도록 수정 2014-07-21 13:25:51 +09:00
thisgun 5d8ae712b5 Merge branch 'master' of github.com:gnuboard/g5 2014-07-21 13:09:47 +09:00
thisgun 7bdec88efc 스마트 에디터2 공백 삽입 소스로 인한 문제 수정 2014-07-21 13:09:28 +09:00
chicpro 52dbc4b6e7 bo_notice 필드에 필요치않는 콤마 추가되는 문제 수정 2014-07-21 09:53:46 +09:00
chicpro 2579323ddf sql injection 보안패치 및 스마트에디터2 추가 2014-07-18 17:10:25 +09:00
chicpro 5d1545dd2a Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-07-18 17:07:11 +09:00
thisgun bfb97db2a5 스마트 에디터 JSON 파일 추가 2014-07-18 16:29:14 +09:00
thisgun 99165f3c82 스마트 에디터 _common.php파일 경로 지정 및 JSON파일 추가 2014-07-18 16:19:28 +09:00
thisgun 3a8f88b703 스마트 에디터 업로드 json_encode함수 대체 2014-07-18 16:06:31 +09:00
thisgun 1950db98ab Merge branch 'master' of github.com:gnuboard/g5 2014-07-18 15:49:26 +09:00
thisgun 4875dcede0 스마트 에디터 포토 업로드 php5.3이상에서만 작동되는 함수 지움 2014-07-18 15:46:14 +09:00
chicpro 5c58ba44bc Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-07-18 10:50:13 +09:00
SIR 683cc32a3b 네이버 신디케이션 토큰의 길이가 112 글자가 아닌 경우가 확인되어 길이 비교 코드를 삭제 2014-07-18 10:38:11 +09:00
SIR 55e1580363 Merge branch 'master' of github.com:gnuboard/g5 2014-07-18 10:36:45 +09:00
chicpro e50144581b Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-07-18 10:14:09 +09:00
chicpro 19e7535a5b 설치시 기본 에디터 변경 2014-07-18 09:52:59 +09:00
chicpro 414b954b92 글제목 문자열 자르기 오류를 이용한 sql injection 방지 2014-07-18 09:36:57 +09:00
thisgun 9d8a776bd9 스마트 에디터2 수정된 js파일을 pack적용 2014-07-17 14:25:16 +09:00
thisgun 264866ab93 스마트에디터2 추가 2014-07-17 14:21:37 +09:00
SIR 04cabd15eb 게시판 제목에 "가 들어가는 경우 캐시파일 생성시 오류 발생 수정 2014-07-17 14:00:20 +09:00
SIR 85930d5564 홈페이지 제목이나 게시판 제목에 &등의 특수문자가 존재할때 발생하던 오류 수정 2014-07-16 17:56:53 +09:00
chicpro 2658dde159 카카오톡 링크기능 추가 및 기타 버그 수정 2014-07-15 16:59:54 +09:00
chicpro b24a38e42d Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-07-15 16:57:11 +09:00
chicpro 8cb15160ac sns 댓글등록 스크립트 수정 2014-07-15 15:54:52 +09:00
chicpro 011947daf2 escape function 기본설정 주석처리 2014-07-15 09:47:28 +09:00
chicpro 0c79231eb9 비회원 비밀댓글 내용확인 기능 추가 2014-07-11 13:57:54 +09:00
chicpro 251a01d7ac 관리자 회원아이콘 gif만 되도록 스크립트 코드 변경 2014-07-11 09:30:42 +09:00
chicpro fd7ee9be7a 카카오톡 링크 기능 추가 2014-07-10 14:10:57 +09:00
SIR 6fa9594fef Merge branch 'master' of github.com:gnuboard/g5 2014-07-10 09:35:27 +09:00
SIR 51527db42e 오타 bO_read_level 을 bo_read_level 로 수정 2014-07-10 09:35:13 +09:00
chicpro 8437058227 검색어 제거 특수문자 패턴 변경 2014-07-10 09:32:01 +09:00
SIR c885670079 Merge branch 'master' of github.com:gnuboard/g5 2014-07-09 10:47:44 +09:00
SIR 1f33d7db0c PHP 5.1.3 이전 버전에서도 curl_setopt_array 가 정상 작동하도록 수정 2014-07-09 10:46:47 +09:00
chicpro 9823909cfd escape 패턴이 정의되어 있을 경우에만 적용되도록 코드 수정 2014-07-09 10:12:06 +09:00
chicpro d9b8d31225 gitignore 충돌수정 2014-07-09 10:02:56 +09:00
chicpro 4d8500be02 네이버 신디케이션 적용 및 기타 오류 수정 2014-07-09 10:01:21 +09:00
chicpro e3a242ae56 gitignore 충돌 수정 2014-07-09 09:59:17 +09:00
SIR 967cfae906 curl_init 함수가 존재하는지를 따져 해당 함수가 없으면 신디케이션 사용이 불가하다는 경고성 문구를 출력함 2014-07-08 16:01:23 +09:00
SIR 2a36ba7d3c Merge branch 'syndi' of github.com:gnuboard/g5 2014-07-08 15:13:31 +09:00
SIR c73870c129 신디케이션 수집 제외게시판 코드 추가 2014-07-08 15:12:33 +09:00
SIR 9de6eea4f0 G5_SYNDI_USE 상수 제거 2014-07-08 15:12:11 +09:00
chicpro fde5420caa session_unregister 를 unset 으로 대체 2014-07-08 13:02:55 +09:00
chicpro dbe7b35e38 php alert 함수 실행 시 &amp; 변환되지 않는 오류 수정 2014-07-08 09:28:10 +09:00
chicpro 0e5af5accf 본인확인 필수 때 체크 코드 수정 2014-07-04 17:39:05 +09:00
chicpro dc1eff24e8 lg 휴대폰인증 타이틀 및 오류안내 한글깨짐 수정 2014-07-03 15:24:48 +09:00
SIR 697c4b851f 네이버 신디케이션 핑 적용 2014-07-03 13:56:49 +09:00
SIR e0d0a98fdb 바뀐 신디케이션 수정중 2014-07-03 09:14:27 +09:00
chicpro 9337df512f 카카오톡링크 제거 2014-07-02 16:53:00 +09:00
chicpro 288da7f9e1 전역배열변수 보안 오류 수정 2014-07-01 11:08:19 +09:00
chicpro e1537e3ef6 Merge branch 'master' of github.com:gnuboard/g5 into g5 2014-07-01 11:06:16 +09:00
chicpro 8f67e4d9fe 전역배열변수 초기화 코드 위치 변경 2014-07-01 10:46:24 +09:00
chicpro 164426f88c 메일 선택폼에서 출력되는 메일 도메인 수정 2014-06-30 10:14:26 +09:00
chicpro 41aac91146 보고된 버그 수정 2014-06-27 10:12:06 +09:00
chicpro 022b78581f gitignore 추가 2014-06-27 10:10:03 +09:00
chicpro 313de4c467 포인트 사용안함에서는 글읽기 포인트 적용되지 않도록 수정 2014-06-27 09:30:25 +09:00
chicpro d2b947bedd 추천 비회원 로그인 링크 오류수정 2014-06-23 12:42:43 +09:00
chicpro bcaa1ad81d 분류 선택 후 게시글 삭제 때 분류 지정되지 않는 오류 수정 2014-06-23 10:59:33 +09:00
chicpro c8add75f7c 오타 수정 2014-06-23 09:49:50 +09:00
chicpro a949c32b4c 기능개선 및 오류 수정 2014-06-20 13:37:58 +09:00
thisgun 99af60cfa3 본문 sns 사용시 트위터, 페이스북 보내기 일부 코드 수정 2014-06-20 11:34:31 +09:00
chicpro 559faf745a 팝업레이어 등록폼 오타 수정 2014-06-19 17:40:17 +09:00
chicpro 31a69933e0 모바일 뷰화면 이미지 리사이즈 스크립트 수정 2014-06-19 10:58:05 +09:00
chicpro 8f9d9b057a 게시글 여분 필드 값 입력 오류 수정 2014-06-17 16:59:46 +09:00
chicpro 765fcbe5da canonical 지정 코드 삭제 2014-06-17 13:05:08 +09:00
thisgun f18614588a FAQ 검색어가 있을시 search_font적용 및 탭주소에 검색어 포함하지 않음 2014-06-13 16:01:55 +09:00
chicpro 61c2fd4c51 그누보드4 이전 프로그램에 방문자 테이블 삭제 코드 추가 2014-06-12 16:42:15 +09:00
chicpro 9a16993762 1:1문의 이메일 입력 XSS 취약점 재수정 2014-06-11 15:12:57 +09:00
chicpro 2adccca817 1:1문의 이메일 입력 XSS 취약점 수정 2014-06-11 11:04:39 +09:00
chicpro 1c90e83ae1 sns 사용 때 게시글 보기 로딩 속도 개선 2014-06-10 15:42:13 +09:00
chicpro 091ffc65bd 답변글 작성 권한 알림 후 페이지이동 url 코드 오류수정 2014-06-10 13:25:24 +09:00
chicpro 7320b911d6 관리권한에서 삭제된 회원관련 권한 설정 삭제 코드 추가 2014-06-09 11:03:20 +09:00
chicpro 452d3e0af6 회원가입 완료 페이지 그누보드5 로고 제거 2014-06-09 10:30:22 +09:00
SIR 5c10516850 Merge branch 'master' of github.com:gnuboard/g5 2014-06-05 17:44:27 +09:00
SIR a6a537b638 설명 문구 변경 2014-06-05 17:44:13 +09:00
chicpro 6824dbb59a 공지여부 결정 코드 변경 2014-06-05 14:06:48 +09:00
chicpro 43cfe73582 일정기간 지난 메모 삭제 코드 삭제 2014-06-05 09:33:49 +09:00
chicpro 4a14538564 일정 기간 지난 DB 데이터 삭제 기능 추가 2014-06-03 14:57:26 +09:00
chicpro 83799ee4c8 썸네일 생성관련 코드 정리 2014-06-03 13:06:40 +09:00
thisgun ec9d28df7a sms5에서 오타 및 필요없는 구문 삭제 2014-06-02 14:31:11 +09:00
thisgun e9c3399d32 sms5 받는사람 추가시 휴대폰 번호 유효성 체크 수정 2014-06-02 14:06:14 +09:00
thisgun 241613d5cf sms5 form전송시 두번 등록되는 오류 현상 수정 2014-06-02 13:12:14 +09:00
chicpro e29e972bf1 전체 검색 css 스타일 추가 2014-05-30 12:05:41 +09:00
chicpro 1c2c443d6d 배열 문자 index 따옴표 처리 2014-05-30 11:55:49 +09:00
chicpro 14db33addb 전체 검색 결과 내용 표시 출력 코드 수정 2014-05-30 11:27:16 +09:00
chicpro adbc1eace3 LG 본인확인 서비스 신청 페이지 링크 변경 2014-05-29 17:19:43 +09:00
chicpro 4191b9f92e LG유플러스 명칭 통일 2014-05-29 16:01:07 +09:00
chicpro e422a93883 관리자 리스트 관리 링크 순서 변경 2014-05-29 13:28:18 +09:00
chicpro cf396c364b 메일발송 때 관리자 이메일 적용되록 수정 2014-05-29 10:43:57 +09:00
chicpro 38f209a57d 관리자 메일 발송이름 추가 2014-05-29 10:23:51 +09:00
chicpro a9ff55017b 검색어 특수문자 처리 코드 수정 2014-05-29 09:31:30 +09:00
chicpro 3e49c0c7f9 검색처 특수문자 패턴 추가 2014-05-28 17:51:00 +09:00
chicpro f733f8c5d9 stx 문자열에서 특수문자 제거 코드 추가 2014-05-28 17:31:18 +09:00
chicpro 9388ad70b3 lg u+ 휴대폰 대체인증 오류 수정 2014-05-28 17:24:21 +09:00
chicpro 8ad850072a lg u+ 본인확인 모듈 추가 2014-05-26 13:27:45 +09:00
chicpro 535c8ec92f sns 등록 관련 코드 수정 2014-05-26 11:44:57 +09:00
chicpro ec075413b3 sns 등록 관련 코드 수정 2014-05-26 11:36:59 +09:00
chicpro aa2beb7027 sns 댓글 url 전달되지 않는 오류 수정 2014-05-26 10:34:43 +09:00
chicpro 278c8ac541 url_auto_link 함수 수정 2014-05-26 10:05:07 +09:00
chicpro 93419222d3 메모 삭제 파일 필드명 오타 수정 2014-05-23 09:39:49 +09:00
chicpro 80cf22c97c 게시글 이동 때 추천정보 이동 코드 추가 2014-05-22 16:38:19 +09:00
chicpro b43149f9d3 관리자 회원정보 수정시 성별 초기화되는 오류수정 2014-05-22 13:31:28 +09:00
chicpro bc97db94e5 트위터 api 버전 변경 2014-05-22 13:25:25 +09:00
chicpro 24d43d3924 본인확인시에만 이름 변경할 수 있도록 수정 2014-05-20 16:51:15 +09:00
chicpro 3193d8a0cb 관리자 회원정보 수정시 생년월일 초기화되는 오류 수정 2014-05-20 16:50:32 +09:00
chicpro 2e06869ae3 회원가입 스킨 띄어쓰기 추가 2014-05-20 09:22:25 +09:00
chicpro e645c539a0 #32 새글 스킨 colspan 오류 수정 2014-05-19 11:52:59 +09:00
chicpro 15b224917a 휴대폰 필수 입력일 때 유효성 체크기능 추가 - 사노라가노라님 제안 2014-05-19 10:00:28 +09:00
chicpro 67530cc3a5 비회원이 자바스크립트를 이용해 댓글 수정할 수 있는 오류 수정 2014-05-15 14:04:36 +09:00
chicpro bc6ec9a3d0 리스트 공지 출력 관련 코드 수정 2014-05-14 16:53:46 +09:00
chicpro 664a0d9adf 에디터 사용 설정 후 개별 게시판에서 에디터 사용하지 않을 때 자동저장 스크립트 오류 수정 2014-05-14 11:28:00 +09:00
chicpro cb9b2bb73d 누락된 버튼 이미지 파일 추가 2014-05-14 11:27:08 +09:00
chicpro 0b6a3930fc 자동저장글 가져올 때 n 추가되는 오류 수정 - laffer님 제보 2014-05-14 09:44:03 +09:00
chicpro eeac9dbaf1 gitignore 수정 2014-05-14 09:38:48 +09:00
chicpro de1753aebe 1:1문의 검색오류 수정 - 참없다님 제보 2014-05-07 10:07:07 +09:00
chicpro b23b5fa2f1 내용관리에서 누락된 js 코드 추가 2014-05-07 09:56:30 +09:00
chicpro 7a81263b34 Merge branch 'master' of github.com:gnuboard/g5 2014-04-28 09:20:27 +09:00
chicpro 936019736b zip.db 파일 삭제 2014-04-28 09:20:14 +09:00
SIR 3b163d66f9 실행 파일 퍼미션 변경 쉘 추가 2014-04-25 11:18:45 +09:00
chicpro a2f4c098e3 escape_trim 함수 오류 수정 2014-04-24 11:30:16 +09:00
chicpro 282387cc17 sql_real_escape_string 함수 오류 수정 2014-04-24 11:16:37 +09:00
chicpro d09b992df5 sql_query 함수에 sql resource 지정 - 명랑폐인님 제안 2014-04-24 11:02:03 +09:00
SIR 5b4bf11250 gr_id 배열 오류 해결 2014-04-24 09:34:12 +09:00
thisgun 1bb3328a0a sms5 연락처 그룹간 이동간에 쿼리문 수정 2014-04-22 13:40:48 +09:00
chicpro a046070f8a 관리자 회원 추가 삭제 때 중복 체크 코드 변경 2014-04-21 13:41:55 +09:00
chicpro b8a14c1dfa 사용하지 않는 관리자 기능 파일 삭제 2014-04-17 11:01:50 +09:00
thisgun 87014a0c5c sms5 auth 체크 함수 수정 및 기타 문제 수정 2014-04-16 15:51:24 +09:00
thisgun f5583edec7 sms5에서 인증체크 함수 따로 추가 2014-04-16 14:06:58 +09:00
thisgun 344a61d5a5 sms5 문자열 처리 및 기타문제 보완 2014-04-16 13:24:59 +09:00
chicpro a50f7ce802 sms5 코드 체크 및 수정 2014-04-15 15:12:55 +09:00
chicpro b6bfef3b65 사용하지 않는 필드 삭제 2014-04-15 09:19:22 +09:00
chicpro 7d7c853045 팝업 레이어 css 중복 코드 삭제 2014-04-14 16:19:27 +09:00
chicpro 7d95cbad71 Merge branch 'master' of github.com:gnuboard/g5 2014-04-11 17:16:10 +09:00
chicpro 2fc1c05d6f 본인확인 필수 설정 추가 2014-04-11 17:15:57 +09:00
thisgun 2f51cee555 sms5 프로그램등록번호 필드 제거 2014-04-11 15:26:32 +09:00
thisgun 43f89063e0 sms5 문자발송시 따옴표 처리 오류 수정 2014-04-11 13:19:54 +09:00
chicpro edc67d6aa5 사용되지 않는 필드 삭제 2014-04-10 17:25:48 +09:00
chicpro 7a72955ec8 Merge branch 'master' of github.com:gnuboard/g5 2014-04-10 17:22:34 +09:00
chicpro 9bfb92cf74 사용되지 않는 필드 삭제 2014-04-10 17:22:28 +09:00
SIR fde7a4bc1f 자동등록방지 미입력시 captcha_key 필수입력으로 나오는 메세지를 자동등록방지 필수입력으로 수정 2014-04-10 13:38:24 +09:00
whitedot 99ee16b438 공통: 검색어 클래스 재지정 2014-04-10 11:15:51 +09:00
whitedot 7eaec845fc Merge branch 'master' of github.com:gnuboard/g5 2014-04-10 08:25:07 +09:00
whitedot dea015592f 사용자: 팝업레이어 사용 시 헤더 z-index 재정의 스크립트 추가, 길에서(yeunni)님 제보 2014-04-10 08:24:54 +09:00
chicpro 8914eeeaf8 모바일 갤러리 게시글 없을 때 스크립트 오류 수정 2014-04-09 14:47:27 +09:00
chicpro 8a407bebbb 접속자 기본 스킨 지정 2014-04-08 15:06:47 +09:00
chicpro b52c9d7fa3 Merge branch 'master' of github.com:gnuboard/g5 2014-04-07 14:06:48 +09:00
chicpro 15ce2ae731 다운로드 포인트 차감 오류 수정 - 윈디눈하님 제보 2014-04-07 14:06:34 +09:00
whitedot 2e296abd93 관리자: 기본환경설정 > 레이아웃 추가설정 하단 파일 경로 오타 수정, 케스케스(ks4613)님 제보 2014-04-07 11:23:46 +09:00
whitedot a6b62c89a2 Merge branch 'master' of github.com:gnuboard/g5 2014-04-07 11:21:48 +09:00
whitedot 45d6fa2047 모바일: bo_w id 겹침 수정, 임소야(minisoya)님 제보 2014-04-07 11:21:43 +09:00
chicpro 7492d404c0 캡챠 오류 문구 수정 2014-04-07 09:42:02 +09:00
whitedot 13cdf776f5 관리자: input select label 중심 마크업 정리 2014-04-02 10:54:19 +09:00
whitedot f65314bd94 Merge branch 'master' of github.com:gnuboard/g5 2014-04-01 18:18:47 +09:00
whitedot 53636a3453 사용자: input select label 중심 마크업 정리 2014-04-01 18:18:04 +09:00
chicpro 23fb25fc17 아이코드 요금정보 표시 오류 수정 2014-04-01 18:02:44 +09:00
chicpro b03949626e 1:1문의 메일 발송 오류 수정 2014-04-01 09:54:08 +09:00
SIR 55408ece40 Merge branch 'master' of github.com:gnuboard/g5 2014-03-31 13:48:08 +09:00
SIR d0391b5f29 cheditor 버전에 관계없이 포함하지 않도록 수정 2014-03-31 13:47:56 +09:00
SIR afc4e4536f 게시물 자동저장 수정 2014-03-31 13:47:30 +09:00
chicpro 83fe14288a 내용관리 html_purifier 사용 선택할 수 있는 설정 추가 2014-03-28 16:11:41 +09:00
chicpro 5ce0ad1221 휴대폰번호 중복 체크코드 주석처리 2014-03-28 14:38:12 +09:00
chicpro 9593cf952d 본인확인 중복 가입 체크 코드 추가 2014-03-28 14:19:33 +09:00
whitedot 0e313d792a 사용자: cheditor5.1 기본 너비 대응 tbl_frm01 th 너비 수정 2014-03-28 11:18:38 +09:00
whitedot 0dcb83a5a5 Merge branch 'master' of github.com:gnuboard/g5 2014-03-28 11:15:43 +09:00
whitedot e377355ef1 사용자: cheditor5.1 전체화면 모드 대응을 위한 hd z-index css/js 수정 2014-03-28 11:15:32 +09:00
chicpro 55799985e9 불필요한 문자셋 변환 코드 삭제 2014-03-28 11:13:54 +09:00
chicpro ae7dba63b2 php 5.3 이전에서 발생하는 parse error 수정 2014-03-27 17:26:00 +09:00
chicpro f1c33e30a2 $list array 중복 선언 오류 수정 - 뽁스님 제보 2014-03-27 16:18:17 +09:00
chicpro 2d769a83ce 사용하지 않는 파일 삭제 2014-03-27 14:43:23 +09:00
chicpro 2065819ab9 SMS5 코드 체크 및 정리 2014-03-27 14:05:59 +09:00
chicpro 36b0ad66cf E_RECOVERABLE_ERROR 상수 제거 - 더카이님 제보 2014-03-27 09:22:37 +09:00
chicpro eeef799bf7 사용자 코드 체크 및 정리2 2014-03-26 17:18:40 +09:00
chicpro 1c9f0f6018 사용자 코드 체크 및 정리 2014-03-26 17:14:30 +09:00
chicpro e61c402067 관리자 코드 체크 및 정리 2014-03-26 15:43:55 +09:00
chicpro a09ad95cc0 유창화님 정규식 제안코드로 일부 함수 수정 2014-03-26 11:03:50 +09:00
chicpro a9ba11f35f 모바일 상단 메뉴 검색 레이어 관련 스크립트 수정 2014-03-26 09:55:43 +09:00
whitedot 4df8f09549 공통: tbody th padding 값 추가 2014-03-25 13:45:42 +09:00
chicpro c197036c1f 관리자 일 때는 인증 게시판 최신글 출력 2014-03-24 15:17:44 +09:00
chicpro d9aa817221 인증을 사용하는 게시판의 최신글을 추출하지 않도록 수정 2014-03-24 14:50:04 +09:00
chicpro c2f6a8fc22 게시판 리스트 접근시 인증 여부 체크 코드 추가 2014-03-24 14:39:57 +09:00
whitedot d96fda1575 Merge branch 'master' of github.com:gnuboard/g5 2014-03-24 11:08:39 +09:00
whitedot 5242f3918e 관리자: SMS5 설치화면 마크업 수정 2014-03-24 11:08:24 +09:00
chicpro 3128f8d336 방문자 검색 검색 관련 코드 수정 2014-03-24 09:48:02 +09:00
whitedot 19c3297538 Merge branch 'master' of github.com:gnuboard/g5 2014-03-21 17:14:11 +09:00
whitedot f1c4018d8f 공통: head의 팝업레이어 관련 마크업 newwin.inc.php 로 완전이동 2014-03-21 17:13:57 +09:00
thisgun e4a4b91dce Merge branch 'master' of github.com:gnuboard/g5 2014-03-21 11:00:56 +09:00
thisgun 50bf45770a sms5 서브 메뉴 넘버 수정 2014-03-21 11:00:45 +09:00
chicpro 1e84bc6f1d blind sql injection 대응 코드 수정 2014-03-21 10:18:47 +09:00
chicpro e9e1f9713f 모바일 페이지당 라인 수 설정 추가 2014-03-21 09:52:41 +09:00
thisgun 9c0d1000a1 Merge branch 'master' of github.com:gnuboard/g5 2014-03-21 09:46:38 +09:00
chicpro fc974bf9d4 파일설명 사용 때 글쓰기 오류 수정 2014-03-20 16:38:15 +09:00
chicpro bcc013bdcf sms5 추가 2014-03-20 14:51:51 +09:00
chicpro 41a3385e99 dhtml 에디터 사용하지 않을 때도 에디터 js 파일 로드하는 문제 수정 2014-03-20 09:02:55 +09:00
chicpro 99163201c6 신디케이션 사용여부 설정 추가 2014-03-19 14:51:24 +09:00
chicpro 0093e835f4 qa tail 오타 수정 2014-03-19 11:04:12 +09:00
chicpro 92a746de78 ie10 이상에서 하위메뉴 추가되지 않는 오류 수정 2014-03-18 18:15:55 +09:00
chicpro 58dec25bbb 게시판 메일 발송의 내용에 rn 표시되는 오류 수정 - 참없다님 제보 2014-03-18 17:17:11 +09:00
chicpro 021d3d4147 메뉴 추가창 ie에서 스크롤 생기지 않는 문제 수정 2014-03-18 16:56:16 +09:00
chicpro 34977008e6 본인확인 모듈 체크 방법 변경 2014-03-18 16:29:21 +09:00
whitedot b7464f45ad Merge branch 'master' of github.com:gnuboard/g5 2014-03-18 15:40:35 +09:00
whitedot f84de48e15 모바일: gnb 메뉴 없을 때 안내문구 수정, 사노라가노라(ogogago)님 건의 2014-03-18 15:40:20 +09:00
chicpro 4ddd09df85 Blind SQL Injection 대응 코드 추가 2014-03-18 15:35:21 +09:00
whitedot b52d3dd331 Merge branch 'master' of github.com:gnuboard/g5 2014-03-18 13:09:40 +09:00
whitedot 51ac32547f 사용자: gnb 메뉴 없을 때 안내문구 수정, 사노라가노라(ogogago)님 건의 2014-03-18 13:07:41 +09:00
chicpro 2e4aaf2f3b Merge branch 'master' of github.com:gnuboard/g5 2014-03-17 18:09:50 +09:00
chicpro 6c34162bb0 extend내 파일 파일명순으로 정렬하여 include 하도록 수정 2014-03-17 18:09:42 +09:00
whitedot 4ec7219318 관리자: 회원관리/게시판관리 label 누락 수정 2014-03-17 17:58:49 +09:00
chicpro cdef10dcef SMS 수신 여부 출력 추가 2014-03-17 17:47:59 +09:00
chicpro 00ac8deba3 메뉴 테이블 생성되지 않았을 때 발생하는 오류 숨김 2014-03-17 13:41:03 +09:00
whitedot bcc275e244 공통: #30 FAQ 내용과 닫기 버튼 사이 여백 추가 2014-03-17 13:28:15 +09:00
whitedot 899cd74b01 모바일: #30 FAQ 스킨 마크업 2014-03-17 13:24:23 +09:00
whitedot 9595e64334 Merge branch 'master' of github.com:gnuboard/g5 2014-03-17 13:19:11 +09:00
whitedot bc2108dd5a 사용자: #30 FAQ 스킨 마크업 2014-03-17 13:19:01 +09:00
chicpro 7bd358b53b Merge branch 'master' of github.com:gnuboard/g5 2014-03-17 11:54:29 +09:00
chicpro e738eed8d7 gnb 서브메뉴 넓이 체크 스크립트 수정 2014-03-17 11:54:14 +09:00
whitedot dd43ca449e 모바일: #29 h2 숨기기 2014-03-17 11:53:47 +09:00
whitedot 51a65f746b Merge branch 'master' of github.com:gnuboard/g5 2014-03-17 11:45:37 +09:00
whitedot cb32063b68 사용자: gnb gnb_1dli_over2 right 값 0으로 수정 2014-03-17 11:45:26 +09:00
whitedot f160a9091a 모바일: #25 모바일 메뉴 마크업 완 2014-03-17 11:45:03 +09:00
chicpro 6927401c1d 회원발송 코드 수정 2014-03-17 11:10:42 +09:00
chicpro 384e4243bc 회운 메일발송 코드 수정 2014-03-14 21:52:57 +09:00
chicpro 95267cb88b conv_unescape_nl 함수 추가 2014-03-14 21:29:20 +09:00
chicpro e9d3de1859 서브메뉴 추가 코드 오류 수정 2014-03-14 18:12:35 +09:00
chicpro 038ebeb0f8 메뉴추가시 서브메뉴 class 추가되지 않는 오류 수정 2014-03-14 17:57:17 +09:00
thisgun 1099680118 Merge branch 'master' of github.com:gnuboard/g5 2014-03-14 17:48:10 +09:00
chicpro c9455d27da Merge branch 'master' of github.com:gnuboard/g5 2014-03-14 17:47:10 +09:00
chicpro f13edd77c9 메뉴 검색때 제목 추가되지 않는 오류 수정 2014-03-14 17:46:59 +09:00
whitedot cabbaa0acd 관리자: #29 메뉴설정 추가 시 td 클래스 정의 2014-03-14 17:43:00 +09:00
thisgun 6eec6985c2 Merge branch 'master' of github.com:gnuboard/g5 2014-03-14 17:40:47 +09:00
whitedot 052597513d Merge branch 'master' of github.com:gnuboard/g5 2014-03-14 17:31:19 +09:00
whitedot 04624beeaa 사용자,관리자: 메뉴설정 관련 마크업 완료 2014-03-14 17:30:55 +09:00
chicpro 3c3bfc2b8f faq 분류 검색 기능 추가 2014-03-14 17:27:54 +09:00
chicpro 2fbd3e66fa 변환프로그램에서는 gnb 메뉴 표시하지 않도록 수정 2014-03-14 15:31:39 +09:00
chicpro 791457e0fe 메뉴테이블 설정 추가 2014-03-14 14:34:52 +09:00
chicpro 22519cd731 okname 보안강화 필터링 옵션 적용 2014-03-14 14:29:51 +09:00
chicpro bf0eb143a6 number_format 함수 부호 처리 오류 수정2 2014-03-14 14:01:59 +09:00
chicpro 08fe7ee42a number_format 함수 부호 처리 오류 수정 2014-03-14 13:32:10 +09:00
chicpro 848e0ae505 Merge branch 'master' of github.com:gnuboard/g5 2014-03-14 11:52:20 +09:00
chicpro 2e8c7a9acd 그룹 게시판 메뉴보이기 필드 제거 2014-03-14 11:52:12 +09:00
whitedot f868b4bebb 사용자: gnb 2depth hover, focus 스타일 수정 2014-03-14 11:44:40 +09:00
whitedot 4b259031f3 관리자: admin.css 파일 위치 adm/css 로 변경 2014-03-14 11:40:43 +09:00
whitedot 1764aa3b3a 공통: #29 메뉴설정 마크업 작업 중 2014-03-14 10:45:05 +09:00
whitedot b97d07df3d 사용자: gnb ie6 에서 li floatleft 안 먹는 현상 수정 2014-03-14 10:34:08 +09:00
whitedot e34d535b61 Merge branch 'master' of github.com:gnuboard/g5 2014-03-14 09:25:19 +09:00
whitedot e1d4956175 사용자: gnb 불필요 css 삭제 2014-03-14 09:25:06 +09:00
chicpro 738bc9e968 Merge branch 'master' of github.com:gnuboard/g5 2014-03-14 09:08:26 +09:00
chicpro 15b2813abc 메뉴관리 기능 추가 2014-03-14 09:08:06 +09:00
whitedot c0fa8cefd1 공통: gnb 스타일 필요없는 코드 삭제 및 간결화 2014-03-13 19:44:58 +09:00
whitedot 50c98dab19 사용자: gnb 2depth 높이 가변 수정 2014-03-13 18:36:32 +09:00
whitedot 2421a655cf 사용자: gnb 1depth 너비 가변 수정 2014-03-13 18:35:00 +09:00
whitedot 0c35a1fa24 모바일: #28 포인트내역 날짜 표시 방법/스타일 변경 2014-03-12 17:49:18 +09:00
whitedot 17812bf744 Merge branch 'master' of github.com:gnuboard/g5 2014-03-12 17:35:16 +09:00
whitedot 463d81a27c 공통: #28 포인트 페이지 스킨화, 스크랩/쪽지 목록 스타일도 함께 수정 2014-03-12 17:35:11 +09:00
whitedot c37c1fbb2c 관리자: gnb hover 스타일 복원 2014-03-12 17:18:30 +09:00
chicpro 343de88d62 날짜형식 변환 함수 추가 2014-03-12 16:55:01 +09:00
chicpro f368d7cb9d get_paging 함수 주석문 수정 2014-03-12 15:04:26 +09:00
chicpro db07567e64 포인트 리스트 스킨화 2014-03-12 13:17:50 +09:00
chicpro 8a81b42e0c 게시판 하단 파일 출력 부분 조건문 처리 오류 수정 2014-03-12 11:58:04 +09:00
chicpro 7952268226 1:1문의 상단 하단 설정 항목 추가 2014-03-12 11:56:25 +09:00
chicpro 2d13c3b4b4 검색에 사용되는 변수에서 특수문자 제거 및 길이제한 추가 2014-03-12 10:42:03 +09:00
chicpro ab37de4292 sql error 출력여부 설정 상수 추가 - 로빈아빠님 제안 2014-03-12 10:25:42 +09:00
whitedot c45cb58dbc Merge branch 'master' of github.com:gnuboard/g5 2014-03-11 18:16:22 +09:00
whitedot 1a70218a74 관리자: GNB javascript off 대응 2014-03-11 18:16:09 +09:00
chicpro 1ec3ad24ef 방문자수 타입변환 오류 수정 - 더카이님 제보 2014-03-10 10:30:08 +09:00
thisgun b0a2e0ce33 Merge branch 'master' of github.com:gnuboard/g5 2014-03-07 14:29:12 +09:00
whitedot ddd1726bf1 사용자: gnb z-index 추가3 2014-03-06 18:38:21 +09:00
whitedot ebb6a1c63a 사용자: gnb z-index 추가2 2014-03-06 18:34:53 +09:00
whitedot 817bfebb71 Merge branch 'master' of github.com:gnuboard/g5 2014-03-06 18:32:24 +09:00
whitedot 94822deddc 사용자: gnb z-index 추가 2014-03-06 18:31:35 +09:00
chicpro cc7e1a4b2f 필수 모듈 체크 후 알림 방법 변경 2014-03-06 15:23:35 +09:00
chicpro defd0bd38a escape_trim 함수에서 G5_ESCAPE_FUNCTION 설정사용하도록 수정 2014-03-04 17:40:16 +09:00
thisgun 80b4ca0841 master브랜치병합 2014-03-04 13:36:15 +09:00
chicpro f9c087e93a js off 대응 css 삭제로 메뉴스크립트 코드 제거 2014-03-04 10:19:50 +09:00
chicpro c9e0ea7566 상단 메뉴 정렬 스크립트 수정 2014-03-04 09:57:31 +09:00
SIR 5f69257625 SMTP 관련 코드 수정 2014-03-03 16:42:49 +09:00
chicpro acb22024a9 기본 escape function 설정할 수 있도록 수정 2014-03-03 15:47:58 +09:00
chicpro f12e63436a 회원메일 발송 오류 수정 2014-03-03 09:34:48 +09:00
whitedot c7d457d373 Merge branch 'master' of github.com:gnuboard/g5 2014-02-28 17:01:29 +09:00
whitedot 08b6b901a9 사용자: gnb js off 대응 제거, CSS가 어렵다는 의견이 많았음 2014-02-28 17:01:18 +09:00
chicpro f6df7c905b 모바일 회원가입 취소 버튼 링크 오류 수정 2014-02-28 16:17:25 +09:00
chicpro df9a0086d5 불필요한 경로 체크 코드 삭제 2014-02-28 09:41:20 +09:00
chicpro 07176252c8 공지가 있을 때 게시글 글번호 오류 수정 2014-02-27 14:32:51 +09:00
chicpro 0541ec9947 gitignore에 ckeditor43 추가 2014-02-27 11:03:15 +09:00
whitedot abc9d205a5 관리자: 로고를 ADMINISTRATOR 로 변경, 윈디눈하(borastyle)님 건의 2014-02-26 09:20:34 +09:00
whitedot 31e24fa77b 관리자: #26 게시판 썸네일 삭제 페이지 마크업 2014-02-26 09:12:15 +09:00
whitedot 44976c8eb9 Merge branch 'master' of github.com:gnuboard/g5 2014-02-25 09:47:56 +09:00
whitedot d61e6dd01d 공통: 전체검색결과 목록 내 제목, 내용 스타일 수정 2014-02-25 09:47:44 +09:00
chicpro 89b146a2c4 게시판 수정에 썸네일 삭제 기능 추가 2014-02-24 18:10:25 +09:00
whitedot f32379d492 Merge branch 'master' of github.com:gnuboard/g5 2014-02-24 13:02:34 +09:00
whitedot 1872296417 모바일: lnb 스타일 5칸 기준, 4칸 기준으로 변경 - 입문개발자(dungglenim)님 제보 2014-02-24 13:01:42 +09:00
chicpro bc1cfad1c2 post 등에 mysql_real_escape_string 적용하는 코드 수정 2014-02-20 11:29:19 +09:00
whitedot 7bd383b7cf 공통: 팝업레이어 입력된 내용이 설정된 높이보다 길 때 닫기 버튼 가려지는 현상 수정, 참없다(uyong)님 제보 2014-02-20 10:14:41 +09:00
whitedot aa66a87579 관리자: btn_cancel 스타일 a 분리 2014-02-20 09:45:37 +09:00
chicpro 847df782b5 게시판 복사 오타 수정 - 참없다님 보고 2014-02-20 08:52:29 +09:00
chicpro 95d697a99a 게시글 수정 시 공지체크 해제되지 않는 오류 수정 2014-02-19 08:59:18 +09:00
chicpro a7604e02c4 mysql_real_escape_string 함수 적용 코드 수정 2014-02-19 08:58:45 +09:00
chicpro f15e41f8d9 삭제되지 않는 style.css 링크 제거 2014-02-17 17:43:40 +09:00
whitedot 920d7d4f07 공통: 팝업관리 g5 이동에 따른 스타일 정리 처리 2014-02-14 15:35:02 +09:00
thisgun 5ac03ea3b9 Merge branch 'master' of github.com:gnuboard/g5 2014-02-14 14:59:02 +09:00
thisgun ca51542b16 g5모바일에서 팝업레이어 내용 추가 2014-02-14 14:57:09 +09:00
chicpro a770007e4d 최신글 캐시파일 include로 수정 2014-02-14 14:44:01 +09:00
thisgun 9624eeb11a Merge branch 'master' of github.com:gnuboard/g5 2014-02-14 14:16:49 +09:00
thisgun 7c7d329541 bbs/newwin.inc.php 파일에서 팝업테이블이 존재하지 않을경우를 대비하여 조회문에 false옵션을 주어 오류가 일어나지 않게 함 2014-02-14 14:14:50 +09:00
chicpro 2c223a90e6 팝업레이어 배경색 지정 수정 2014-02-14 13:48:05 +09:00
chicpro 619e5c223c 영카트의 faq 내용관리 팝업관리 그누보드로 이동 2014-02-14 13:22:42 +09:00
thisgun a320e22d19 그누보드5 install_db.php 에 DB설정파일 생성문에 새창테이블변수문 오타 수정 2014-02-14 13:15:26 +09:00
thisgun 3e62a88f97 그누보드5 install_db.php 에 DB설정파일 생성문에 새창 테이블 배열변수 추가 2014-02-14 13:08:15 +09:00
whitedot fa5cee60d5 모바일: 갤러리스킨 add_stylesheet 처리 2014-02-14 11:37:21 +09:00
whitedot b0b305f4af 사용자: 접속자 스킨 스타일시트 charset 지정 2014-02-14 11:36:57 +09:00
whitedot 98bd098999 Merge branch 'master' of github.com:gnuboard/g5 2014-02-14 11:21:32 +09:00
whitedot 12d37186a3 사용자: 새창 win_desc 스타일 수정, p 태그 margin, padding, line-height 초기화에 따른 수정 2014-02-14 11:21:06 +09:00
chicpro 294d8ad651 스킨의 css 파일 지정 방법 변경 2014-02-13 16:43:26 +09:00
thisgun efb8f08c74 Merge branch 'movefaq' of github.com:gnuboard/g5 into movefaq 2014-02-13 14:37:41 +09:00
thisgun 08f2f09f52 내용관리 FAQ관리 수정 2014-02-13 14:37:10 +09:00
whitedot 347f9c1562 Merge branch 'movefaq' of github.com:gnuboard/g5 into movefaq 2014-02-13 13:52:42 +09:00
whitedot 40c25713ac 공통: 전체검색 결과 스타일 2014-02-13 13:52:03 +09:00
thisgun c4113e661d 내용관리 FAQ관리 수정 2014-02-13 13:38:49 +09:00
chicpro 0463ecc23f html_end 함수를 class로 변경 2014-02-13 13:30:06 +09:00
thisgun 496cdba896 내용관리 FAQ관리 수정 2014-02-13 13:14:31 +09:00
thisgun da37d92265 Merge branch 'movefaq' of github.com:gnuboard/g5 into movefaq 2014-02-13 11:31:04 +09:00
whitedot ca8f21c2bc 공통: 내용관리, faq 관리 yc5에서 g5로 이동, 마크업/스타일 작업 2014-02-13 11:28:04 +09:00
thisgun 8a312b393f 내용 및 FAQ관리 수정 2014-02-12 17:16:24 +09:00
thisgun 5baa2b884a bbs/faq.php에서 faq관련된 변수가 있는지 체크 2014-02-12 14:55:19 +09:00
thisgun 15cb9221dc 그누보드5 메뉴중 FAQ메뉴란 추가 2014-02-12 11:56:00 +09:00
thisgun 43b36716ae Merge branch 'movefaq' of github.com:gnuboard/g5 into movefaq 2014-02-12 11:37:29 +09:00
thisgun e926288f3e 내용관리 FAQ관리 수정 2014-02-12 11:37:14 +09:00
whitedot 33df7f0d41 사용자: 내용관리 FAQ관리 추가 관련 마크업/스타일 2014-02-11 14:26:07 +09:00
chicpro 1c552404c0 Merge branch 'master' of github.com:gnuboard/g5 2014-02-11 14:00:37 +09:00
chicpro cd6cb1f36c 관리자 lnb 메뉴 출력에 권한 체크 코드 추가 2014-02-11 14:00:27 +09:00
whitedot 257343852f Merge branch 'movefaq' of github.com:gnuboard/g5 into movefaq 2014-02-11 13:37:17 +09:00
whitedot 3cf14ad066 Merge branch 'movefaq' of github.com:gnuboard/g5 2014-02-11 13:36:38 +09:00
whitedot d404a7cdcb Merge branch 'master' of github.com:gnuboard/g5 2014-02-11 13:35:34 +09:00
whitedot 1d536974ab 관리자 상단메뉴 자바스크립트 off 시 메뉴 두줄로 보이는 문제 수정, 해피정(happyjung)님 제보 2014-02-11 13:35:23 +09:00
thisgun c9cd0307c6 영카트5 메뉴중 내용관리 FAQ관리 메뉴를 그누보드5로 옮김 2014-02-11 11:13:13 +09:00
chicpro 2ec3b1d0f2 관리자 페이지 하단 도메인 출력 부분 수정 2014-02-10 13:39:50 +09:00
chicpro e4a17902fd 썸네일 생성시 alt 속성 사라지는 버그 수정 2014-02-10 11:02:39 +09:00
chicpro 752ccd8502 member_confirm 파일 url 리다이렉션 취약점 수정 - 김효종님 보고 2014-02-10 10:52:58 +09:00
chicpro 2e474b8dd6 Merge branch 'master' of github.com:gnuboard/g5 2014-02-06 16:15:08 +09:00
chicpro f72db5731e 게시글 작성 시 메일 발송 코드 수정 2014-02-06 16:14:54 +09:00
whitedot 17c6458f0b 상단 로고 검색창 텍스트크기 조절 회원가입 등 링크 스타일 수정, 로고 변경했을 때 검색창 등 일정 간격 유지를 위한 조치 2014-02-06 15:22:47 +09:00
whitedot 77d92f5c23 Merge branch 'master' of github.com:gnuboard/g5 2014-02-06 15:04:59 +09:00
whitedot 9f308f6aae 공통: 정보찾기 p 태그 스타일 2014-02-06 14:56:15 +09:00
chicpro ad149439ba Merge branch 'master' of github.com:gnuboard/g5 2014-02-06 13:38:17 +09:00
chicpro 520ed9204c 가입메일 인증메일 동시 사용 때 가입메일만 발송되도록 수정 2014-02-06 13:38:07 +09:00
whitedot b34c61f00d 공통: 회원가입 완료페이지 안내문구 스타일 수정 2014-02-06 13:18:20 +09:00
whitedot f87c10686f 관리자: #24 접속자로그 삭제 페이지 마크업 2014-02-06 13:13:50 +09:00
chicpro 47c41077d5 접속 로그 삭제 기능 추가 2014-02-05 17:59:18 +09:00
chicpro 2a6f46e820 공지글 수정시 기존 순서 변경되지 않도록 수정 2014-02-04 18:27:03 +09:00
chicpro 3c0982974b 스타일시트 위치조정 때 조건문있으면 함께 이동하도록 수정 2014-02-04 18:03:36 +09:00
chicpro eeac929ca6 회원아이콘 업로드시 용량초과 안내 메세지 추가 2014-02-04 10:47:17 +09:00
chicpro b6f76f8885 게시판설정 아이콘 출력 0입력시 새글 인기글 아이콘 출력되지 않도록 수정 2014-02-03 11:18:32 +09:00
chicpro 26d41b11f3 그누보드4 db 이전 프로그램 수정 2014-02-03 11:16:02 +09:00
kagla 013f47ada2 개인정보취급방침, 개인정보수집이용을 개인정보처리방침으로 문구 변경 2014-01-29 10:21:36 +09:00
whitedot 8b50062f86 변환프로그램 #22 마크업 및 스타일 완료 2014-01-29 10:03:12 +09:00
whitedot 2178764db1 Merge branch 'master' of github.com:gnuboard/g5 2014-01-29 09:02:46 +09:00
whitedot 57dd91955b 관리자: 게시판 추가/수정 마크업 오류 수정 2014-01-29 09:02:30 +09:00
chicpro bf74f24eb2 주소 입력 후 상세주소에 포커스 가도록 수정 2014-01-28 16:56:17 +09:00
chicpro 46700f351c 그누보드4 DB 데이터 이전 프로그램 추가 2014-01-28 15:38:37 +09:00
kagla 9132316971 Merge branch 'master' of github.com:gnuboard/g5 2014-01-27 10:40:31 +09:00
kagla 514a663b1d 행정구역 구분 오류 수정 2014-01-27 10:12:40 +09:00
chicpro facdfd564f ip 숨김방법 설정 추가 - 로빈아빠님 건의 2014-01-27 10:07:01 +09:00
whitedot d6a46b86e2 Merge branch 'master' of github.com:gnuboard/g5 2014-01-27 09:02:55 +09:00
whitedot 771ecba016 모바일: CSS reset textarea 기본 폰트 지정, 로빈아빠(xhost)님 건의 2014-01-27 09:02:25 +09:00
chicpro b675b02604 메모 테이블 me_recv_mb_id에 인덱스 설정 추가 - 썬쓰파더님 건의 2014-01-23 13:36:24 +09:00
chicpro 8b30857701 게시판 복사시 기본 엔진 MyISAM 설정되도록 수정 2014-01-23 13:15:06 +09:00
chicpro 2bdee0f848 1:1문의 휴대폰번호 입력에 스크립트 입력할 수 있는 문제 수정 - I2sec 지민건님 제보 2014-01-23 12:46:21 +09:00
kagla 80af2a0f8c /.htaccess 추가 2014-01-21 13:40:42 +09:00
chicpro 9a11d40a6a input vars 개수 체크함수 추가 2014-01-21 11:17:39 +09:00
whitedot 91274eb7c1 공통: 하단 쇼핑몰 정보 줄간격 2014-01-20 14:21:03 +09:00
whitedot 9bc3eb1faf 공통: 로그인 페이지 안내문구 여백 및 줄간격 2014-01-20 14:17:56 +09:00
whitedot d3b1c4c053 Merge branch 'master' of github.com:gnuboard/g5 2014-01-20 10:10:49 +09:00
whitedot a66d998810 공통: 용어 일반화, 패스워드 -> 비밀번호, 별명 -> 닉네임, 로빈아빠(xhost)님 건의 2014-01-20 10:09:14 +09:00
chicpro 96a1cf8bc5 Merge branch 'master' of github.com:gnuboard/g5 2014-01-18 07:59:22 +09:00
chicpro 29d16b90d9 모바일 도로명 검색 오류 수정 2014-01-18 07:59:07 +09:00
whitedot 28165a06f6 관리자: 회원관리 > 회원추가/수정 에서 우편번호 title 을 label 로 수정 2014-01-17 15:04:14 +09:00
whitedot adaca820b5 공통: #20 주소검색 직접 입력 마크업 2014-01-17 14:39:23 +09:00
chicpro 26d976b684 주소 입력시 사용자 직접 입력 기능 추가 2014-01-17 13:42:16 +09:00
chicpro e46cdb41fc Merge branch 'master' of github.com:gnuboard/g5 2014-01-17 11:21:36 +09:00
chicpro 2c6e901eb6 추천 비추천 후 결과 메세지 표시되도록 수정 2014-01-17 11:21:17 +09:00
chicpro 244b33600f print_result 함수에서 오류가 있을 때만 exit 되도록 수정 2014-01-17 11:20:52 +09:00
whitedot cb0f0f195d 모바일: 상단메뉴 너비 20% -> 25% 2014-01-17 11:18:21 +09:00
whitedot 4c44421169 Merge branch 'master' of github.com:gnuboard/g5 2014-01-17 09:57:12 +09:00
whitedot 702a75dd67 공통: 게시판 글 추천 비추천 시 알림 레이어 마크업 및 스타일 2014-01-17 09:56:54 +09:00
chicpro a502508d73 사용자 메타태그 설정 추가 2014-01-17 09:43:58 +09:00
chicpro 559d9b573c 그룹관리자로 게시판 그룹설정에 접속했을 때 화면 마크업 오류 수정 2014-01-15 11:42:54 +09:00
chicpro d7009ba6f3 최고관리자는 DEMO 체크하지 않도록 수정 2014-01-15 10:44:45 +09:00
chicpro 6c6785442d check_demo 함수 G5 환경에 맞게 수정 2014-01-15 09:42:34 +09:00
chicpro 372ba9104e Merge branch 'master' of github.com:gnuboard/g5 2014-01-14 17:17:39 +09:00
chicpro 963d43a336 index 페이지의 최신글 출력순서 동일하도록 쿼리문 수정 2014-01-14 17:17:30 +09:00
gnuboard 546da0d579 .htaccess 를 push 하지 않도록 추가 2014-01-14 09:39:01 +09:00
chicpro 85a8051e66 Merge branch 'master' of github.com:gnuboard/g5 2014-01-13 10:32:21 +09:00
chicpro 0cdaa1fd2d 썸네일 이미지 품질 config.php 에서 설정할 수 있도록 수정 2014-01-13 10:31:48 +09:00
chicpro 4261c92f61 최신글 함수에 options 변수 추가 2014-01-13 10:31:23 +09:00
whitedot 7e7e9c17b7 공통: 게시판 글쓰기 페이지의 완료 버튼명을 '글쓰기'에서 '작성완료'로 수정, 휴먼(humansoft)님 건의 2014-01-13 09:21:41 +09:00
whitedot d51ed5166c 관리자: 환경설정 > 메일테스트 결과 메세지 스타일 수정, 사노라가노라(ogogago)님 제보 2014-01-13 09:18:25 +09:00
whitedot b3b295f721 Merge branch 'master' of github.com:gnuboard/g5 2014-01-09 10:41:45 +09:00
whitedot bf16687aa6 관리자: frm_input line-height 조정 2014-01-09 10:41:29 +09:00
chicpro 4a61fe197c 원글 수정불가 댓글수를 0으로 설정할 수 있도록 수정 2014-01-09 10:41:19 +09:00
chicpro c99e22cec0 모듈 실행권한 체크 함수 재수정 2014-01-09 09:55:53 +09:00
chicpro 6c71fcdc3b 모듈 실행권한 체크 함수 수정 2014-01-09 09:41:52 +09:00
whitedot 1ad8cbda8a 사용자: p 패딩 조정에 따른 하단 카피라이트 p 스타일 처리 2014-01-08 11:57:32 +09:00
whitedot 80ed9701e4 모바일: 메일보내기 타이틀 마크업, 프로필 인사말 스타일 수정 2014-01-08 11:35:07 +09:00
whitedot dda4b73f26 모바일: 사이드뷰 사용 가능하도록 수정 2014-01-08 11:32:03 +09:00
whitedot 67c5ca876a Merge branch 'master' of github.com:gnuboard/g5 2014-01-08 10:14:46 +09:00
whitedot a69ce967dc 공통: p 태그 초기화 수정, 푸른하늘3(thebest1)님 건의 2014-01-08 10:14:31 +09:00
chicpro 24130959c9 주소검색 보안서버 대응하도록 수정 2014-01-07 11:00:01 +09:00
chicpro 491f012828 사용자 추가한 include 파일이 먼저 실행되도록 수정 2014-01-06 17:28:58 +09:00
chicpro 4ed1743a71 인증모듈 실행권한체크 함수 수정 2014-01-06 13:29:59 +09:00
chicpro 7f669023f6 사용하지 않는 함수 삭제 2014-01-06 13:16:36 +09:00
whitedot 098bdf7156 Merge branch 'master' of github.com:gnuboard/g5 2014-01-06 11:34:50 +09:00
whitedot d55e23081a 관리자: 사용하지 않는 CSS 코드 제거 2014-01-06 11:34:32 +09:00
whitedot 58ebc6b7fd 관리자: 게시판관리 목록에서 게시판 제목 입력칸 너비 조정 2014-01-06 11:34:21 +09:00
chicpro 6965be7ba2 1:1문의 등록시 관리자 이메일 알림 추가 2014-01-06 11:28:31 +09:00
whitedot 6030e21aad 공통: 도로명주소 참고항목 관련 마크업 줄바꿈 추가 2014-01-03 17:31:53 +09:00
chicpro 14bd0f1eaa 도로명 주소 표기법에 따른 재수정 2014-01-03 17:11:37 +09:00
chicpro 12380f1274 도로명 주소 출력변환 함수 추가 2014-01-03 15:54:13 +09:00
whitedot b2251d9ea8 공통: 도로명주소 변경에 따른 마크업 작업 2014-01-03 14:31:54 +09:00
chicpro a8735faf63 주소 검색 api url 수정 2014-01-03 14:11:16 +09:00
chicpro 5ea604d500 Merge branch 'master' of github.com:gnuboard/g5 2014-01-03 14:08:02 +09:00
chicpro f9daab0dbe 도로명 주소 표기 방법에 따른 수정 2014-01-03 14:07:53 +09:00
whitedot e1bd079043 관리자: 환경설정 게시판관리 섹션 끝 확인 버튼 추가 2014-01-03 09:35:29 +09:00
chicpro eb434eaf3d 사용하지 않는 파일 삭제 2014-01-03 09:14:28 +09:00
whitedot 22536144e7 Merge branch 'master' of github.com:gnuboard/g5 2014-01-03 08:54:38 +09:00
whitedot d425dd635c 사용자: 사용하지 않는 이미지 삭제 2014-01-03 08:54:21 +09:00
chicpro 025f321977 설치시 1:1문의 설정값 쿼리 추가 2014-01-02 15:26:52 +09:00
root d6c4f4f98d 게시판 선택삭제시 퍼미션 설정 오류 수정 2013-12-31 09:54:20 +09:00
chicpro 9f109f203e jquery datepicker 적용되지 않는 오류 수정 2013-12-31 09:06:33 +09:00
chicpro ee269c66ad 인증 모듈 실행권한 체크 함수 추가 2013-12-27 11:01:17 +09:00
chicpro b5bf60cbce 본인확인 사용할 때 모듈의 실행권한 체크 코드 추가 2013-12-26 18:02:14 +09:00
chicpro 7d8a0f7b91 추가 script css 관리자 페이지에서는 출력되지 않도록 수정 2013-12-26 17:15:03 +09:00
whitedot 148b2c74af Merge branch 'master' of github.com:gnuboard/g5 2013-12-26 17:05:34 +09:00
whitedot 2d8473e34d 모바일: 아웃로그인, 투표 스킨 관리자 버튼 스타일 수정 2013-12-26 17:04:41 +09:00
kagla ec341bda32 Merge branch 'master' of github.com:gnuboard/g5 2013-12-26 16:58:07 +09:00
kagla eb703318ce dn_hash 변조 위험있음 (".G5_KCPCERT_PATH."/bin/ct_cli 파일에 실행권한이 있는지 확인하세요.) 로 에러 문구 변경 2013-12-26 16:54:07 +09:00
kagla 947571dcf3 실행권한 퍼미션 변경 2013-12-26 16:53:12 +09:00
kagla 2169008082 session_save_path 를 config.php 에서 수정할수 있도록 변경 2013-12-26 16:52:46 +09:00
whitedot 6ede63da73 메일인증 마크업 오류 수정, 마시쩡님 제보 2013-12-26 09:15:51 +09:00
whitedot 59d7b90a41 Merge branch 'master' of github.com:gnuboard/g5 2013-12-24 17:25:10 +09:00
whitedot 744d4983e5 관리자: 페이징 스타일 수정 2013-12-24 17:24:02 +09:00
chicpro f0c280256e 부산 사상구 사하구 분리 2013-12-24 13:30:48 +09:00
chicpro e679e91687 Merge branch 'master' of github.com:gnuboard/g5 2013-12-24 13:24:28 +09:00
chicpro 16fa0eb1e1 관리자 메인 포인트 내역 해당일의 포인트합 출력하도록 수정 2013-12-24 13:24:15 +09:00
chicpro fb5261a24c 게시글 선택삭제 안내메세지에 답변글 삭제 내용 추가 2013-12-24 13:23:13 +09:00
kagla c51012c131 누락된 캡챠 비교 코드 복원 2013-12-24 11:19:46 +09:00
kagla 1bb1129194 Merge branch 'master' of github.com:gnuboard/g5 2013-12-23 14:19:48 +09:00
kagla 1d5746f2ad alternative 경로변경 2013-12-23 14:19:42 +09:00
kagla 6a27505c1f 신디케이션 네이버개발자센터 링크 변경 2013-12-23 13:35:18 +09:00
chicpro 5e462f6816 회원정보 수정시 지번주소 초기화되는 문제 수정 2013-12-23 10:08:45 +09:00
chicpro 8e7805d105 qa_content 데이터타입 text로 변경 2013-12-20 17:29:51 +09:00
kagla 07f50b56fc Merge branch 'master' of github.com:gnuboard/g5 2013-12-20 17:05:12 +09:00
kagla 146cfe99fc 시도, 시군구 정보 변경 2013-12-20 17:04:58 +09:00
kagla 4486f779ae okname 퍼미션 변경 2013-12-20 17:04:40 +09:00
whitedot 6f7c354c19 Merge branch 'master' of github.com:gnuboard/g5 2013-12-20 14:27:46 +09:00
whitedot 3ab3b6ed27 모바일: 주소검색 안내 레이어 제거 2013-12-20 14:27:36 +09:00
chicpro c752fffe88 Merge branch 'master' of github.com:gnuboard/g5 2013-12-20 13:57:47 +09:00
chicpro d5fcfc5220 모바일 kcp 휴대폰인증 오류 및 도로명 주소 검색 수정 2013-12-20 13:57:38 +09:00
whitedot 3b40214552 모바일: 삼성 계열 기기에서 숨김 텍스트 나타나는 문제 수정 2013-12-20 13:39:09 +09:00
whitedot c371b2266d 공통: 페이징 스타일 수정 2013-12-20 13:02:26 +09:00
whitedot 6ddf735857 공통: 주소검색 스타일 안전하게 수정 2013-12-20 11:52:19 +09:00
whitedot 47b2db40fb Merge branch 'master' of github.com:gnuboard/g5 2013-12-20 11:50:32 +09:00
whitedot c10dab1bea 공통: 주소검색 안내 레이어 추가 2013-12-20 11:50:13 +09:00
whitedot fe6f0cfb67 모바일: 회원가입 완료 후 안내 페이지 로고 수정 2013-12-20 11:50:00 +09:00
kagla 2d074b3886 Merge branch 'master' of github.com:gnuboard/g5 2013-12-19 18:04:05 +09:00
kagla 151cd706b2 </form> 태그 누락 추가 2013-12-19 18:03:54 +09:00
kagla a2cbf6090c 시군을 js 파일의 배열값으로 로딩 2013-12-19 17:05:37 +09:00
whitedot 180b3e9aa0 Merge branch 'master' of github.com:gnuboard/g5 2013-12-19 16:10:34 +09:00
whitedot a21aee9ca5 공통: 회원정보찾기 스타일 및 새창 input 스타일 수정 2013-12-19 16:08:52 +09:00
kagla ace271e6bf 3항 연산자로 코드 변경 2013-12-19 15:14:15 +09:00
kagla 7171188068 도로명주소 검색 js 파일 분리 2013-12-19 15:09:15 +09:00
whitedot 0f6f5d4059 Merge branch 'master' of github.com:gnuboard/g5 2013-12-18 16:21:52 +09:00
whitedot 760fb35f3a 사용자: btn_frmline 스타일 수정 2013-12-18 16:21:37 +09:00
whitedot d08bd4aa6f 공통: #16 도로명 검색 마크업 및 스타일 2013-12-18 16:02:35 +09:00
whitedot 3f8720c57e 관리자: 검색 영역 input 높이 재설정 2013-12-18 15:26:35 +09:00
whitedot 5da57d0e6b include 주석처리 및 SQL 구문 수정 2013-12-18 13:34:45 +09:00
chicpro 7a517cd5d6 관리자 도로명 주소 스크립트 오류 수정 2013-12-17 17:54:06 +09:00
whitedot 460ec2444b Merge branch 'master' of github.com:gnuboard/g5 2013-12-17 09:32:13 +09:00
whitedot fbab970c4b 공통: 사용하지 않는 스타일 제거 2013-12-17 09:31:52 +09:00
chicpro 61c78397cc 지번주소 출력 엘리먼트 id 수정 2013-12-17 09:07:05 +09:00
chicpro 28fe25f56f Merge branch 'master' of github.com:gnuboard/g5 2013-12-16 15:11:31 +09:00
chicpro aa01000991 도로명 주소 검색 추가 2013-12-16 15:10:55 +09:00
gnuboard 85840f77ec 갤러리 리스트에서 내용에 이미지가 포함되어 있을 경우 썸네일 생성되지 않던 오류 수정 2013-12-16 13:34:28 +09:00
chicpro 6a344d1438 썸네일생성 후 지정 이미지 사이즈 유지되지 않는 오류 수정 2013-12-13 09:27:39 +09:00
gnuboard a2e6ba132d .htaccess 파일이 삭제되지 않도록 .gitignore 변경 2013-12-12 16:14:50 +09:00
gnuboard 1822ff7295 config.php 가 포함되도록 .gitignore 변경 2013-12-12 16:11:16 +09:00
gnuboard e1fb2464c7 cheditor 에서 이미지 사이즈 수정한대로 노출하기 2013-12-12 13:47:37 +09:00
gnuboard 1c67cf8ef3 Merge branch 'master' of github.com:gnuboard/g5 2013-12-12 13:12:13 +09:00
gnuboard 0ad6b58a9f .gitignore 변경 2013-12-12 13:11:52 +09:00
whitedot 955071e5f8 Merge branch 'master' of github.com:gnuboard/g5 2013-12-12 09:46:25 +09:00
whitedot 4231fc8aa4 관리자: 인기검색어관리 마크업 오류 수정 2013-12-12 09:31:54 +09:00
chicpro 64372b20d4 bo_order_search를 bo_use_search 로 수정 2013-12-12 09:10:13 +09:00
chicpro ef709c75eb 썸네일 생성시 exif_read_data 함수없을 때 예외처리 추가 2013-12-10 09:55:35 +09:00
chicpro bb5b2d0336 최근글 캐시 갱신시간 설정 추가 2013-12-10 09:54:46 +09:00
chicpro a5149bf17d 1:1문의 모바일 스킨 설정 오류 수정 2013-12-09 15:22:08 +09:00
whitedot abf9c3b769 공통: 버튼 스타일 정리 2013-12-09 12:44:11 +09:00
whitedot 92b6c975bd 인스톨: 라이센스 동의 안내 내용 코드 복구 2013-12-09 09:25:31 +09:00
whitedot f6dc1ec7a8 인스톨: 라이센스 동의 안내 내용 스타일 2013-12-09 09:24:38 +09:00
chicpro b50980e880 Merge branch 'master' of github.com:gnuboard/g5 2013-12-09 09:07:23 +09:00
chicpro 206cff9d34 설치 스크립트 수정 2013-12-09 09:07:12 +09:00
chicpro 14fe0a4e03 게시판관리 파일사용 전체적용 오류 수정 2013-12-09 09:02:24 +09:00
whitedot ab26411136 관리자: 게시판 추가/수정에서 일부 클래스명 수정 2013-12-09 09:01:41 +09:00
whitedot cf1fddd832 사용자: 로고 alt 홈페이지 타이틀로 변경 2013-12-06 17:39:06 +09:00
whitedot ab2c38e882 인스톨페이지 db 설정 실패 관련 마크업 스타일 수정 2013-12-06 17:13:56 +09:00
whitedot f3c8c35f39 사용자: frm_input, textarea 스타일 구분 2013-12-06 16:05:13 +09:00
whitedot e50ce4f158 모바일: input type tel 을 text 로 복구, '-' 입력 안 되는 문제 있음 2013-12-06 15:39:59 +09:00
whitedot 212d86b347 관리자: button cursor 지정 2013-12-06 15:04:28 +09:00
whitedot 4a5312221c 인스톨페이지 안내문구 일부 수정 2013-12-06 14:47:16 +09:00
whitedot 5277e4b17b 인스톨 페이지 디자인 마크업 수정 2013-12-06 14:39:24 +09:00
whitedot ad5a5327d6 모바일: 게시판 본문 읽기 글자 크기 수정, 최신글 스타일 수정 2013-12-06 11:05:07 +09:00
whitedot 49fc96a22a 공통: 텍스트 사이즈 조정 버튼 크기 수정 2013-12-06 10:26:13 +09:00
whitedot d7deeb04e0 모바일: 스타일 정리 중 2013-12-06 09:59:13 +09:00
whitedot a941936907 공통: 스타일 정리 중 2013-12-06 09:42:10 +09:00
whitedot 808908717d 모바일: 전체검색 레이어 닫기 버튼 추가 2013-12-05 18:25:08 +09:00
whitedot 6e80e62585 공통: 상단 마크업 수정, 모바일: 상단 디자인 및 스타일 수정 2013-12-05 18:22:58 +09:00
whitedot d2f2f1193c Merge branch 'master' of github.com:gnuboard/g5 2013-12-05 17:58:28 +09:00
whitedot 3dcef5a235 모바일: 전체검색 스타일 2013-12-05 17:48:46 +09:00
chicpro 2541a70ab7 Merge branch 'master' of github.com:gnuboard/g5 2013-12-05 17:21:29 +09:00
chicpro 003a3ccd18 도메인에 포트가 있을 경우 로그인 url 오류 수정 2013-12-05 17:21:14 +09:00
whitedot a45caca7ee 사용자: 상단 검색창 아이디 변경 2013-12-05 17:18:26 +09:00
whitedot 6b7142565e Merge branch 'master' of github.com:gnuboard/g5 2013-12-05 16:18:41 +09:00
whitedot fb8b3283ec 사용자: 기본 디자인 및 버튼 등 스타일 수정 2013-12-05 16:18:28 +09:00
gnuboard e92e852145 Merge branch 'master' of github.com:gnuboard/g5 2013-12-05 15:07:14 +09:00
gnuboard c05d81cf29 ereg -> preg_match 2013-12-05 15:06:57 +09:00
whitedot 43d018f11e 모바일: 1대1 문의 목록 스타일코드 위치 수정 2013-12-05 11:47:24 +09:00
whitedot f67669969e 모바일: 1대1 문의 추가 수정 2013-12-05 11:17:25 +09:00
whitedot 7698589c56 모바일: 1대1 문의 목록 마크업, 스타일 수정 2013-12-05 11:16:01 +09:00
chicpro 2e7f04b877 trackback 관련 구문 삭제 2013-12-04 13:11:22 +09:00
chicpro 2be3d0511c 새글에서 코멘트 삭제시 원글 삭제되는 오류 수정 2013-12-04 10:30:23 +09:00
whitedot 081ad552a0 관리자: 비교섹션 input 배경색 지정 2013-12-03 15:03:36 +09:00
whitedot dadb15eb63 Merge branch 'master' of github.com:gnuboard/g5 2013-12-03 14:57:54 +09:00
whitedot c306a8ae4f 공통: thead th text-align 지정 2013-12-03 14:57:36 +09:00
chicpro 7bfc0bb91b 회원관리 항목 오류 수정 2013-12-02 14:54:46 +09:00
whitedot 8854b106d9 Merge branch 'master' of github.com:gnuboard/g5 2013-12-02 11:56:50 +09:00
whitedot 80acfb73f0 공통: btn_submit 배경색 수정 2013-12-02 11:56:36 +09:00
chicpro 2137529555 exif 정보를 바탕으로 한 이미지 회전 수정 2013-12-02 08:51:52 +09:00
chicpro 01bcac7f0a 썸네일 생성시 exif 정보를 반영해 회전 적용 2013-11-29 14:57:32 +09:00
whitedot 5bbf616997 레이아웃 min-width 적용 2013-11-29 09:45:21 +09:00
whitedot 627ccfdb9c 공통: empty_list 추가 2013-11-28 16:51:16 +09:00
whitedot 4a27575731 Merge branch 'master' of github.com:gnuboard/g5 2013-11-28 14:09:03 +09:00
whitedot 0aae98108b 관리자: local_sch02 button margin 초기화 2013-11-28 14:08:53 +09:00
chicpro d432e749bb Merge branch 'master' of github.com:gnuboard/g5 2013-11-26 18:32:44 +09:00
chicpro 36f915ae20 모바일 에이전트 수정 2013-11-26 18:32:32 +09:00
whitedot 7036efc269 모바일: 온라인 서식 input type 지정 2013-11-26 18:04:34 +09:00
whitedot d46988592d 모바일: 새창 win_btn input 높이 조정 2013-11-26 16:44:17 +09:00
whitedot 8d1e7cb4fb 모바일: 페이징 스타일 수정 2013-11-26 14:47:30 +09:00
whitedot 3e732b63b5 관리자: ie7 gnb 스타일 수정, 내컴퓨터님 2013-11-26 13:43:40 +09:00
whitedot 9249afe585 gitignore cheditor 추가 2013-11-26 13:42:04 +09:00
gnuboard 4f53a0a3f4 skin/board 등 제거 2013-11-26 13:24:48 +09:00
whitedot 2ebbb01854 Merge branch 'master' of github.com:gnuboard/g5 2013-11-26 10:44:55 +09:00
whitedot 036e0f072c /config.php 로 변경 2013-11-26 10:44:43 +09:00
whitedot 00b7a3dc87 Merge branch 'master' of github.com:gnuboard/g5 2013-11-26 10:24:48 +09:00
whitedot 88961b00ce 관리자: empty_table important 처리 2013-11-26 10:24:42 +09:00
whitedot 1c61678ebc 관리자: 목록 홀짝 배경색 수정 2013-11-26 10:21:24 +09:00
chicpro 2d07809a88 오타 수정 2013-11-26 09:02:36 +09:00
whitedot 111222720a 사용자: #13 새글에 게시물 선택삭제 기능 마크업 2013-11-25 16:51:09 +09:00
whitedot 30d133e4ff 관리자: empty_data > empty_table 복원 2013-11-25 16:03:49 +09:00
whitedot 2c6931107f 관리자: 쇼핑몰현황 작업 중 empty_table -> empty_data 로 수정 2013-11-25 15:54:47 +09:00
whitedot 2e2983095b Merge branch 'master' of github.com:gnuboard/g5 2013-11-25 15:12:32 +09:00
whitedot d4ad2cbe37 관리자: 목록 홀짝 배경색 클래스명 수정 2013-11-25 15:12:18 +09:00
gnuboard 28e6de04c6 Merge branch 'allchkdel' 2013-11-25 14:59:26 +09:00
gnuboard 4210b25657 새글에 선택삭제 기능추가 2013-11-25 14:59:13 +09:00
gnuboard e93e829fb6 전체게시물에 선택삭제 기능넣기 2013-11-25 12:57:47 +09:00
whitedot 41b1abedc9 공통: win_btn a 스타일 통일 2013-11-22 15:19:58 +09:00
whitedot a1aa2b61f6 Merge branch 'master' of github.com:gnuboard/g5 2013-11-22 15:14:19 +09:00
whitedot fa3d93dac2 공통: tbl_head02 추가 2013-11-22 15:14:09 +09:00
chicpro b60a509ae6 drop 명령 빠진 것 추가 2013-11-22 09:01:44 +09:00
whitedot 526e250898 사용자: legend margin padding 초기화 2013-11-21 14:47:57 +09:00
whitedot f820932e1f 공통: #12 1대1 문의 dt 스타일 수정 2013-11-21 10:27:17 +09:00
whitedot 38d0d5ab7f 모바일: #12 1대1 문의 이메일 휴대폰 스타일 2013-11-21 10:26:47 +09:00
whitedot 582e1146d0 사용자: #12 1대1 문의 이메일 휴대폰 스타일 2013-11-21 09:54:11 +09:00
chicpro a689502c11 1:1문의 view에 이메일, 휴대폰 출력 추가 2013-11-20 14:35:53 +09:00
chicpro 89c55c1704 댓글 캡챠 오류 재수정 2013-11-20 09:13:17 +09:00
chicpro f282d39646 사용하지 않는 파일 삭제 2013-11-19 15:13:41 +09:00
chicpro 393bd4900a BBS 경로 오류 수정 2013-11-19 11:22:53 +09:00
chicpro 07ee026220 캡챠 음성 듣기 오류 수정 2013-11-19 09:21:01 +09:00
chicpro c07c00659f G5_USE_MOBILE 상수 추가에 따른 모바일 PC 버전 보기 버튼 코드 수정 2013-11-18 18:21:52 +09:00
gnuboard c74c7cd726 G5_USE_MOBILE 상수 추가 2013-11-18 18:14:20 +09:00
gnuboard cb3e4a55cd euc-kr referer 를 utf-8 로 변환하도록 수정 2013-11-18 13:45:13 +09:00
gnuboard 7c6335fb47 preg_replace 에 /u - unicode safe 적용 2013-11-18 13:34:24 +09:00
chicpro dbe8c45fa5 Merge branch 'master' of github.com:gnuboard/g5 2013-11-15 15:03:47 +09:00
chicpro 11dc677020 get_sock 대체함수 common.lib.php 로 이동 2013-11-15 15:03:34 +09:00
whitedot 450682f810 관리자: #11 접속자검색 마크업2 2013-11-15 13:34:26 +09:00
whitedot 5a670fa304 관리자: #11 접속자검색 마크업 2013-11-15 13:25:40 +09:00
gnuboard effc8231ac 접속자검색 추가 2013-11-15 11:50:32 +09:00
chicpro dcf57f6567 우편번호 검색에서 검색 결과가 없어도 창닫기 버튼 출력되도록 수정 2013-11-13 15:50:07 +09:00
chicpro 9e32d84dff 댓글의 답변 등록시 캡차 출력되지 않는 오류 재수정 2013-11-13 09:33:57 +09:00
whitedot 6fd275c5af Merge branch 'master' of github.com:gnuboard/g5 2013-11-12 14:21:38 +09:00
whitedot ad198c40e8 갯수 -> 개수2, 뮤죤님 2013-11-12 14:21:20 +09:00
chicpro c36313ce5a 미투데이 관련 코드 삭제 2013-11-12 14:17:37 +09:00
whitedot 9d6eda165a Merge branch 'master' of github.com:gnuboard/g5 2013-11-12 14:15:11 +09:00
whitedot 3816645aae 갯수 -> 개수 혹은 수 로 수정, 뮤죤님 2013-11-12 14:14:58 +09:00
chicpro d77bf259aa gcaptcha 삭제 2013-11-12 13:29:49 +09:00
chicpro 000c7376a0 댓글의 댓글 작성시 캡챠 출력되지 않는 오류 수정 2013-11-12 13:27:56 +09:00
chicpro 23fb89c6e3 대용량 파일 다운로드 대응 코드 추가 2013-11-12 10:35:09 +09:00
whitedot b42ef72337 Merge branch 'master' of github.com:gnuboard/g5 2013-11-11 17:47:19 +09:00
whitedot 19ad51dc91 공통: 댓글 목록 하단 여백 설정, 사노라가노라님 2013-11-11 17:46:24 +09:00
chicpro cac8c45c51 설치 스크립트에 빠진 1:1문의 테이블 설정 상수 추가 2013-11-11 14:23:08 +09:00
whitedot c1bdc13a7a 모바일: 인기검색어 스타일 수정 2013-11-08 18:15:24 +09:00
whitedot c357423681 사용자: button cursor pointer 추가 2013-11-08 16:12:59 +09:00
whitedot d50ab5353d Merge branch 'master' of github.com:gnuboard/g5 2013-11-08 09:28:59 +09:00
whitedot d000bb120b 사용자: gnb 가운데 정렬 수정 2013-11-08 09:28:46 +09:00
chicpro c128a86bf3 대용량 파일 다운로드 오류 수정 2013-11-07 14:44:04 +09:00
whitedot 35a7ab09c1 관리자: 회원관리 목록 행구분 배경색 마크업 2013-11-07 10:41:54 +09:00
whitedot 5b13693601 Merge branch 'master' of github.com:gnuboard/g5 2013-11-07 10:39:11 +09:00
whitedot 848e9ff54f 관리자: 행구분 배경색 스타일 2013-11-07 10:38:51 +09:00
chicpro 37b09e63bf Merge branch 'master' of github.com:gnuboard/g5 2013-11-07 10:31:08 +09:00
chicpro fee3813b50 리스트 tr_bg 클래스 처리 코드 간소화 2013-11-07 10:30:48 +09:00
whitedot 2a9f144e0d 관리자: 행배경색 수정 2013-11-07 09:59:36 +09:00
chicpro 9e4b6c635a 기본환경설정의 sms 설정 변수 오류 수정 2013-11-06 10:51:43 +09:00
chicpro d0d8e3d2b7 일대일 문의 기능 추가 2013-11-06 10:05:02 +09:00
whitedot 223c271399 사용자: CSS RESET 보완2 2013-11-06 10:00:13 +09:00
whitedot 5fa4af1c9c 사용자: CSS RESET 보완 2013-11-06 09:59:16 +09:00
whitedot b38aa084d9 ie=edge => ie=10 2013-11-05 16:07:49 +09:00
whitedot 6c88914bf0 모바일: 이름입력칸 넓게 2013-11-05 09:56:14 +09:00
whitedot a25042b2a4 Merge branch 'master' of github.com:gnuboard/g5 2013-11-05 09:50:22 +09:00
whitedot cc1a955a7f 관리자: 새창 local_ 요소 min-width 재지정 2013-11-05 09:50:10 +09:00
chicpro 0edefbe3f9 mysql5.6.6이상에서 sql_mode 설정 코드 추가 2013-11-05 09:23:43 +09:00
chicpro 2bbbfe4553 Merge branch 'master' of github.com:gnuboard/g5 2013-11-04 17:52:50 +09:00
chicpro 24a0148ebc 게시판 리스트 선택복사,이동 팝업 닫은 후 다시 선택삭제 했할 경우 제대로 처리되지 않는 문제 수정 2013-11-04 17:52:29 +09:00
gnuboard 34f04e76ec </textarea> 앞의 공란 제거 2013-11-04 17:36:21 +09:00
gnuboard f95cae2ee5 필터링 textarea 에 잘못 코딩된 공백을 제거 2013-11-04 17:08:15 +09:00
whitedot 65c7ed8095 모바일: 온라인 서식 너비 조정 2013-11-04 11:12:15 +09:00
whitedot 03260932ee Merge branch 'master' of github.com:gnuboard/g5 2013-11-04 10:11:23 +09:00
whitedot 372793cb7a 공통 wrp -> wrap 으로 2013-11-04 10:11:09 +09:00
chicpro b9961bf8be 게시판 리스트 검색 stx 필드에 id 지정되지 않은 것 수정 2013-11-01 18:08:15 +09:00
whitedot 1a0364ee62 사용자: 서식 진행 단계 취소 버튼 스타일 어긋나는 문제 수정, fm25님 2013-11-01 15:19:31 +09:00
whitedot d2a0b54dfc Merge branch 'master' of github.com:gnuboard/g5 2013-11-01 13:20:24 +09:00
whitedot 6a3b81499a 관리자: poll_form.php 마크업 오류 수정 2013-11-01 13:01:47 +09:00
chicpro 70560cd537 분류 출력부분에서 사용되지 않는 form 태그 삭제 2013-11-01 11:53:02 +09:00
chicpro 77680ff29f 분류 사용시 열린 분류 문구 초기화 되지 않는 오류 수정 2013-11-01 11:52:33 +09:00
whitedot 76c6970e4f LESS 적용 제거 2013-10-31 17:30:30 +09:00
whitedot 5de52ec045 less 원본 파일 추가 2013-10-31 15:18:43 +09:00
whitedot 278fcebe02 모바일: CSS em 을 px 로 수정 2013-10-31 11:15:55 +09:00
whitedot ed2404ce57 Merge branch 'master' of github.com:gnuboard/g5 2013-10-30 11:37:32 +09:00
whitedot fa7b2b4fe3 공통: 로그인 시 회원아이디 패스워드 찾기 새창 알림 오류 수정 2013-10-30 11:37:16 +09:00
gnuboard 278da2459f 회원아이콘 반영되지 않던 오류 해결 2013-10-28 14:05:19 +09:00
whitedot 204a3fd83c 관리자: 새창 스타일 수정2 2013-10-24 10:44:29 +09:00
whitedot 745802eaea 관리자: 새창 스타일 수정 2013-10-24 10:43:28 +09:00
whitedot cba59f0b70 Merge branch 'master' of github.com:gnuboard/g5 2013-10-23 11:00:19 +09:00
whitedot 0473e9f081 관리자: min-width 적용 2013-10-23 11:00:08 +09:00
gnuboard 6a83623170 설치시 환경설정의 관리자 메일 주소에 값을 넣어줌 2013-10-22 18:12:36 +09:00
whitedot a1b226f8a3 Merge branch 'master' of github.com:gnuboard/g5 2013-10-22 11:40:15 +09:00
whitedot f74603dcef 공통: required 스타일 important 처리 2013-10-22 11:40:03 +09:00
gnuboard 9c2b3b1c46 mb_id 255 에서 varchar(20) 으로 수정 2013-10-22 10:15:12 +09:00
gnuboard d9dfdbf474 게시판이 하나도 존재하지 않을 경우 나오던 오류 수정 2013-10-21 15:40:08 +09:00
whitedot a442437201 Merge branch 'master' of github.com:gnuboard/g5 2013-10-21 14:12:58 +09:00
whitedot f0bc1d5586 모바일: required 스타일 수정 2013-10-21 14:12:51 +09:00
whitedot 904baa3db2 사용자: required 스타일 수정 2013-10-21 14:11:19 +09:00
gnuboard 73524bd7b4 cf_gcaptcha_mp3 를 cf_captcha_mp3 로 이름 변경 2013-10-21 12:00:11 +09:00
gnuboard 6d4ddc7ee3 캡차파일 자동 삭제 코드 수정 2013-10-21 11:59:32 +09:00
gnuboard a451a124f6 캡챠파일삭제 파일이름 변경 2013-10-21 11:59:09 +09:00
gnuboard fae4241fb7 mb_id varchar(20) 으로 수정 2013-10-21 11:48:00 +09:00
gnuboard f5e13b38cd Merge branch 'master' of github.com:gnuboard/g5 2013-10-16 16:27:49 +09:00
gnuboard 207f458186 캡챠사용시 ss_bo_table, ss_wr_id 세션이 생기지 않던 오류 수정 & g5_captcha_path 제거 2013-10-16 16:27:34 +09:00
whitedot 6d86f35b02 관리자: 회원관리 목록 본인확인, 상태/권한 셀 정렬 스타일 2013-10-16 15:02:22 +09:00
gnuboard bc8ef2d4c6 페이지 첫로딩시에 캡챠소리가 나지 않던 오류 수정 2013-10-16 13:58:10 +09:00
whitedot 994f0c5905 관리자: lnb 구분선 추가 2013-10-16 13:48:03 +09:00
whitedot 3ce235581e 공통: 갤러리 스킨 전체선택 조건문 추가, 사노라가노라님 2013-10-16 13:36:42 +09:00
gnuboard b23cbfea16 cf_gcaptcha_mp3 를 cf_captcha_mp3 로 제대로 수정되지 않음 2013-10-15 17:17:23 +09:00
gnuboard 680990d6d2 define('G5_CAPTCHA_DIR', 'kcaptcha'); // kcaptcha, gcaptcha 중에서 선택 사용하세요. 기본은 kcaptcha 2013-10-15 15:48:10 +09:00
whitedot b64e05b3c7 캡챠 작업 후 안내메세지 제거 2013-10-15 14:08:52 +09:00
gnuboard 712082dc8f Merge branch 'kcaptcha' of github.com:gnuboard/g5 into kcaptcha
Conflicts:
	config.php
	mobile/skin/member/basic/register_form.skin.php
2013-10-15 11:54:31 +09:00
whitedot 8252129dd0 공통: 리디자인 중 2013-10-15 11:25:07 +09:00
whitedot 65f5262476 공통; 리디자인 작업 중 2013-10-14 18:14:26 +09:00
whitedot 0fbb63a64c merge 충돌 수정 2013-10-14 17:28:13 +09:00
whitedot f2a5866c52 모바일: 리디자인 작업 중 2013-10-14 17:25:47 +09:00
whitedot e2f2780a51 공통: frm_tbl -> tbl_frm01 tbl_frm 으로 수정 2013-10-14 16:59:22 +09:00
whitedot 6f5803bb3c 모바일: 글자 크기 등 스타일 수정 2013-10-14 15:49:50 +09:00
gnuboard 1dbaf4b5d6 모바일에서 캡챠가 나오도록 수정 2013-10-14 15:46:18 +09:00
whitedot 80643e9090 캡챠: #3 kcaptcha 버튼 스타일 수정 2013-10-14 15:40:40 +09:00
whitedot aac541afb9 캡챠: #3 kcaptcha 마크업 및 스타일 수정 2013-10-14 15:30:41 +09:00
whitedot 8e2fabbfae 관리자: 테스트메일 발송 마크업 및 스타일 2013-10-14 15:14:02 +09:00
whitedot 51938f0a2b merge 충돌 2013-10-14 15:08:34 +09:00
whitedot cfd8db6b9e 관리자: 가변형으로 변경 2013-10-14 14:48:05 +09:00
whitedot 1192b139bd lnb 스타일 2013-10-14 11:34:13 +09:00
chicpro 3caba47f5e Merge branch 'master' of github.com:gnuboard/g5 2013-10-14 11:20:09 +09:00
chicpro 5b25a05bcc 관리자 서브메뉴 출력 코드 추가 2013-10-14 11:20:02 +09:00
whitedot 88824eb7b9 사용자: required 스타일 및 회원가입완료 페이지 SI 수정, fm25님 2013-10-14 10:40:53 +09:00
whitedot c39eb7f019 Merge branch 'master' into kcaptcha 2013-10-14 10:10:34 +09:00
whitedot e0fce28cbe 사용자: css 오타 수정 및 갤러리스킨 전체선택 추가, 사노라가노라님 2013-10-14 10:04:36 +09:00
gnuboard a9bdbc6394 캡챠 경로 상수명 변경 2013-10-11 17:16:40 +09:00
whitedot b9c3c2d186 모바일: 스킨별 커스터마이징 스타일 삭제 2013-10-11 14:30:40 +09:00
whitedot 421cff3457 사용자: 스킨 별 커스터마이징 스타일 삭제 2013-10-11 14:20:20 +09:00
gnuboard f2d63ee9be KCAPTCHA 캡챠 플러그인 추가 2013-10-10 15:48:07 +09:00
whitedot 03dd38b040 Merge branch 'master' of github.com:gnuboard/g5 2013-10-10 14:42:51 +09:00
whitedot a6d5486554 사용자: 전체검색 버튼 스타일 수정, 사노라가노라님 건의 2013-10-10 14:42:21 +09:00
chicpro 224dc0679a canonical 및 meta 출력 위치 수정 2013-10-10 13:45:52 +09:00
gnuboard a253bea015 Merge branch 'master' of github.com:gnuboard/g5 2013-10-08 18:14:10 +09:00
chicpro 6500ba3270 Merge branch 'master' of github.com:gnuboard/g5 2013-10-08 16:55:56 +09:00
chicpro 617008f802 html 옵션을 사용하지 않은 게시글 복사 이동시 로그에 태그 포함되는 문제 수정 2013-10-08 16:54:42 +09:00
whitedot 300aeca890 Merge branch 'master' of github.com:gnuboard/g5 2013-10-08 16:30:51 +09:00
whitedot f5d54b0332 모바일: 게시판스킨 글쓰기 페이지 아이디 처리 2013-10-08 16:27:49 +09:00
gnuboard ca19758ef1 Merge branch 'master' of github.com:gnuboard/g5 2013-10-08 10:28:03 +09:00
chicpro 97a86865fb 게시판 글쓰기 최소 최대 글수 설정 안내 내용 추가 2013-10-08 10:19:50 +09:00
chicpro 7bd9d5cca0 mysql 하위 버전에서의 show columns 오류 수정 2013-10-08 10:11:37 +09:00
gnuboard f6fd7d0f6e 사용하지 않는 get_list_file() 함수 코드 삭제 2013-10-07 14:09:14 +09:00
gnuboard b18b19c703 게시판 카테고리 선택후 선택삭제시 카테고리 풀리는 현상을 해결 2013-10-07 13:33:14 +09:00
gnuboard 0d529803d2 Merge branch 'master' of github.com:gnuboard/g5 2013-10-07 13:22:06 +09:00
gnuboard fb0b5839b0 모바일 갤러리 이미지 폭 높이 그룹적용 전체적용 이 되지 않던 현상 수정 2013-10-07 11:50:29 +09:00
gnuboard 1668ed095b 공지글인 경우는 해당글을 같은 페이지에서 다시 노출하지 않는다. 2013-10-07 11:17:30 +09:00
whitedot ad3b75ab3c Merge branch 'master' of github.com:gnuboard/g5 2013-10-07 10:37:09 +09:00
whitedot dfa4ba9e01 공통: #7 textarea,select font-family 지정 2013-10-07 10:36:52 +09:00
gnuboard ee1923d558 Merge branch 'master' of github.com:gnuboard/g5 2013-10-06 12:07:06 +09:00
gnuboard c40457c1cf select box 나 redio button 에서 사용하기 위해 get_checked 함수 생성 2013-10-04 17:59:39 +09:00
chicpro 6b196d7b04 Merge branch 'master' of github.com:gnuboard/g5 2013-10-04 15:17:11 +09:00
chicpro f2d073c8ba 설치시 GD 라이브러리 체크 코드 추가 2013-10-04 15:17:01 +09:00
whitedot ad84629fa3 Merge branch 'master' of github.com:gnuboard/g5 2013-10-04 13:28:57 +09:00
whitedot d5e3dbc115 공통: textarea 기본 폰트 사이즈, 사노라가노라님 건의 2013-10-04 13:28:28 +09:00
chicpro 4be2995c98 okname key 폴더 추가 2013-10-04 11:29:08 +09:00
chicpro a43628a0eb php 5.3 미만에서는 mysql_real_escape_string 적용 후 stripslashes 적용되도록 수정 2013-10-04 10:10:00 +09:00
whitedot 09215c8b39 사용자: btn_frmline 글자색 게시판스킨 스타일에도 적용 2013-10-02 18:38:10 +09:00
whitedot 62f25b27a7 Merge branch 'master' of github.com:gnuboard/g5 2013-10-02 18:36:21 +09:00
whitedot a3ea9ebee9 사용자: btn_frmline 글자색 2013-10-02 18:36:10 +09:00
chicpro 23fd497041 리사이즈 실행시 width 구하도록 수정 2013-10-02 17:28:59 +09:00
chicpro e969fff0a8 sns kakao_appname urlencode 처리 2013-10-02 13:03:22 +09:00
chicpro a1a70086ac 모바일 화면크기 쿠키저장 제거 2013-10-02 12:54:42 +09:00
chicpro c2fcdfc2c7 모바일에서 텍스트 변경 작동하지 않는 오류 수정 2013-10-02 11:58:59 +09:00
chicpro ff707fc932 Merge branch 'master' of github.com:gnuboard/g5 2013-10-02 11:57:02 +09:00
chicpro fa6c798f06 모바일 썸네일 생성시 width 계산 코드 제거 2013-10-02 11:56:45 +09:00
whitedot a817c11590 Merge branch 'master' of github.com:gnuboard/g5 2013-10-02 11:54:03 +09:00
whitedot d4da2fbd06 사용자: 게시판스킨 에디터 미사용 시 내용 입력 높이 조절 2013-10-02 11:53:17 +09:00
chicpro 5b9661be59 view 이미지 리사이즈 때 height 초기화 추가 2013-10-02 11:35:52 +09:00
chicpro 6569f03fba Merge branch 'master' of github.com:gnuboard/g5 2013-10-02 11:24:34 +09:00
chicpro a6051aa758 모바일 갤러리 리스트 정렬 스크립트 추가 및 view 이미지 리사이즈 스크립트 변경 2013-10-02 11:24:27 +09:00
whitedot a31d0d9961 모바일: 새창 테이블 스타일 수정 2013-10-02 10:22:16 +09:00
whitedot 2a6e9fc94c 공통: 갤러리스킨 id, class 간소화 2013-10-02 10:20:42 +09:00
whitedot 8969f499be 공통: 갤러리스킨 id, class 간소화 2013-10-02 10:05:23 +09:00
whitedot 1c0d38097f 모바일: 갤러리스킨 리스트 마진을 패딩으로, 페이지 타이틀 패딩값 설정 2013-10-02 09:56:08 +09:00
whitedot 3897bff774 Merge branch 'master' of github.com:gnuboard/g5 2013-10-02 09:41:05 +09:00
whitedot 37922ab699 모바일: css 필요없는 코드 삭제 2013-10-02 09:40:46 +09:00
chicpro 0a1259b3a5 Merge branch 'master' of github.com:gnuboard/g5 2013-10-01 17:53:10 +09:00
chicpro effebec8aa 모바일 썸네일 width 계산 코드 수정 2013-10-01 17:52:17 +09:00
chicpro d9af5216e0 모바일 width viewport 사이즈로 변경 2013-10-01 17:51:50 +09:00
whitedot d29b3f1e63 모바일: mobile.css 와 skin/(x)/style.css 중첩 처리 2013-10-01 17:23:29 +09:00
whitedot 34b31715dc 사용자: default.css 와 skin/(x)/style.css 중첩 처리 2013-10-01 13:51:19 +09:00
whitedot f5bae01550 공통: css 불필요한 important 제거 2013-10-01 11:15:05 +09:00
whitedot aed9ef05c1 공통: label input 순서 조정 2013-09-30 17:59:04 +09:00
nemoluv 5a6b84a924 #5 required 처리 안된 부분 수정 2013-09-30 17:50:00 +09:00
whitedot 7db2f889b1 canonical 지정 2013-09-30 13:48:43 +09:00
whitedot 7ea8bfd3c9 공통: 테이블 th, td 패딩값 조정, 사노라가노라님 건의 2013-09-30 10:11:15 +09:00
whitedot 99c43b6d58 모바일: 로고 padding 수정 2013-09-26 10:04:56 +09:00
whitedot 69d6b7a0b5 관리자: gnb 메뉴명 중 캐쉬파일 > 캐시파일로 수정 2013-09-25 11:49:12 +09:00
whitedot 8dddaccde6 merge 처리 2013-09-25 09:28:42 +09:00
whitedot 7753b5e04d 공통: select font-size 지정, 사노라가노라님 건의 2013-09-25 09:27:44 +09:00
gnuboard c987dc857e 설치시 data/tmp 디렉토리 생성 2013-09-24 13:57:09 +09:00
chicpro b88c274e72 input 필드의 기본 폰트 사이즈 추가 2013-09-23 17:29:54 +09:00
chicpro da73358a66 폰트 리사이즈를 class를 이용한 방법으로 수정 2013-09-23 17:28:33 +09:00
whitedot b98d72a1e6 공통: 텍스트 사이즈 조절용 클래스 추가 2013-09-23 13:35:51 +09:00
whitedot a31fdfa004 Merge branch 'master' of github.com:gnuboard/g5 2013-09-23 11:44:58 +09:00
whitedot d2c6f622a9 관리자: frm_tbl 스타일 수정 2013-09-23 11:42:43 +09:00
chicpro e85b238ac1 회원탈퇴 후 이동안되는 오류 수정 2013-09-23 09:21:32 +09:00
chicpro f603e4c565 Merge branch 'master' of github.com:gnuboard/g5 2013-09-17 13:44:40 +09:00
chicpro b4de497107 폰트 리사이즈 함수 실행 코드를 tail.php 파일로 이동 2013-09-17 13:44:24 +09:00
whitedot e9a0e77b90 관리자: tnb ie6 깨지는 문제 수정 2013-09-17 13:03:41 +09:00
chicpro 21eaa1962d 폰트 사이즈 변경 후 기본크기 설정 시 line-height 설정 문제 수정 2013-09-17 12:52:55 +09:00
chicpro 210c8d89c6 set_time_limit 경고 출력되지 않도록 수정 2013-09-17 11:34:14 +09:00
chicpro e25a403bea outlogin_url 값 추가 2013-09-16 17:48:02 +09:00
chicpro 485720dcbf 모바일 게시판 제목 입력폼 넓이 수정 2013-09-16 17:41:27 +09:00
chicpro 4571c91fcd bo_mobile_subject 필드 추가 2013-09-16 17:38:53 +09:00
chicpro 0495d3adb0 Merge branch 'master' of github.com:gnuboard/g5 2013-09-13 17:02:23 +09:00
chicpro 9bcb84097d 투표목록 colspan 값 수정 2013-09-13 17:01:34 +09:00
gnuboard 5d332663d6 상수 미선언으로 인한 notice 오류 해결 2013-09-13 14:30:09 +09:00
nemoluv 720b70acba 리스트 없을때 colspan 수정완료 2013-09-13 14:27:07 +09:00
gnuboard 0b2e174e97 README.md 삭제 2013-09-13 13:37:43 +09:00
gnuboard eaf88fb55a data 폴더를 무시하도록 data/ 와 같이 수정 2013-09-13 13:28:20 +09:00
gnuboard 949f1215b6 extend 폴더 포함 2013-09-13 13:27:27 +09:00
gnuboard e402036ff7 config.php 제거 2013-09-13 12:03:24 +09:00
gnuboard 07a482985a config.php 추가 2013-09-13 12:03:02 +09:00
gnuboard 8e820d3f89 Merge branch 'master' of github.com:gnuboard/g5 2013-09-13 11:45:42 +09:00
gnuboard 700a433ae5 로고 변경 2013-09-13 11:45:25 +09:00
gnuboard fd46aefadd 그누보드5 2013-09-13 11:10:15 +09:00
kagla 2fe494347d Update README.md 2013-09-13 11:09:47 +09:00
gnuboard 41d21074b5 그누보드5 2013-09-13 11:03:33 +09:00
kagla 04c3efa279 Initial commit 2013-09-12 18:28:55 -07:00
2400 changed files with 309790 additions and 56944 deletions
+2
View File
@@ -0,0 +1,2 @@
.gitattributes export-ignore
.gitignore export-ignore
+3 -2
View File
@@ -6,7 +6,8 @@ sirgle/
test.php
*.key
*.sh
cheditor*/
ckeditor43/
cheditor5.*/
ckeditor*/
log/
g5_tree/
naver*.html
+197 -163
View File
@@ -2,7 +2,7 @@
프로그램 명칭 : 그누보드5 ( GNU Board 5 )
저작자 : (주)에스아이알소프트 http://sir.co.kr
저작자 : (주)에스아이알소프트 http://sir.kr
라이센스 (License)
@@ -13,196 +13,230 @@
2. 법적인 분쟁이 발생한 경우 저작자의 회사 소재지를 관할하는 관할법원에서 분쟁을 해결합니다.
3. 이 라이센스 파일 및 내용은 저작자를 제외한 어느 누구도 추가, 수정, 삭제할 수 없습니다.
----- GPL 번역문 --------------------------------------------------------
----- LGPL 번역문 --------------------------------------------------------
GNU 일반 공중 사용 허가서
2판, 1991년 6월
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
누구든지 본 사용 허가서를 있는 그대로 복제하고 배포할 수
있습니다. 그러나 본문에 대한 수정은 허용되지 않습니다.
GNU 약소 일반 공중 사용 허가서
2.1판, 1999년 2월
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
누구든지 본 사용 허가서를 있는 그대로 복제하고 배포할 수 있습니다.
그러나 본문에 대한 수정은 허용되지 않습니다.
[이 문서는 GNU 약소 일반 공중 사용 허가서의 이름으로 공표된 최초의 판본입니다.
본 사용 허가서는 GNU 라이브러리 일반 공중 사용 허가서 2판의 후속판으로
간주되기 때문에 2.1의 판번호를 갖고 있습니다.]
전 문
소프트웨어에 적용되는 대부분의 사용 허가서(license)들은 소프트웨어에 대한 수정과 공유의 자유를 제한하려는 것을 그 목적으로 합니다. 그러나 GNU 일반 공중 사용 허가서(이하, ``GPL''이라고 칭합니다.)는 자유 소프트웨어에 대한 수정과 공유의 자유를 모든 사용자들에게 보장하기 위해서 성립된 것입니다. 자유 소프트웨어 재단이 제공하는 대부분의 소프트웨어들은 GPL에 의해서 관리되고 있으며, 몇몇 소프트웨어에는 별도의 사용 허가서인 GNU 라이브러리 일반 공중 사용 허가서(GNU Library General Public License)를 대신 적용하기도 합니다. 자유 소프트웨어란, 이를 사용하려고 하는 모든 사람에 대해서 동일한 자유와 권리가 함께 양도되는 소프트웨어를 말하며 프로그램 저작자의 의지에 따라 어떠한 종류의 프로그램에도 GPL을 적용할 수 있습니다. 따라서 여러분이 만든 프로그램에도 GPL을 적용할 수 있습니다.
자유 소프트웨어를 언급할 때 사용되는 ``자유''라는 단어는 무료(無料)를 의미하는 금전적인 측면의 자유가 아니라 구속되지 않는다는 관점에서의 자유를 의미하며, GPL은 자유 소프트웨어를 이용한 복제와 개작, 배포와 수익 사업 등의 가능한 모든 형태의 자유를 실질적으로 보장하고 있습니다. 여기에는 원시 코드(source code)의 전부 또는 일부를 원용해서 개선된 프로그램을 만들거나 새로운 프로그램을 창작할 수 있는 자유가 포함되며, 자신에게 양도된 이러한 자유와 권리를 보다 명확하게 인식할 수 있도록 하기 위한 규정도 포함되어 있습니다.
GPL은 GPL 안에 소프트웨어를 양도받을 사용자의 권리를 제한하는 조항과 단서를 별항으로 추가시키지 못하게 함으로써 사용자들의 자유와 권리를 실제적으로 보장하고 있습니다. 자유 소프트웨어의 개작과 배포에 관계하고 있는 사람들은 이러한 무조건적인 권리 양도 규정을 준수해야만 합니다.
예를 들어 GPL 프로그램을 배포할 경우에는 프로그램의 유료 판매나 무료 배포에 관계없이 자신이 해당 프로그램에 대해서 가질 수 있었던 모든 권리를, 프로그램을 받게될 사람에게 그대로 양도해 주어야 합니다. 이 경우, 프로그램의 원시 코드를 함께 제공하거나 원시 코드를 구할 수 있는 방법을 확실히 알려주어야 하고 이러한 모든 사항들을 사용자들이 분명히 알 수 있도록 명시해야 합니다.
자유 소프트웨어 재단은 다음과 같은 두 가지 단계를 통해서 사용자들을 권리를 보호합니다. (1) 소프트웨어에 저작권을 설정합니다. (2) 저작권의 양도에 관한 실정법에 의해서 유효한 법률적 효력을 갖는 GPL을 통해 소프트웨어를 복제하거나 개작 및 배포할 수 있는 권리를 사용자들에게 부여합니다.
자유 소프트웨어를 사용하는 사람들은 반복적인 재배포 과정을 통해 소프트웨어 자체에 수정과 변형이 일어날 수도 있으며, 이는 최초의 저작자가 만든 소프트웨어가 갖고 있는 문제가 아닐 수 있다는 개연성을 인식하고 있어야 합니다. 우리는 개작과 재배포 과정에서 다른 사람에 의해 발생된 문제로 인해 프로그램 원저작자들의 신망이 훼손되는 것을 원하지 않습니다. GPL에 자유 소프트웨어에 대한 어떠한 형태의 보증도 규정하지 않는 이유는 이러한 점들이 고려되었기 때문이며, 이는 프로그램 원저작자와 자유 소프트웨어 재단의 자유로운 활동을 보장하는 현실적인 수단이기도 합니다.
특허 제도는 자유 소프트웨어의 발전을 위협하는 요소일 수밖에 없습니다. 자유 프로그램을 재배포하는 사람들이 개별적으로 특허를 취득하게 되면, 결과적으로 그 프로그램이 독점 소프트웨어가 될 가능성이 있습니다. 자유 소프트웨어 재단은 이러한 문제에 대처하기 위해서 어떠한 특허에 대해서도 그 사용 권리를 모든 사람들(이하, ``공중(公衆)''이라고 칭합니다.)에게 자유롭게 허용하는 경우에 한해서만 자유 소프트웨어와 함께 사용할 수 있다는 것을 명확히 밝히고 있습니다.
복제(copying)와 개작(modification) 및 배포(distribution)에 관련된 구체적인 조건과 규정은 다음과 같습니다.
소프트웨어에 적용되는 대부분의 사용 허가서들은 소프트웨어에 대한 수정과 공유의 자유를 제한하려는 것을 그 목적으로 합니다. 그러나 GNU 일반 공중 사용 허가서들은 자유 소프트웨어에 대한 수정과 공유의 자유를 모든 사용자들에게 보장하기 위해서 성립된 것입니다.
본 사용 허가서인 GNU 약소 일반 공중 사용 허가서(이하, ``LGPL''이라고 칭합니다.)는 자유 소프트웨어 재단과 그밖의 저작자들이 이를 채택하기로 결정한, 주로 라이브러리와 같은 일부 특정한 소프트웨어 꾸러미에 적용됩니다. 누구든지 자신의 프로그램에 LGPL을 적용할 수 있지만, 어떤 상황에서 어떤 사용 허가서를 선택하는 것이 보다 나은 전략인지에 대해서 다음의 설명을 기준으로 먼저 신중히 고려해 보시기 바랍니다.
자유 소프트웨어라는 말에서 사용된 ``자유''라는 단어는 무료를 의미하는 금전적인 측면의 자유가 아니라 구속되지 않는다는 관점에서의 자유를 의미하며, GNU 일반 공중 사용 허가서들은 자유 소프트웨어를 이용한 복제와 개작 및 배포와 수익 사업 등의 가능한 모든 형태의 자유를 실질적으로 보장하고 있습니다. 여기에는 원시 코드의 일부 또는 전부를 원용해서 보다 개선된 프로그램을 만들거나 새로운 프로그램을 창작할 수 있는 자유가 보장되어 있으며, 자신에게 양도된 이러한 자유와 권리를 보다 명확하게 인식할 수 있도록 하기 위한 규정도 포함되어 있습니다.
소프트웨어를 양도받은 사람의 권리를 보호하기 위해서 우리는 배포자들이 이러한 권리를 부정하거나 포기하도록 피양도자에게 요구하는 행위를 금지시킬 필요가 있습니다. 이러한 금지 사항은 라이브러리를 개작하거나 배포하는 모든 사람들이 예외없이 지켜야 할 의무와 같습니다.
예를 들어, LGPL 라이브러리를 배포할 경우에는 이를 유료로 판매하거나 무료로 배포하는 것에 관계없이 자신이 해당 라이브러리에 대해서 가질 수 있었던 모든 권리를 피양도자에게 그대로 양도해 주어야 하고, 라이브러리의 원시 코드를 함께 제공하거나 원시 코드를 구할 수 있는 방법을 확실히 알려주어야 합니다. 또한 라이브러리에 다른 코드를 링크시켰다면, 라이브러리를 수정한 뒤에도 정상적으로 컴파일을 진행할 수 있도록 링크 되었던 코드에 해당하는 완전한 목적 파일 전체를 함께 제공해야 합니다. 또한 피양도자에게 이러한 모든 사항들을 분명히 알 수 있도록 해 주어야 합니다.
자유 소프트웨어 재단은 다음과 같은 두 가지 단계를 통해서 사용자들의 권리를 보호합니다. (1) 라이브러리에 저작권을 설정합니다. (2) 저작권의 양도에 관한 실정법에 의해서 유효한 법률적 효력을 갖는 LGPL을 통해서 소프트웨어를 복제하거나 개작 및 배포할 수 있는 권리를 사용자에게 부여합니다.
모든 배포자들을 보호하기 위해서 우리는 자유 라이브러리에 대한 어떠한 보증도 제공하지 않는다는 점을 명확히 밝혀둡니다. 라이브러리를 사용하는 사람들은 반복적인 재배포 과정을 통해 라이브러리 자체에 수정과 변형이 일어날 수도 있으며, 이는 최초의 저작자가 만든 라이브러리가 갖고 있는 문제가 아닐 수 있다는 개연성을 인식하고 있어야 합니다. 우리는 개작과 재배포 과정에서 다른 사람에 의해 발생된 문제로 인해 라이브러리의 원저작자의 신망이 실추되는 것을 원하지 않습니다.
특허 제도는 자유 소프트웨어의 존재를 위협하는 요소일 수밖에 없습니다. 우리는 특허권자로부터 기업이 제한적인 사용 허가를 얻은 뒤에 이를 통해 자유 프로그램의 사용자들을 규제할 수 없게 되기를 희망합니다. 따라서 우리는 특정한 버전의 라이브러리에 대한 어떠한 특허 사용 허가의 취득도 LGPL에 규정된 자유를 완전히 만족시키는 범위 내에서 이루어 져야 할 것을 요구합니다.
몇몇 라이브러리를 포함한 대부분의 GNU 소프트웨어에는 GPL이 적용됩니다. 본 사용 허가서인 LGPL은 특정한 라이브러리에만 적용되며 GPL과는 상당히 다른 면을 갖고 있습니다. LGPL은 특정한 라이브러리가 자유 소프트웨어가 아닌 프로그램과 함께 링크되는 것을 허용하려는 목적으로 사용됩니다.
어떤 프로그램이 라이브러리와 함께 링크된다면, 라이브러리가 정적으로 링크되든지 공유 라이브러리로 사용되든지 간에 이 두개의 조합은 법적으로 말할 때 결합 저작물, 즉 최초의 라이브러리로부터 파생된 2차적 저작물로 간주됩니다. GPL은 이러한 형태의 링크가 일어날 경우에 결합된 전체 저작물이 GPL을 만족할 때에 한해서만 링크를 허용합니다. 그러나 LGPL은 보다 유연한 링크 조건을 허용하고 있습니다.
우리가 본 사용 허가서를 ``약소'' 일반 공중 사용 허가서라고 부르는 이유는 사용자들의 자유를 보호하는 강도를 GPL보다 경감시켰기 때문입니다. 또한 LGPL은 자유 소프트웨어가 아닌 프로그램과 경쟁하는데 있어서 자유 소프트웨어 개발자들에게 GPL보다 이점을 덜 제공합니다. 우리가 많은 종류의 라이브러리에 LGPL이 아닌 일반적인 GPL을 사용하는 것은 이러한 이유 때문입니다. 그러나 특수한 상황에서는 오히려 LGPL을 사용하는 것이 유리할 수 있습니다.
극히 드문 예이긴 하지만, 어떤 라이브러리의 사용 폭을 가능한 넓게 유도해서 그것을 사실상의 표준으로 만들어야 할 특별한 필요가 있다고 생각해 봅시다. 이것을 가능하게 만들기 위해서는 자유 소프트웨어가 아닌 프로그램도 이러한 라이브러리를 사용할 수 있도록 허용해야 합니다. 이보다 흔한 또 한가지 예로 자유 소프트웨어가 아닌 라이브러리가 폭넓게 사용되고 있을 때 이와 동일한 기능을 제공하는 자유 라이브러리가 만들어진 경우를 생각해 볼 수 있습니다. 이러한 상황에서는 자유 라이브러리의 사용을 자유 소프트웨어에만 한정함으로써 얻을 수 있는 이익이 거의 없습니다. 이런 경우에 우리는 LGPL을 사용합니다.
또 하나의 예는 자유 소프트웨어가 아닌 프로그램에 특정한 라이브러리의 사용을 허용함으로써 보다 많은 사람들이 자유 소프트웨어를 사용할 수 있게 만드는 경우입니다. 예를 들면, 자유 소프트웨어가 아닌 프로그램들이 GNU C 라이브러리를 사용할 수 있도록 허용해서 사람들이 GNU 운영체제와 GNU/리눅스 운영체제를 사용하도록 유도할 수 있습니다.
LGPL이 사용자의 자유를 보다 약소적으로 보호하고 있음에도 불구하고, LGPL로 설정된 라이브러리와 링크된 프로그램을 사용하는 사용자는 라이브러리가 개작되더라도 개작된 버전을 사용해서 프로그램을 실행할 수 있는 확실한 자유와 이에 필요한 수단을 갖고 있습니다.
복제와 개작 및 배포에 관련된 구체적인 조건과 규정은 다음과 같습니다. ``라이브러리에 기반한 저작물''과 ``라이브러리를 사용하는 저작물''의 차이에 특별한 주의를 기울이기 바랍니다. 전자는 라이브러리로부터 파생된 코드를 담고 있는 저작물을 의미하는데 반해서 후자는 실행되기 위해서 라이브러리와 결합되어야 하는 저작물을 말합니다.
복제와 개작 및 배포에 관한 조건과 규정
제 0 조. 본 허가서는 GNU 일반 공중 사용 허가서의 규정에 따라 배포될 수 있다는 사항이 저작권자에 의해서 명시된 모든 컴퓨터 프로그램 저작물에 대해서 동일하게 적용됩니다. 컴퓨터 프로그램 저작물(이하, ``프로그램''이라고 칭합니다.)이란 특정한 결과를 얻기 위해서 컴퓨터 등의 정보 처리 능력을 가진 장치(이하, ``컴퓨터''라고 칭합니다.) 내에서 직접 또는 간접으로 사용되는 일련의 지시 및 명령으로 표현된 창작물을 의미하고, ``2차적 프로그램''이란 전술한 프로그램 자신 또는 저작권법의 규정에 따라 프로그램의 전부 또는 상당 부분을 원용하거나 다른 언어로의 번역을 포함할 수 있는 개작 과정을 통해서 창작된 새로운 프로그램과 이와 관련된 저작물을 의미합니다. (이후로 다른 언어로의 번역은 별다른 제한없이 개작의 범위에 포함되는 것으로 간주합니다.) ``피양도자''란 GPL의 규정에 따라 프로그램을 양도받은 사람을 의미하고, ``원(原)프로그램''이란 프로그램을 개작하거나 2차적 프로그램을 만들기 위해서 사용된 최초의 프로그램을 의미합니다.
제 0 조. 본 사용 허가 계약은 GNU 약소 일반 공중 사용 허가서(이하, ``LGPL''이라고 칭합니다.)의 규정에 따라 배포될 수 있다는 사항이 저작권자 또는 그에 준하는 정당한 권리을 갖고 있는 자에 의해서 명시된 모든 종류의 소프트웨어 라이브러리와 컴퓨터 프로그램 저작물(이하, ``프로그램''이라고 칭합니다.)에 대해서 동일하게 적용됩니다. ``피양도자''란 LGPL의 규정에 따라 프로그램을 양도받은 사람을 의미합니다.
``라이브러리''란 소프트웨어 함수와 데이터를 함께 또는 개별적으로 수집해 놓은 것으로 이들 중 일부를 사용하는 응용 프로그램과 링크되어 실행물을 생성하는데 편리하도록 미리 준비된 것을 의미합니다.
이하로 언급되는 ``라이브러리''는 본 사용 허가서에 의해서 배포되고 있는 모든 소프트웨어 라이브러리와 저작물을 의미합니다. ``라이브러리에 기반한 저작물''은 라이브러리 또는 저작권법에 따른 라이브러리의 2차적 저작물을 모두 의미합니다. 다시 말하면, 전술한 라이브러리 자신 또는 저작권법의 규정에 따라 라이브러리의 전부 또는 상당 부분을 원용하거나 다른 언어로의 번역을 포함할 수 있는 개작 과정을 통해서 창작된 새로운 라이브러리와 이와 관련된 저작물입니다. (이후로 다른 언어로의 번역은 별다른 제한없이 개작의 범위에 포함되는 것으로 간주합니다.)
저작물에 대한 ``원시 코드''란 해당 저작물을 개작하기에 적절한 형식을 의미합니다. 라이브러리에 대한 완전한 원시 코드란 라이브러리에 포함된 모든 모듈들의 원시 코드와 이와 관련된 인터페이스 정의 파일 모두, 그리고 라이브러리의 컴파일과 설치를 제어하는데 사용된 스크립트 전부를 의미합니다.
본 허가서는 복제와 개작 및 배포 행위에 대해서만 적용됩니다. 따라서 라이브러리를 사용하는 프로그램을 실행시키는 행위에 대한 제한은 없습니다. 이러한 프로그램의 결과물에는, 결과물을 생성하기 위한 도구로 라이브러리가 사용되었는지 아닌지의 여부에 관계없이 결과물이 라이브러리에 기반한 2차적 저작물을 구성했을 때에 한해서 본 허가서의 규정들이 적용됩니다. 2차적 저작물의 구성 여부는 2차적 저작물 안에서의 라이브러리의 역할과 라이브러리를 사용한 프로그램의 역할을 토대로 판단합니다.
제 1 조. 적절한 저작권 표시와 라이브러리에 대한 보증이 제공되지 않는다는 사실을 각각의 복제물에 명시하는 한, 피양도자는 라이브러리의 원시 코드를 자신이 양도받은 상태 그대로 어떠한 매체를 통해서도 복제하고 배포할 수 있습니다. 복제와 배포가 이루어 질 때는 본 허가서와 라이브러리에 대한 보증이 제공되지 않는다는 사실에 대해서 언급되었던 모든 내용들을 그대로 유지시켜야 하며, 영문판 LGPL을 함께 제공해야 합니다.
배포자는 복제물을 물리적으로 인도하는데 소요된 비용을 청구할 수 있으며, 선택 사항으로 독자적인 유료 보증을 설정할 수 있습니다.
제 2 조. 피양도자는 자신이 양도받은 라이브러리의 전부나 일부를 개작할 수 있으며, 이를 통해 라이브러리에 기반한 2차적 저작물을 창작할 수 있습니다. 개작된 라이브러리나 창작된 2차적 저작물은 다음의 사항들을 모두 만족시키는 조건에 한해서, 제1조의 규정에 따라 또다시 복제되고 배포될 수 있습니다.
제 1 항. 개작된 저작물은 반드시 소프트웨어 라이브러리여야 합니다.
제 2 항. 파일을 개작할 때는 파일을 개작한 사실과 그 날짜를 파일 안에 명시해야 합니다.
제 3 항. 저작물 전체에 대한 사용 권리를 본 허가서의 규정에 따라 공중에게 무상으로 허용해야 합니다.
제 4 항. 개작된 라이브러리에 포함된 기능이 그 기능을 사용하는 응용 프로그램으로부터 제공되는 함수나 데이터 테이블을 참조하는 경우에는, 이러한 기능이 호출되었을 때 매개 인수를 전달하는 경우를 제외하고는 응용 프로그램이 그러한 함수나 테이블을 제공하지 않는 경우에도 기능이 독립적으로 수행되고 목적하는 모든 부분이 확실하게 유효할 수 있도록 최대의 노력을 기울여야만 합니다
본 허가서는 프로그램에 대한 복제와 개작 그리고 배포 행위에 대해서만 적용됩니다. 따라서 프로그램을 실행시키는 행위에 대한 제한은 없습니다. 프로그램의 결과물(output)에는, 그것이 프로그램을 실행시켜서 생성된 것인지 아닌지의 여부에 상관없이 결과물의 내용이 원프로그램으로부터 파생된 2차적 프로그램을 구성했을 때에 한해서 본 허가서의 규정들이 적용됩니다. 2차적 프로그램의 구성 여부는 2차적 프로그램 안에서의 원프로그램의 역할을 토대로 판단합니다.
(예를 들면, 라이브러리에 포함된 제곱근 연산 함수는 응용 프로그램으로부터 명확하고 완전하게 독립적인 형태로 만들어져야 합니다. 따라서 제2조 4항은 제곱근 연산 함수가 어떠한 응용 프로그램이 제공하는 함수나 테이블도 필수적으로 사용되는 않는 형태로 만들어져야 한다는 것을 규정합니다. 즉, 응용 프로그램이 제공하는 기능 없이도 제곱근 연산 함수가 제곱근을 구할 수 있어야 합니다.)
위의 조항들은 개작된 라이브러리 전체에 적용됩니다. 만약, 개작된 라이브러리에 포함된 특정 부분이 라이브러리부터 파생된 것이 아닌 별도의 독립 저작물로 인정될 만한 상당한 이유가 있을 경우에는 해당 저작물의 개별적인 배포에는 본 허가서의 규정들이 적용되지 않습니다. 그러나 이러한 저작물이 라이브러리에 기반한 2차적 저작물의 일부로서 함께 배포된다면 개별적인 저작권과 배포 기준에 상관없이 저작물 모두가 본 허가서에 의해서 관리되어야 하며, 전체 저작물에 대한 사용 권리는 공중에게 무상으로 양도됩니다.
이러한 규정은 개별적인 저작물에 대한 저작자들의 권리를 침해하거나 인정하지 않으려는 것이 아니라, 라이브러리로부터 파생된 2차적 저작물이나 수집 저작물의 배포를 일관적으로 규제할 수 있는 권리를 행사하기 위한 것입니다.
라이브러리나 라이브러리로부터 파생된 2차적 저작물을 이들로부터 파생되지 않은 다른 저작물과 함께 단순히 저장하거나 배포하기 위한 목적으로 동일한 매체에 모아 놓은 집합물의 경우에는, 라이브러리로부터 파생되지 않은 다른 저작물에는 본 허가서의 규정들이 적용되지 않습니다.
제 3 조. 피양도자는 자신이 양도받은 라이브러리의 복제물에 LGPL 대신 GPL의 규정을 적용할 수 있습니다. 이것이 가능하기 위해서는 LGPL에 대해서 언급되었던 모든 사항을 GPL 2판으로 대체시켜야 합니다. (GPL 2판보다 신판이 공표되었을 경우에는 원한다면 신판의 판번호를 사용할 수 있습니다.) 그 이외에 다른 사항들은 변경할 수 없습니다.
제 1 조. 적절한 저작권 표시와 프로그램에 대한 보증이 제공되지 않는다는 사실을 각각의 복제물에 명시하는 한, 피양도자는 프로그램의 원시 코드를 자신이 양도받은 상태 그대로 어떠한 매체를 통해서도 복제하고 배포할 수 있습니다. 복제와 배포가 이루어 질 때는 본 허가서와 프로그램에 대한 보증이 제공되지 않는다는 사실에 대해서 언급되었던 모든 내용을 그대로 유지시켜야 하며, 영문판 GPL을 함께 제공해야 합니다.
복제물에 대해서 이러한 수정이 이루어 졌을 경우에는 GPL로 변경된 사용권 허가를 다시 변경할 수 없으며, 이에 따라서 해당 복제물을 기반으로 만들어진 모든 저작물과 복제물에는 GPL이 적용되어야만 합니다.
배포자는 복제물을 물리적으로 인도하는데 소요된 비용을 청구할 수 있으며, 선택 사항으로 독자적인 유료 보증을 설정할 수 있습니다.
이러한 선택 사항은 라이브러리의 코드 일부분을 라이브러리가 아닌 일반 프로그램에 포함시키고자 할 경우에 유용합니다.
제 4 조. 피양도자는 제1조와 제2조의 규정에 따라 라이브러리(또는 제2조에 의한 라이브러리의 일부나 라이브러리에 기반한 2차적 저작물)를 목적 코드나 실행물의 형태로 복제하고 배포할 수 있습니다. 이 때 목적 코드나 실행물에 상응하는 컴퓨터가 인식할 수 있는 완전한 원시 코드를 제1조와 제2조의 규정에 따라 소프트웨어의 교환을 위해서 일반적으로 사용되는 매체를 통해 함께 제공해야 합니다.
제 2 조. 피양도자는 자신이 양도받은 프로그램의 전부나 일부를 개작할 수 있으며, 이를 통해서 2차적 프로그램을 창작할 수 있습니다. 개작된 프로그램이나 창작된 2차적 프로그램은 다음의 사항들을 모두 만족시키는 조건에 한해서, 제1조의 규정에 따라 또다시 복제되고 배포될 수 있습니다.
제 1 항. 파일을 개작할 때는 파일을 개작한 사실과 그 날짜를 파일 안에 명시해야 합니다.
제 2 항. 배포하거나 공표하려는 저작물의 전부 또는 일부가 양도받은 프로그램으로부터 파생된 것이라면, 저작물 전체에 대한 사용 권리를 본 허가서의 규정에 따라 공중에게 무상으로 허용해야 합니다.
제 3 항. 개작된 프로그램의 일반적인 실행 형태가 대화형 구조로 명령어를 읽어 들이는 방식을 취하고 있을 경우에는, 적절한 저작권 표시와 프로그램에 대한 보증이 제공되지 않는다는 사실, (별도의 보증을 설정한 경우라면 해당 내용) 그리고 양도받은 프로그램을 본 규정에 따라 재배포할 수 있다는 사실과 GPL 사본을 참고할 수 있는 방법이 함께 포함된 문구가 프로그램이 대화형 구조로 평이하게 실행된 직후에 화면 또는 지면으로 출력되도록 작성되어야 합니다. (예외 규정: 양도받은 프로그램이 대화형 구조를 갖추고 있다 하더라도 통상적인 실행 환경에서 전술한 사항들이 출력되지 않는 형태였을 경우에는 이를 개작한 프로그램 또한 관련 사항들을 출력시키지 않아도 무방합니다.)
위의 조항들은 개작된 프로그램 전체에 적용됩니다. 만약, 개작된 프로그램에 포함된 특정 부분이 원프로그램으로부터 파생된 것이 아닌 별도의 독립 저작물로 인정될 만한 상당한 이유가 있을 경우에는 해당 저작물의 개별적인 배포에는 본 허가서의 규정들이 적용되지 않습니다. 그러나 이러한 저작물이 2차적 프로그램의 일부로서 함께 배포된다면 개별적인 저작권과 배포 기준에 상관없이 저작물 모두에 본 허가서가 적용되어야 하며, 전체 저작물에 대한 사용 권리는 공중에게 무상으로 양도됩니다.
이러한 규정은 개별적인 저작물에 대한 저작자의 권리를 침해하거나 인정하지 않으려는 것이 아니라, 원프로그램으로부터 파생된 2차적 프로그램이나 수집 저작물의 배포를 일관적으로 규제할 수 있는 권리를 행사하기 위한 것입니다.
원프로그램이나 원프로그램으로부터 파생된 2차적 프로그램을 이들로부터 파생되지 않은 다른 저작물과 함께 단순히 저장하거나 배포할 목적으로 동일한 매체에 모아 놓은 집합물의 경우에는, 원프로그램으로부터 파생되지 않은 다른 저작물에는 본 허가서의 규정들이 적용되지 않습니다.
제 3 조. 피양도자는 다음 중 하나의 항목을 만족시키는 조건에 한해서 제1조와 제2조의 규정에 따라 프로그램(또는 제2조에서 언급된 2차적 프로그램)을 목적 코드(object code)나 실행물(executable form)의 형태로 복제하고 배포할 수 있습니다.
제 1 항. 목적 코드나 실행물에 상응하는 컴퓨터가 인식할 수 있는 완전한 원시 코드를 함께 제공해야 합니다. 원시 코드는 제1조와 제2조의 규정에 따라 배포될 수 있어야 하며, 소프트웨어의 교환을 위해서 일반적으로 사용되는 매체를 통해 제공되어야 합니다.
제 2 항. 배포에 필요한 최소한의 비용만을 받고 목적 코드나 실행물에 상응하는 완전한 원시 코드를 배포하겠다는, 최소한 3년간 유효한 약정서를 함께 제공해야 합니다. 이 약정서는 약정서를 갖고 있는 어떠한 사람에 대해서도 유효해야 합니다. 원시 코드는 컴퓨터가 인식할 수 있는 형태여야 하고 제1조와 제2조의 규정에 따라 배포될 수 있어야 하며, 소프트웨어의 교환을 위해서 일반적으로 사용되는 매체를 통해 제공되어야 합니다.
제 3 항. 목적 코드나 실행물에 상응하는 원시 코드를 배포하겠다는 약정에 대해서 자신이 양도받은 정보를 함께 제공해야 합니다. (제3항은 위의 제2항에 따라 원시 코드를 배포하겠다는 약정을 프로그램의 목적 코드나 실행물과 함께 제공 받았고, 동시에 비상업적인 배포를 하고자 할 경우에 한해서만 허용됩니다.)
저작물에 대한 원시 코드란 해당 저작물을 개작하기에 적절한 형식을 의미합니다. 실행물에 대한 완전한 원시 코드란 실행물에 포함된 모든 모듈들의 원시 코드와 이와 관련된 인터페이스 정의 파일 모두, 그리고 실행물의 컴파일과 설치를 제어하는데 사용된 스크립트 전부를 의미합니다. 그러나 특별한 예외의 하나로서, 실행물이 실행될 운영체제의 주요 부분(컴파일러나 커널 등)과 함께 (원시 코드나 바이너리의 형태로) 일반적으로 배포되는 구성 요소들은 이러한 구성 요소 자체가 실행물에 수반되지 않는 한 원시 코드의 배포 대상에서 제외되어도 무방합니다.
목적 코드나 실행물을 지정한 장소로부터 복제해 갈 수 있게 하는 방식으로 배포할 경우, 동일한 장소로부터 원시 코드를 복제할 수 있는 동등한 접근 방법을 제공한다면 이는 원시 코드를 목적 코드와 함께 복제되도록 설정하지 않았다고 하더라도 원시 코드를 배포하는 것으로 간주됩니다.
제 4 조. 본 허가서에 의해 명시적으로 이루어 지지 않는 한 프로그램에 대한 복제와 개작 및 하위 허가권 설정과 배포가 성립될 수 없습니다. 이와 관련된 어떠한 행위도 무효이며 본 허가서가 보장한 권리는 자동으로 소멸됩니다. 그러나 본 허가서의 규정에 따라 프로그램의 복제물이나 권리를 양도받았던 제3자는 본 허가서의 규정들을 준수하는 한, 배포자의 권리 소멸에 관계없이 사용상의 권리를 계속해서 유지할 수 있습니다.
제 5 조. 본 허가서는 서명이나 날인이 수반되는 형식을 갖고 있지 않기 때문에 피양도자가 본 허가서의 내용을 반드시 받아들여야 할 필요는 없습니다. 그러나 프로그램이나 프로그램에 기반한 2차적 프로그램에 대한 개작 및 배포를 허용하는 것은 본 허가서에 의해서만 가능합니다. 만약 본 허가서에 동의하지 않을 경우에는 이러한 행위들이 법률적으로 금지됩니다. 따라서 프로그램(또는 프로그램에 기반한 2차적 프로그램)을 개작하거나 배포하는 행위는 이에 따른 본 허가서의 내용에 동의한다는 것을 의미하며, 복제와 개작 및 배포에 관한 본 허가서의 조건과 규정들을 모두 받아들이겠다는 의미로 간주됩니다.
제 6 조. 피양도자에 의해서 프로그램(또는 프로그램에 기반한 2차적 프로그램)이 반복적으로 재배포될 경우, 각 단계에서의 피양도자는 본 허가서의 규정에 따른 프로그램의 복제와 개작 및 배포에 대한 권리를 최초의 양도자로부터 양도받은 것으로 자동적으로 간주됩니다. 프로그램(또는 프로그램에 기반한 2차적 프로그램)을 배포할 때는 피양도자의 권리의 행사를 제한할 수 있는 어떠한 사항도 추가할 수 없습니다. 그러나 피양도자에게, 재배포가 일어날 시점에서의 제3의 피양도자에게 본 허가서를 준수하도록 강제할 책임은 부과되지 않습니다.
제 7 조. 법원의 판결이나 특허권 침해에 대한 주장 또는 특허 문제에 국한되지 않은 그밖의 이유들로 인해서 본 허가서의 규정에 배치되는 사항이 발생한다 하더라도 그러한 사항이 선행하거나 본 허가서의 조건과 규정들이 면제되는 것은 아닙니다. 따라서 법원의 명령이나 합의 등에 의해서 본 허가서에 위배되는 사항들이 발생한 상황이라도 양측 모두를 만족시킬 수 없다면 프로그램은 배포될 수 없습니다. 예를 들면, 특정한 특허 관련 허가가 프로그램의 복제물을 직접 또는 간접적인 방법으로 양도받은 임의의 제3자에게 해당 프로그램을 무상으로 재배포할 수 있게 허용하지 않는다면, 그러한 허가와 본 사용 허가를 동시에 만족시키면서 프로그램을 배포할 수 있는 방법은 없습니다.
본 조항은 특정한 상황에서 본 조항의 일부가 유효하지 않거나 적용될 수 없을 경우에도 본 조항의 나머지 부분들을 적용하기 위한 의도로 만들어 졌습니다. 따라서 그 이외의 상황에서는 본 조항을 전체적으로 적용하면 됩니다.
본 조항의 목적은 특허나 저작권 침해 등의 행위를 조장하거나 해당 권리를 인정하지 않으려는 것이 아니라, GPL을 통해서 구현되어 있는 자유 소프트웨어의 배포 체계를 통합적으로 보호하기 위한 것입니다. 많은 사람들이 배포 체계에 대한 신뢰있는 지원을 계속해 줌으로써 소프트웨어의 다양한 분야에 많은 공헌을 해 주었습니다. 소프트웨어를 어떠한 배포 체계로 배포할 것인가를 결정하는 것은 전적으로 저작자와 기증자들의 의지에 달려있는 것이지, 일반 사용자들이 강요할 수 있는 문제는 아닙니다.
본 조항은 본 허가서의 다른 조항들에서 무엇이 중요하게 고려되어야 하는 지를 명확하게 설명하기 위한 목적으로 만들어진 것입니다.
제 8 조. 특허나 저작권이 설정된 인터페이스로 인해서 특정 국가에서 프로그램의 배포와 사용이 함께 또는 개별적으로 제한되어 있는 경우, 본 사용 허가서를 프로그램에 적용한 최초의 저작권자는 문제가 발생하지 않는 국가에 한해서 프로그램을 배포한다는 배포상의 지역적 제한 조건을 명시적으로 설정할 수 있으며, 이러한 사항은 본 허가서의 일부로 간주됩니다.
제 9 조. 자유 소프트웨어 재단은 때때로 본 사용 허가서의 개정판이나 신판을 공표할 수 있습니다. 새롭게 공표될 판은 당면한 문제나 현안을 처리하기 위해서 세부적인 내용에 차이가 발생할 수 있지만, 그 근본 정신에는 변함이 없을 것입니다.
각각의 판들은 판번호를 사용해서 구별됩니다. 특정한 판번호와 그 이후 판을 따른다는 사항이 명시된 프로그램에는 해당 판이나 그 이후에 발행된 어떠한 판을 선택해서 적용해도 무방하고, 판번호를 명시하고 있지 않은 경우에는 자유 소프트웨어 재단이 공표한 어떠한 판번호의 판을 적용해도 무방합니다.
제 10 조. 프로그램의 일부를 본 허가서와 배포 기준이 다른 자유 프로그램과 함께 결합하고자 할 경우에는 해당 프로그램의 저작자로부터 서면 승인을 받아야 합니다. 자유 소프트웨어 재단이 저작권을 갖고 있는 소프트웨어의 경우에는 자유 소프트웨어 재단의 승인을 얻어야 합니다. 우리는 이러한 요청을 수락하기 위해서 때때로 예외 기준을 만들기도 합니다. 자유 소프트웨어 재단은 일반적으로 자유 소프트웨어의 2차적 저작물들을 모두 자유로운 상태로 유지시키려는 목적과 소프트웨어의 공유와 재활용을 증진시키려는 두가지 목적을 기준으로 승인 여부를 결정할 것입니다.
보증의 결여 (제11조, 제12조)
제 11 조. 본 허가서를 따르는 프로그램은 무상으로 양도되기 때문에 관련 법률이 허용하는 한도 내에서 어떠한 형태의 보증도 제공되지 않습니다. 프로그램의 저작권자와 배포자가 공동 또는 개별적으로 별도의 보증을 서면으로 제공할 때를 제외하면, 특정한 목적에 대한 프로그램의 적합성이나 상업성 여부에 대한 보증을 포함한 어떠한 형태의 보증도 명시적이나 묵시적으로 설정되지 않은 ``있는 그대로의'' 상태로 이 프로그램을 배포합니다. 프로그램과 프로그램의 실행에 따라 발생할 수 있는 모든 위험은 피양도자에게 인수되며 이에 따른 보수 및 복구를 위한 제반 경비 또한 피양도자가 모두 부담해야 합니다.
제 12 조. 저작권자나 배포자가 프로그램의 손상 가능성을 사전에 알고 있었다 하더라도 발생된 손실이 관련 법규에 의해 보호되고 있거나 이에 대한 별도의 서면 보증이 설정된 경우가 아니라면, 저작권자나 프로그램을 원래의 상태 또는 개작한 상태로 제공한 배포자는 프로그램의 사용이나 비작동으로 인해 발생된 손실이나 프로그램 자체의 손실에 대해 책임지지 않습니다. 이러한 면책 조건은 사용자나 제3자가 프로그램을 조작함으로써 발생된 손실이나 다른 소프트웨어와 프로그램을 함께 동작시키는 것으로 인해서 발생된 데이터의 상실 및 부정확한 산출 결과에만 국한되는 것이 아닙니다. 발생된 손실의 일반성이나 특수성 뿐 아니라 원인의 우발성 및 필연성도 전혀 고려되지 않습니다.
목적 코드를 지정한 장소로부터 복제해 갈 수 있게 하는 방식으로 배포할 경우, 동일한 장소로부터 원시 코드를 복제할 수 있는 동등한 접근 방법을 제공한다면 이는 원시 코드가 목적 코드와 함께 복제되도록 설정되지 않았다 하더라도 원시 코드를 배포하는 것으로 간주됩니다.
제 5 조. 라이브러리의 어떠한 부분으로부터의 파생물도 포함하지 않지만, 컴파일 또는 링크를 통해서 라이브러리와 함께 작동하도록 설계된 프로그램은 ``라이브러리를 사용하는 저작물''이 됩니다. 이러한 저작물이 별도로 분리되어 있을 때는 라이브러리에 대한 파생물이 아니므로 본 사용 허가서가 적용되지 않습니다.
그러나 ``라이브러리를 사용하는 저작물''이 라이브러리와 링크된 결과로 생성된 실행물은, 실행물 안에 라이브러리의 일부를 포함하고 있기 때문에 라이브러리에 기반한 2차적 저작물을 구성하게 됩니다. 따라서 이러한 방식으로 생성된 실행물은 본 사용 허가서의 적용을 받습니다. 제6조는 이러한 종류의 실행물의 배포를 위한 규정을 담고 있습니다.
``라이브러리를 사용하는 저작물''이 라이브러리의 일부인 헤더 파일의 자료를 사용한 경우에는 그러한 저작물의 원시 코드가 라이브러리에 기반한 2차적 저작물이 아니었다 하더라도 목적 코드는 라이브러리에 기반한 2차적 저작물이 될 수 있습니다. 이러한 구분이 성립될 수 있는지의 여부는 그러한 저작물 자체가 라이브러리이거나 저작물에 사용된 라이브러리 없이도 링크될 수 있는 경우에 있어서 매우 중요한 차이를 갖습니다. 그러나 이러한 구분이 성립될 수 있는 명확한 판단 기준은 법률적으로 정의되어 있지 않습니다.
만약 이와같은 형태의 목적 파일이 단지 숫자 매개 변수와 자료 구조의 설계 형태 및 이에 대한 접근 도구 그리고 10행 미만으로 이루어진 작은 인라인 함수와 매크로만을 사용하는 것이라면 법적 기준에 의한 2차적 저작물의 성립 여부에 관계없이 그 사용이 제한되지 않습니다. (그러나 이러한 목적 코드와 라이브러리의 일부가 함께 포함된 실행물은 여전히 제6조의 적용을 받습니다.)
저작물이 라이브러리에 기반한 2차적 저작물이라면 해당 저작물에 대한 목적 코드는 제6조에 따라 배포될 수 있습니다. 또한 그러한 저작물을 포함한 실행물들은 기반이 된 라이브러리에 직접 링크되는지 아닌지의 여부에 관계없이 모두 제6조의 적용을 받습니다.
제 6 조. 위의 조항들에 대한 예외의 하나로, 라이브러리와 ``라이브러리를 사용하는 저작물''을 함께 결합하거나 링크시켜서 라이브러리의 일부분이 포함된 저작물을 만들었다면, 이를 자신이 선택한 규정에 따라 배포할 수 있습니다. 이 경우 배포 규정에는 피양도자들이 자신의 필요에 따라 저작물을 개작할 수 있으며 개작에 따른 디버깅을 위해 코드역분석(reverse regineering)을 허용한다는 사항이 포함되어야 합니다.
라이브러리와 라이브러리의 사용에는 본 사용 허가서가 적용된다는 것과 저작물 안에 이러한 라이브러리가 사용되고 있다는 사실을 담고 있는 안내 문구를 모든 복제물에 분명하게 명시해야 합니다. 또한 영문판 LGLP 사본을 함께 제공해야 합니다. 저작물이 실행될 때 저작권 사항이 표시되는 형태를 취하고 있다면 라이브러리에 대한 저작권 사항도 함께 포함시켜야 하며 LGPL 사본을 참고할 수 있는 방법을 명시해야 합니다. 또한 다음 중 하나의 사항을 반드시 만족시켜야 합니다.
제 1 항. 저작물에 포함된 라이브러리에 어떠한 수정이 가해졌다 하더라도 해당 라이브러리에 대한 컴퓨터가 인식할 수 있는 완전한 형태의 원시 코드를 저작물과 함께 제공해야 합니다. 이 원시 코드는 제1조와 제2조의 규정에 따라 배포될 수 있어야 합니다. 만약 저작물이 라이브러리와 링크되는 실행물이었을 경우에는 피양도자가 실행물과 링크되는 라이브러리를 개작한 뒤에도 링크를 통해 새로운 실행물을 만들 수 있도록 하기 위해서 ``라이브러리를 사용한 저작물''로서 배포된 저작물에 해당하는 컴퓨터가 인식할 수 있는 완전한 형태의 원시 코드와 목적 코드 중 하나 또는 둘 모두를 제공해야 합니다. (라이브러리에 포함된 정의 파일의 내용을 수정한 경우에는 변경된 정의 부분을 사용하기 위해서 응용 프로그램을 반드시 다시 컴파일할 필요는 없다는 점은 인정됩니다.)
제 2 항. 라이브러리는 적절한 공유 라이브러리 방식을 사용해서 링크되어야 합니다. 적절한 방식이란, (1) 라이브러리의 함수를 실행물 속으로 직접 복제하는 것이 아니라 실행 시점에서 볼 때 이미 사용자의 컴퓨터 시스템 상에 존재하고 있는 라이브러리의 복제물이 사용되는 것입니다. 또한 (2) 사용자가 개작된 라이브러리를 설치한 경우에도 개작된 라이브러리가 저작물을 만들 때 사용된 라이브러리의 버전과 인터페이스상으로 호환되는 한, 적절하게 동작할 수 있어야 합니다.
제 3 항. 배포에 필요한 최소한의 비용만을 받고 피양도자에게 제6조 1항에 규정된 자료를 배포하겠다는, 최소한 3년간 유효한 약정서를 저작물과 함께 제공해야 합니다.
제 4 항. 저작물을 지정한 장소로부터 복제해 갈 수 있게 하는 방식으로 배포하는 경우, 동일한 장소로부터 제6조 1항에 규정된 자료를 복제할 수 있는 동등한 접근 방법을 제공하는 것은 저작물에 대한 배포 조건을 충족하는 것으로 간주됩니다.
제 5 항. 피양도자가 제6조 1항에 규정된 자료의 복제물을 이미 수령했는지를 확인하거나 자신이 피양도자에게 그러한 자료를 이미 송부했는지를 확인해야 합니다.
실행물이 ``라이브러리를 사용하는 저작물''의 형태로 배포된다면 여기에는 실행물을 재생산하기 위해서 필요한 유틸리티 프로그램과 데이터들이 모두 포함되어야 합니다. 그러나 특별한 예외의 하나로서, 실행물이 실행될 운영체제의 주요 부분(컴파일러나 커널 등)과 함께 (원시 코드나 바이너리의 형태로) 일반적으로 배포되는 구성 요소들은 이러한 구성 요소 자체가 실행물에 수반되지 않는한 배포 대상에서 제외되어도 무방합니다.
이러한 규정이 일반적으로 운영체제에 함께 수반되지 않는 독점 라이브러리들의 사용 허가서와 충돌하게 될 경우에는 배포하고자 하는 실행물 안에 본 사용 허가서가 적용되는 라이브러리와 독점 라이브러리를 함께 사용할 수 없습니다.
제 7 조. 라이브러리에 기반한 저작물로서의 라이브러리의 일부를 본 사용 허가서가 적용되지 않는 다른 라이브러리의 일부와 하나의 라이브러리 안에 병존시킬 수 있습니다. 이러한 결합 라이브러리를 배포할 경우에는 라이브러리에 기반한 저작물과 그렇지 않은 라이브러리가 별도로 배포될 수 있음을 명시해야 하며 다음의 두가지 사항을 준수해야 합니다.
제 1 항. 결합 라이브러리를 구성하고 있는 ``라이브러리에 기반한 저작물''의 복제물을 결합되지 않은 독립된 상태로 함께 제공해야 합니다. 이 복제물의 배포에는 위의 조항들이 적용됩니다.
제 2 항. 라이브러리에 기반한 저작물의 일부가 결합 라이브러리 안에 포함하고 있다는 사실을 명시해야 하며, 제7조 1항에 의해서 제공된 결합되지 않은 상태의 ``라이브러리에 기반한 저작물''의 위치 정보를 명기해야 합니다.
제 8 조. 본 허가서에 의해서 명시적으로 이루어 지지 않는 한 라이브러리에 대한 복제와 개작, 하위 허가권 설정과 링크 및 배포가 이루어 질 수 없습니다. 이와 관련된 어떠한 행위도 무효이며 본 허가서가 보장한 권리는 자동으로 소멸됩니다. 그러나 본 허가서의 규정에 따라 라이브러리의 복제물이나 권리를 양도받았던 제3자는 본 허가서의 규정들을 준수하는 한, 배포자의 권리 소멸에 관계없이 사용상의 권리를 계속해서 유지할 수 있습니다.
제 9 조. 본 허가서는 서명이나 날인이 수반되는 형식을 갖고 있지 않기 때문에 피양도자가 본 허가서의 내용을 반드시 받아들여야 할 필요는 없습니다. 그러나 라이브러리나 라이브러리에 기반한 2차적 저작물에 대한 개작 및 배포를 허용하는 것은 본 허가서에 의해서만 가능합니다. 만약 본 허가서에 동의하지 않을 경우에는 이러한 행위들이 법률적으로 금지됩니다. 따라서 라이브러리(또는 라이브러리에 기반한 2차적 저작물)을 개작하거나 배포하는 행위는 이에 따른 본 허가서의 내용에 동의한다는 것을 의미하며, 복제와 개작 및 배포에 관한 본 허가서의 조건과 규정들을 모두 받아들이겠다는 의미로 간주됩니다.
제 10 조. 피양도자에 의해서 라이브러리(또는 라이브러리에 기반한 2차적 저작물)이 반복적으로 재배포될 경우, 각 단계에서의 피양도자는 본 허가서의 규정에 따른 라이브러리의 복제와 개작, 링크, 배포에 대한 권리를 최초의 양도자로부터 양도받은 것으로 자동적으로 간주됩니다. 라이브러리(또는 라이브러리에 기반한 2차적 저작물)을 배포할 때는 피양도자의 권리의 행사를 제한할 수 있는 어떠한 사항도 추가할 수 없습니다. 그러나 피양도자에게 재배포가 일어날 시점에서의 제3의 피양도자에게 본 허가서를 준수하도록 강제할 책임은 부과되지 않습니다.
제 11 조. 법원의 판결이나 특허권 침해에 대한 주장 또는 특허 문제에 국한되지 않은 그밖의 이유들로 인해서 본 허가서의 규정에 배치되는 사항이 발생한다 하더라도 그러한 사항이 선행하거나 본 허가서의 조건과 규정들이 면제되는 것은 아닙니다. 따라서 법원의 명령이나 합의 등에 의해서 본 허가서에 위배되는 사항들이 발생한 상황이라도 양측 모두를 만족시킬 수 없다면 라이브러리는 배포될 수 없습니다. 예를 들면, 특정한 특허 관련 허가가 라이브러리의 복제물을 직접 또는 간접적인 방법으로 양도받은 임의의 제3자에게 해당 라이브러리를 무상으로 재배포할 수 있게 허용하지 않는다면, 그러한 허가와 본 사용 허가를 동시에 만족시키면서 라이브러리를 배포할 수 있는 방법은 없습니다.
본 조항은 특정한 상황에서 본 조항의 일부가 유효하지 않거나 적용될 수 없을 경우에도 본 조항의 나머지 부분들을 적용하기 위한 의도로 만들어 졌습니다. 따라서 그 이외의 상황에서는 본 조항을 전체적으로 적용하면 됩니다.
본 조항의 목적은 특허나 저작권 침해 등의 행위를 조장하거나 해당 권리를 인정하지 않으려는 것이 아니라, 공중 사용 허가서들을 통해서 구현되어 있는 자유 소프트웨어의 배포 체계를 통합적으로 보호하기 위한 것입니다. 많은 사람들이 배포 체계에 대한 신뢰있는 지원을 계속해 줌으로써 소프트웨어의 다양한 분야에 많은 공헌을 해 주었습니다. 소프트웨어를 어떠한 배포 체계를 통해 배포할 것인가를 결정하는 것은 전적으로 저작자와 기증자들의 의지에 달려있는 것이지, 일반 사용자들이 강요할 수 있는 문제는 아닙니다.
본 조항은 본 허가서의 다른 조항들에서 무엇이 중요하게 고려되어야 하는 지를 명확하게 설명하기 위한 목적으로 만들어진 것입니다
제 12 조. 특허나 저작권이 설정된 인터페이스로 인해서 특정 국가에서 라이브러리의 배포와 사용이 함께 또는 개별적으로 제한되어 있는 경우, 본 사용 허가서를 라이브러리에 적용한 최초의 저작권자는 문제가 발생하지 않는 국가에 한해서 라이브러리를 배포한다는 배포상의 지역적 제한 조건을 명시적으로 설정할 수 있으며, 이러한 사항은 본 허가서의 일부로 간주됩니다.
제 13 조. 자유 소프트웨어 재단은 때때로 본 사용 허가서의 개정판이나 신판을 공표할 수 있습니다. 새롭게 공표될 판은 당면한 문제나 현안을 처리하기 위해서 세부적인 내용에 차이가 발생할 수 있지만, 그 근본 정신에는 변함이 없을 것입니다.
각각의 판들은 판번호를 사용해서 구별됩니다. 특정한 판번호와 그 이후 판을 따른다는 사항이 명시된 라이브러리에는 해당 판이나 그 이후에 발행된 어떠한 판을 선택해서 적용해도 무방하고, 판번호를 명시하고 있지 않은 경우에는 자유 소프트웨어 재단이 공표한 어떠한 판번호의 판을 적용해도 무방합니다.
제 14 조. 라이브러리의 일부를 본 허가서와 배포 기준이 다른 자유 프로그램과 함께 결합하고자 할 경우에는 해당 프로그램의 저작자로부터 서면 승인을 받아야 합니다. 자유 소프트웨어 재단이 저작권을 갖고 있는 소프트웨어의 경우에는 자유 소프트웨어 재단의 승인을 얻어야 합니다. 우리는 이러한 요청을 수락하기 위해서 때때로 예외 기준을 만들기도 합니다. 자유 소프트웨어 재단은 일반적으로 자유 소프트웨어의 2차적 저작물들을 모두 자유로운 상태로 유지시키려는 목적과 소프트웨어의 공유와 재활용을 증진시키려는 두가지 목적을 기준으로 승인 여부를 결정할 것입니다.
보증의 결여 (제15조, 제16조)
제 15 조. 본 허가서를 따르는 라이브러리는 무상으로 양도되기 때문에 관련 법률이 허용하는 한도 내에서 어떠한 형태의 보증도 제공되지 않습니다. 라이브러리의 저작권자와 배포자가 공동 또는 개별적으로 별도의 보증을 서면으로 제공할 때를 제외하면, 특정한 목적에 대한 라이브러리의 적합성이나 상업성 여부에 대한 보증을 포함한 어떠한 형태의 보증도 명시적이나 묵시적으로 설정되지 않은 ``있는 그대로의'' 상태로 이 라이브러리를 배포합니다. 라이브러리와 라이브러리의 실행에 따라 발생할 수 있는 모든 위험은 피양도자에게 인수되며 이에 따른 보수 및 복구를 위한 제반 경비 또한 피양도자가 모두 부담해야 합니다.
제 16 조. 저작권자나 배포자가 라이브러리의 손상 가능성을 사전에 알고 있었다 하더라도 발생된 손실이 관련 법규에 의해 보호되고 있거나 이에 대한 별도의 서면 보증이 설정된 경우가 아니라면, 저작권자나 라이브러리를 원래의 상태 또는 개작한 상태로 제공한 배포자는 라이브러리의 사용이나 비작동으로 인해 발생된 손실이나 라이브러리 자체의 손실에 대해 책임지지 않습니다. 이러한 면책 조건은 사용자나 제3자가 라이브러리를 조작함으로써 발생된 손실이나 다른 소프트웨어와 라이브러리를 함께 동작시키는 것으로 인해서 발생된 데이터의 상실 및 부정확한 산출 결과에만 국한되는 것이 아닙니다. 발생된 손실의 일반성이나 특수성 뿐 아니라 원인의 우발성 및 필연성도 전혀 고려되지 않습니다.
복제와 개작 및 배포에 관한 조건과 규정의 끝.
새로운 라이브러리에 LGPL을 적용하는 방법
새로운 라이브러리를 개발하고 그 라이브러리가 보다 많은 사람들에게 최대한 유용하게 사용되기를 원한다면, 본 허가서나 GNU 일반 공중 사용 허가서를 선택적으로 적용해서 누구나 자유롭게 개작하고 재배포할 수 있는 자유 소프트웨어로 만드는 것이 최선의 방법입니다.
라이브러리를 자유 소프트웨어로 만들기 위해서는 다음과 같은 사항을 라이브러리에 추가하면 됩니다. 라이브러리에 대한 보증이 제공되지 않는다는 사실을 가장 효과적으로 전달할 수 있는 방법은 원시 코드 파일의 시작 부분에 이러한 사항을 추가하는 것입니다. 각각의 파일에는 최소한 저작권을 명시한 행과 본 사용 허가서의 전체 내용을 참고할 수 있는 위치 정보를 명시해야 합니다.
라이브러리의 이름과 용도를 한 줄 정도로 설명합니다.
Copyright (C) 20yy년 <프로그램 저작자의 이름>
이 라이브러리는 자유 소프트웨어입니다. 소프트웨어의 피양도자는 자유 소프트웨어 재단이 공표한 GNU 약소 일반 공중 사용 허가서 2.1판 또는 그 이후 판을 임의로 선택해서, 그 규정에 따라 라이브러리를 개작하거나 재배포할 수 있습니다.
이 라이브러리는 유용하게 사용될 수 있으리라는 희망에서 배포되고 있지만, 특정한 목적에 맞는 적합성 여부나 판매용으로 사용할 수 있으리라는 묵시적인 보증을 포함한 어떠한 형태의 보증도 제공하지 않습니다. 보다 자세한 사항에 대해서는 GNU 약소 일반 공중 사용 허가서를 참고하시기 바랍니다.
GNU 약소 일반 공중 사용 허가서는 이 라이브러리와 함께 제공됩니다. 만약, 이 문서가 누락되어 있다면 자유 소프트웨어 재단으로 문의하시기 바랍니다. (자유 소프트웨어 재단: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA)
또한, 사용자들이 라이브러리를 배포한 사람에게 전자 메일과 서면으로 연락할 수 있는 정보를 추가해야 합니다.
만약, 라이브러리의 저작자가 학교나 기업과 같은 단체나 기관에 프로그래머로 고용되어 있다면 라이브러리의 자유로운 배포를 위해서 고용주나 해당 기관장으로부터 라이브러리에 대한 저작권 포기 각서를 받아야 합니다. 예를 들면 다음과 같은 형식이 될 수 있다. (아래의 문구를 실제로 사용할 경우에는 예로 사용된 이름들을 실제 이름으로 대체하면 됩니다.)
본사는 제임스 해커가 만든 (설정 옵션을 조정하기 위한) `Frob' 라이브러리에 관련된 모든 저작권을 포기합니다.
1990년 4월 1일
Yoyodye, Inc., 부사장: Ty Coon
서명: Ty Coon의 서명
----- GPL 원문 --------------------------------------------------------
----- LGPL 원문 --------------------------------------------------------
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification follow.
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things.
To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others.
Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs.
When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library.
We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances.
For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system.
Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library.
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.
(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library.
In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.
Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.
If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:
a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.
e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.
7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above.
b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License.
11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License).
To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
one line to give the library's name and an idea of what it does.
Copyright (C) year name of author
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in
the library `Frob' (a library for tweaking knobs) written
by James Random Hacker.
signature of Ty Coon, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!
----- 끝 --------------------------------------------------------
+1 -2
View File
@@ -1,3 +1,2 @@
<?php
include_once('./common.php');
?>
include_once('./common.php');
+1 -2
View File
@@ -1,5 +1,4 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
include_once(G5_PATH.'/head.php');
?>
include_once(G5_PATH.'/head.php');
+1 -2
View File
@@ -1,5 +1,4 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
include_once(G5_PATH.'/tail.php');
?>
include_once(G5_PATH.'/tail.php');
+6 -1
View File
@@ -2,4 +2,9 @@
define('G5_IS_ADMIN', true);
include_once ('../common.php');
include_once(G5_ADMIN_PATH.'/admin.lib.php');
?>
if( isset($token) ){
$token = @htmlspecialchars(strip_tags($token), ENT_QUOTES);
}
run_event('admin_common');
+120
View File
@@ -0,0 +1,120 @@
<?php
if (!defined('_GNUBOARD_')) exit;
$is_use_apache = (stripos($_SERVER['SERVER_SOFTWARE'], 'apache') !== false);
$is_use_nginx = (stripos($_SERVER['SERVER_SOFTWARE'], 'nginx') !== false);
$is_use_iis = !$is_use_apache && (stripos($_SERVER['SERVER_SOFTWARE'], 'microsoft-iis') !== false);
$is_write_file = false;
$is_apache_need_rules = false;
$is_apache_rewrite = false;
if( !($is_use_apache || $is_use_nginx || $is_use_iis) ){ // 셋다 아니면 다 출력시킨다.
$is_use_apache = true;
$is_use_nginx = true;
}
if ( $is_use_nginx ){
$is_write_file = false;
}
if ( $is_use_apache ){
$is_write_file = (is_writable(G5_PATH) || (file_exists(G5_PATH.'/.htaccess') && is_writable(G5_PATH.'/.htaccess'))) ? true : false;
$is_apache_need_rules = check_need_rewrite_rules();
$is_apache_rewrite = function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules());
}
$get_path_url = parse_url( G5_URL );
$base_path = isset($get_path_url['path']) ? $get_path_url['path'].'/' : '/';
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.G5_JS_URL.'/remodal/remodal.css">', 11);
add_stylesheet('<link rel="stylesheet" href="'.G5_JS_URL.'/remodal/remodal-default-theme.css">', 12);
add_javascript('<script src="'.G5_JS_URL.'/remodal/remodal.js"></script>', 10);
?>
<section id="anc_cf_url">
<h2 class="h2_frm">짧은 주소 설정</h2>
<?php echo $pg_anchor ?>
<div class="local_desc02 local_desc">
<p>
게시판과 컨텐츠 페이지에 짧은 URL 을 사용합니다. <a href="https://sir.kr/manual/g5/286" class="btn btn_03" target="_blank" style="margin-left:10px">설정 관련 메뉴얼 보기</a>
<?php if( $is_use_apache && ! $is_use_nginx ){ ?>
<?php if( ! $is_apache_rewrite ){ ?>
<br><strong>Apache 서버인 경우 rewrite_module 이 비활성화 되어 있으면 짧은 주소를 사용할수 없습니다.</strong>
<?php } else if( ! $is_write_file && $is_apache_need_rules ) { // apache인 경우 ?>
<br><strong>짧은 주소 사용시 아래 Apache 설정 코드를 참고하여 설정해 주세요.</strong>
<?php } ?>
<?php } ?>
</p>
</div>
<div class="server_config_views">
<?php if ( $is_use_apache ){ ?>
<button type="button" data-remodal-target="modal_apache" class="btn btn_03">Apache 설정 코드 보기</button>
<?php } ?>
<?php if ( $is_use_nginx ) { ?>
<button type="button" data-remodal-target="modal_nginx" class="btn btn_03">Nginx 설정 코드 보기</button>
<?php } ?>
</div>
<div class="tbl_frm01 tbl_wrap">
<table>
<caption>짧은주소 설정</caption>
<colgroup>
<col class="grid_4">
<col>
</colgroup>
<tbody>
<?php
$short_url_arrs = array(
'0'=>array('label'=>'사용안함', 'url'=>G5_URL.'/board.php?bo_table=free&wr_id=123'),
'1'=>array('label'=>'숫자', 'url'=>G5_URL.'/free/123'),
'2'=>array('label'=>'글 이름', 'url'=>G5_URL.'/free/안녕하세요/'),
);
foreach($short_url_arrs as $k=>$v){
$checked = ((int) $config['cf_bbs_rewrite'] === (int) $k) ? 'checked' : '';
?>
<tr>
<td><input name="cf_bbs_rewrite" id="cf_bbs_rewrite_<?php echo $k; ?>" type="radio" value="<?php echo $k; ?>" <?php echo $checked;?> ><label for="cf_bbs_rewrite_<?php echo $k; ?>" class="rules_label"><?php echo $v['label']; ?></label></td>
<td><?php echo $v['url']; ?></td>
</tr>
<?php } //end foreach ?>
</tbody>
</table>
</div>
<div class="server_rewrite_info">
<div class="is_rewrite remodal" data-remodal-id="modal_apache" role="dialog" aria-labelledby="modalApache" aria-describedby="modal1Desc">
<button type="button" class="connect-close" data-remodal-action="close">
<i class="fa fa-close"></i>
<span class="txt">닫기</span>
</button>
<h4 class="copy_title">.htaccess 파일에 적용할 코드입니다.
<?php if( ! $is_apache_rewrite ) { ?>
<br><span class="info-warning">Apache 서버인 경우 rewrite_module 이 비활성화 되어 있으면 짧은 주소를 사용할수 없습니다.</span>
<?php } else if ( ! $is_write_file && $is_apache_need_rules ) { ?>
<br><span class="info-warning">자동으로 .htaccess 파일을 수정 할수 있는 권한이 없습니다.<br>.htaccess 파일이 없다면 생성 후에, 아래 코드가 없으면 코드를 복사하여 붙여넣기 해 주세요.</span>
<?php } else if ( ! $is_apache_need_rules ){ ?>
<br><span class="info-success">정상적으로 적용된 상태입니다.</span>
<?php } ?>
</h4>
<textarea readonly="readonly" rows="10"><?php echo get_mod_rewrite_rules(true); ?></textarea>
</div>
<div class="is_rewrite remodal" data-remodal-id="modal_nginx" role="dialog" aria-labelledby="modalNginx" aria-describedby="modal2Desc">
<button type="button" class="connect-close" data-remodal-action="close">
<i class="fa fa-close"></i>
<span class="txt">닫기</span>
</button>
<h4 class="copy_title">아래 코드를 복사하여 nginx 설정 파일에 적용해 주세요.</h4>
<textarea readonly="readonly" rows="10"><?php echo get_nginx_conf_rules(true); ?></textarea>
</div>
</div>
</section>
+128 -63
View File
@@ -1,11 +1,25 @@
<?php
if (!defined('_GNUBOARD_')) exit;
$begin_time = get_microtime();
$g5_debug['php']['begin_time'] = $begin_time = get_microtime();
$files = glob(G5_ADMIN_PATH.'/css/admin_extend_*');
if (is_array($files)) {
foreach ((array) $files as $k=>$css_file) {
$fileinfo = pathinfo($css_file);
$ext = $fileinfo['extension'];
if( $ext !== 'css' ) continue;
$css_file = str_replace(G5_ADMIN_PATH, G5_ADMIN_URL, $css_file);
add_stylesheet('<link rel="stylesheet" href="'.$css_file.'">', $k);
}
}
include_once(G5_PATH.'/head.sub.php');
function print_menu1($key, $no)
function print_menu1($key, $no='')
{
global $menu;
@@ -14,23 +28,35 @@ function print_menu1($key, $no)
return $str;
}
function print_menu2($key, $no)
function print_menu2($key, $no='')
{
global $menu, $auth_menu, $is_admin, $auth, $g5;
global $menu, $auth_menu, $is_admin, $auth, $g5, $sub_menu;
$str .= "<ul class=\"gnb_2dul\">";
$str = "<ul>";
for($i=1; $i<count($menu[$key]); $i++)
{
if( ! isset($menu[$key][$i]) ){
continue;
}
if ($is_admin != 'super' && (!array_key_exists($menu[$key][$i][0],$auth) || !strstr($auth[$menu[$key][$i][0]], 'r')))
continue;
$gnb_grp_div = $gnb_grp_style = '';
if (($menu[$key][$i][4] == 1 && $gnb_grp_style == false) || ($menu[$key][$i][4] != 1 && $gnb_grp_style == true)) $gnb_grp_div = 'gnb_grp_div';
else $gnb_grp_div = '';
if (isset($menu[$key][$i][4])){
if (($menu[$key][$i][4] == 1 && $gnb_grp_style == false) || ($menu[$key][$i][4] != 1 && $gnb_grp_style == true)) $gnb_grp_div = 'gnb_grp_div';
if ($menu[$key][$i][4] == 1) $gnb_grp_style = 'gnb_grp_style';
else $gnb_grp_style = '';
if ($menu[$key][$i][4] == 1) $gnb_grp_style = 'gnb_grp_style';
}
$str .= '<li class="gnb_2dli"><a href="'.$menu[$key][$i][2].'" class="gnb_2da '.$gnb_grp_style.' '.$gnb_grp_div.'">'.$menu[$key][$i][1].'</a></li>';
$current_class = '';
if ($menu[$key][$i][0] == $sub_menu){
$current_class = ' on';
}
$str .= '<li data-menu="'.$menu[$key][$i][0].'"><a href="'.$menu[$key][$i][2].'" class="gnb_2da '.$gnb_grp_style.' '.$gnb_grp_div.$current_class.'">'.$menu[$key][$i][1].'</a></li>';
$auth_menu[$menu[$key][$i][0]] = $menu[$key][$i][1];
}
@@ -38,6 +64,18 @@ function print_menu2($key, $no)
return $str;
}
$adm_menu_cookie = array(
'container' => '',
'gnb' => '',
'btn_gnb' => '',
);
if( ! empty($_COOKIE['g5_admin_btn_gnb']) ){
$adm_menu_cookie['container'] = 'container-small';
$adm_menu_cookie['gnb'] = 'gnb_small';
$adm_menu_cookie['btn_gnb'] = 'btn_gnb_open';
}
?>
<script>
@@ -66,75 +104,102 @@ function imageview(id, w, h)
<div id="to_content"><a href="#container">본문 바로가기</a></div>
<header id="hd">
<div id="hd_wrap">
<h1><?php echo $config['cf_title'] ?></h1>
<h1><?php echo $config['cf_title'] ?></h1>
<div id="hd_top">
<button type="button" id="btn_gnb" class="btn_gnb_close <?php echo $adm_menu_cookie['btn_gnb'];?>">메뉴</button>
<div id="logo"><a href="<?php echo correct_goto_url(G5_ADMIN_URL); ?>"><img src="<?php echo G5_ADMIN_URL ?>/img/logo.png" alt="<?php echo get_text($config['cf_title']); ?> 관리자"></a></div>
<div id="logo"><a href="<?php echo G5_ADMIN_URL ?>"><img src="<?php echo G5_ADMIN_URL ?>/img/logo.jpg" alt="<?php echo $config['cf_title'] ?> 관리자"></a></div>
<ul id="tnb">
<li><a href="<?php echo G5_ADMIN_URL ?>/member_form.php?w=u&amp;mb_id=<?php echo $member['mb_id'] ?>">관리자정보</a></li>
<li><a href="<?php echo G5_ADMIN_URL ?>/config_form.php">기본환경</a></li>
<li><a href="<?php echo G5_URL ?>/">커뮤니티</a></li>
<?php if(defined('G5_USE_SHOP')) { ?>
<li><a href="<?php echo G5_ADMIN_URL ?>/shop_admin/configform.php">쇼핑몰환경</a></li>
<li><a href="<?php echo G5_SHOP_URL ?>/">쇼핑몰</a></li>
<?php } ?>
<li id="tnb_logout"><a href="<?php echo G5_BBS_URL ?>/logout.php">로그아웃</a></li>
</ul>
<nav id="gnb">
<h2>관리자 주메뉴</h2>
<div id="tnb">
<ul>
<li class="tnb_li"><a href="<?php echo G5_URL ?>/" class="tnb_community" target="_blank" title="커뮤니티 바로가기">커뮤니티 바로가기</a></li>
<li class="tnb_li"><a href="<?php echo G5_ADMIN_URL ?>/service.php" class="tnb_service">부가서비스</a></li>
<li class="tnb_li"><button type="button" class="tnb_mb_btn">관리자<span class="./img/btn_gnb.png">메뉴열기</span></button>
<ul class="tnb_mb_area">
<li><a href="<?php echo G5_ADMIN_URL ?>/member_form.php?w=u&amp;mb_id=<?php echo $member['mb_id'] ?>">관리자정보</a></li>
<li id="tnb_logout"><a href="<?php echo G5_BBS_URL ?>/logout.php">로그아웃</a></li>
</ul>
</li>
</ul>
</div>
</div>
<nav id="gnb" class="gnb_large <?php echo $adm_menu_cookie['gnb']; ?>">
<h2>관리자 주메뉴</h2>
<ul class="gnb_ul">
<?php
$gnb_str = "<ul id=\"gnb_1dul\">";
$jj = 1;
foreach($amenu as $key=>$value) {
$href1 = $href2 = '';
if ($menu['menu'.$key][0][2]) {
$href1 = '<a href="'.$menu['menu'.$key][0][2].'" class="gnb_1da">';
$href2 = '</a>';
} else {
continue;
}
$current_class = "";
if (isset($sub_menu) && (substr($sub_menu, 0, 2) == substr($menu['menu'.$key][0][0], 0, 2)))
$current_class = " gnb_1dli_air";
$gnb_str .= '<li class="gnb_1dli'.$current_class.'">'.PHP_EOL;
$gnb_str .= $href1 . $menu['menu'.$key][0][1] . $href2;
$gnb_str .= print_menu1('menu'.$key, 1);
$gnb_str .= "</li>";
}
$gnb_str .= "</ul>";
echo $gnb_str;
if (isset($sub_menu) && (substr($sub_menu, 0, 3) == substr($menu['menu'.$key][0][0], 0, 3)))
$current_class = " on";
$button_title = $menu['menu'.$key][0][1];
?>
</nav>
<li class="gnb_li<?php echo $current_class;?>">
<button type="button" class="btn_op menu-<?php echo $key; ?> menu-order-<?php echo $jj; ?>" title="<?php echo $button_title; ?>"><?php echo $button_title;?></button>
<div class="gnb_oparea_wr">
<div class="gnb_oparea">
<h3><?php echo $menu['menu'.$key][0][1];?></h3>
<?php echo print_menu1('menu'.$key, 1); ?>
</div>
</div>
</li>
<?php
$jj++;
} //end foreach
?>
</ul>
</nav>
</div>
</header>
<script>
jQuery(function($){
<?php if($sub_menu) { ?>
<ul id="lnb">
<?php
$menu_key = substr($sub_menu, 0, 3);
$nl = '';
foreach($menu['menu'.$menu_key] as $key=>$value) {
if($key > 0) {
if ($is_admin != 'super' && (!array_key_exists($value[0],$auth) || !strstr($auth[$value[0]], 'r')))
continue;
var menu_cookie_key = 'g5_admin_btn_gnb';
$(".tnb_mb_btn").click(function(){
$(".tnb_mb_area").toggle();
});
$("#btn_gnb").click(function(){
var $this = $(this);
try {
if( ! $this.hasClass("btn_gnb_open") ){
set_cookie(menu_cookie_key, 1, 60*60*24*365);
} else {
delete_cookie(menu_cookie_key);
}
}
catch(err) {
}
$("#container").toggleClass("container-small");
$("#gnb").toggleClass("gnb_small");
$this.toggleClass("btn_gnb_open");
});
$(".gnb_ul li .btn_op" ).click(function() {
$(this).parent().addClass("on").siblings().removeClass("on");
});
});
</script>
echo $nl.'<li><a href="'.$value[2].'">'.$value[1].'</a></li>';
$nl = PHP_EOL;
}
}
?>
</ul>
<?php } ?>
<div id="wrapper">
<div id="container">
<div id="text_size">
<!-- font_resize('엘리먼트id', '제거할 class', '추가할 class'); -->
<button onclick="font_resize('container', 'ts_up ts_up2', '');"><img src="<?php echo G5_ADMIN_URL ?>/img/ts01.gif" alt="기본"></button>
<button onclick="font_resize('container', 'ts_up ts_up2', 'ts_up');"><img src="<?php echo G5_ADMIN_URL ?>/img/ts02.gif" alt="크게"></button>
<button onclick="font_resize('container', 'ts_up ts_up2', 'ts_up2');"><img src="<?php echo G5_ADMIN_URL ?>/img/ts03.gif" alt="더크게"></button>
</div>
<h1><?php echo $g5['title'] ?></h1>
<div id="container" class="<?php echo $adm_menu_cookie['container']; ?>">
<h1 id="container_title"><?php echo $g5['title'] ?></h1>
<div class="container_wr">
+59 -4
View File
@@ -57,12 +57,20 @@ function is_checked(elements_name)
return checked;
}
function delete_confirm()
function delete_confirm(el)
{
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?"))
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
var token = get_ajax_token();
var href = el.href.replace(/&token=.+$/g, "");
if(!token) {
alert("토큰 정보가 올바르지 않습니다.");
return false;
}
el.href = href+"&token="+token;
return true;
else
} else {
return false;
}
}
function delete_confirm2(msg)
@@ -71,4 +79,51 @@ function delete_confirm2(msg)
return true;
else
return false;
}
}
function get_ajax_token()
{
var token = "";
$.ajax({
type: "POST",
url: g5_admin_url+"/ajax.token.php",
cache: false,
async: false,
dataType: "json",
success: function(data) {
if(data.error) {
alert(data.error);
if(data.url)
document.location.href = data.url;
return false;
}
token = data.token;
}
});
return token;
}
$(function() {
$(document).on("click", "form input:submit, form button:submit", function() {
var f = this.form;
var token = get_ajax_token();
if(!token) {
alert("토큰 정보가 올바르지 않습니다.");
return false;
}
var $f = $(f);
if(typeof f.token === "undefined")
$f.prepend('<input type="hidden" name="token" value="">');
$f.find("input[name=token]").val(token);
return true;
});
});
+377 -22
View File
@@ -12,11 +12,30 @@ if (!get_session('ss_admin')) {
// 스킨디렉토리를 SELECT 형식으로 얻음
function get_skin_select($skin_gubun, $id, $name, $selected='', $event='')
{
$skins = get_skin_dir($skin_gubun);
global $config;
$skins = array();
if(defined('G5_THEME_PATH') && $config['cf_theme']) {
$dirs = get_skin_dir($skin_gubun, G5_THEME_PATH.'/'.G5_SKIN_DIR);
if(!empty($dirs)) {
foreach($dirs as $dir) {
$skins[] = 'theme/'.$dir;
}
}
}
$skins = array_merge($skins, get_skin_dir($skin_gubun));
$str = "<select id=\"$id\" name=\"$name\" $event>\n";
for ($i=0; $i<count($skins); $i++) {
if ($i == 0) $str .= "<option value=\"\">선택</option>";
$str .= option_selected($skins[$i], $selected);
if(preg_match('#^theme/(.+)$#', $skins[$i], $match))
$text = '(테마) '.$match[1];
else
$text = $skins[$i];
$str .= option_selected($skins[$i], $selected, $text);
}
$str .= "</select>";
return $str;
@@ -25,11 +44,30 @@ function get_skin_select($skin_gubun, $id, $name, $selected='', $event='')
// 모바일 스킨디렉토리를 SELECT 형식으로 얻음
function get_mobile_skin_select($skin_gubun, $id, $name, $selected='', $event='')
{
$skins = get_skin_dir($skin_gubun, G5_MOBILE_PATH.'/'.G5_SKIN_DIR);
global $config;
$skins = array();
if(defined('G5_THEME_PATH') && $config['cf_theme']) {
$dirs = get_skin_dir($skin_gubun, G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR);
if(!empty($dirs)) {
foreach($dirs as $dir) {
$skins[] = 'theme/'.$dir;
}
}
}
$skins = array_merge($skins, get_skin_dir($skin_gubun, G5_MOBILE_PATH.'/'.G5_SKIN_DIR));
$str = "<select id=\"$id\" name=\"$name\" $event>\n";
for ($i=0; $i<count($skins); $i++) {
if ($i == 0) $str .= "<option value=\"\">선택</option>";
$str .= option_selected($skins[$i], $selected);
if(preg_match('#^theme/(.+)$#', $skins[$i], $match))
$text = '(테마) '.$match[1];
else
$text = $skins[$i];
$str .= option_selected($skins[$i], $selected, $text);
}
$str .= "</select>";
return $str;
@@ -44,6 +82,9 @@ function get_skin_dir($skin, $skin_path=G5_SKIN_PATH)
$result_array = array();
$dirname = $skin_path.'/'.$skin.'/';
if(!is_dir($dirname))
return;
$handle = opendir($dirname);
while ($file = readdir($handle)) {
if($file == '.'||$file == '..') continue;
@@ -57,6 +98,101 @@ function get_skin_dir($skin, $skin_path=G5_SKIN_PATH)
}
// 테마
function get_theme_dir()
{
$result_array = array();
$dirname = G5_PATH.'/'.G5_THEME_DIR.'/';
$handle = opendir($dirname);
while ($file = readdir($handle)) {
if($file == '.'||$file == '..') continue;
if (is_dir($dirname.$file)) {
$theme_path = $dirname.$file;
if(is_file($theme_path.'/index.php') && is_file($theme_path.'/head.php') && is_file($theme_path.'/tail.php'))
$result_array[] = $file;
}
}
closedir($handle);
natsort($result_array);
return $result_array;
}
// 테마정보
function get_theme_info($dir)
{
$info = array();
$path = G5_PATH.'/'.G5_THEME_DIR.'/'.$dir;
if(is_dir($path)) {
$screenshot = $path.'/screenshot.png';
if(is_file($screenshot)) {
$size = @getimagesize($screenshot);
if($size[2] == 3)
$screenshot_url = str_replace(G5_PATH, G5_URL, $screenshot);
}
$info['screenshot'] = $screenshot_url;
$text = $path.'/readme.txt';
if(is_file($text)) {
$content = file($text, false);
$content = array_map('trim', $content);
preg_match('#^Theme Name:(.+)$#i', $content[0], $m0);
preg_match('#^Theme URI:(.+)$#i', $content[1], $m1);
preg_match('#^Maker:(.+)$#i', $content[2], $m2);
preg_match('#^Maker URI:(.+)$#i', $content[3], $m3);
preg_match('#^Version:(.+)$#i', $content[4], $m4);
preg_match('#^Detail:(.+)$#i', $content[5], $m5);
preg_match('#^License:(.+)$#i', $content[6], $m6);
preg_match('#^License URI:(.+)$#i', $content[7], $m7);
$info['theme_name'] = trim($m0[1]);
$info['theme_uri'] = trim($m1[1]);
$info['maker'] = trim($m2[1]);
$info['maker_uri'] = trim($m3[1]);
$info['version'] = trim($m4[1]);
$info['detail'] = trim($m5[1]);
$info['license'] = trim($m6[1]);
$info['license_uri'] = trim($m7[1]);
}
if(!$info['theme_name'])
$info['theme_name'] = $dir;
}
return $info;
}
// 테마설정 정보
function get_theme_config_value($dir, $key='*')
{
$tconfig = array();
$theme_config_file = G5_PATH.'/'.G5_THEME_DIR.'/'.$dir.'/theme.config.php';
if(is_file($theme_config_file)) {
include($theme_config_file);
if($key == '*') {
$tconfig = $theme_config;
} else {
$keys = array_map('trim', explode(',', $key));
foreach($keys as $v) {
$tconfig[$v] = isset($theme_config[$v]) ? trim($theme_config[$v]) : '';
}
}
}
return $tconfig;
}
// 회원권한을 SELECT 형식으로 얻음
function get_member_level_select($name, $start_id=0, $end_id=10, $selected="", $event="")
{
@@ -94,27 +230,57 @@ function get_member_id_select($name, $level, $selected="", $event="")
return $str;
}
// php8 버전 호환 권한 검사 함수
function auth_check_menu($auth, $sub_menu, $attr, $return=false) {
$check_auth = isset($auth[$sub_menu]) ? $auth[$sub_menu] : '';
return auth_check($check_auth, $attr, $return);
}
// 권한 검사
function auth_check($auth, $attr)
function auth_check($auth, $attr, $return=false)
{
global $is_admin;
if ($is_admin == 'super') return;
if (!trim($auth))
alert('이 메뉴에는 접근 권한이 없습니다.\\n\\n접근 권한은 최고관리자만 부여할 수 있습니다.');
if (!trim($auth)) {
$msg = '이 메뉴에는 접근 권한이 없습니다.\\n\\n접근 권한은 최고관리자만 부여할 수 있습니다.';
if($return)
return $msg;
else
alert($msg);
}
$attr = strtolower($attr);
if (!strstr($auth, $attr)) {
if ($attr == 'r')
alert('읽을 권한이 없습니다.');
else if ($attr == 'w')
alert('입력, 추가, 생성, 수정 권한이 없습니다.');
else if ($attr == 'd')
alert('삭제 권한이 없습니다.');
else
alert('속성이 잘못 되었습니다.');
if ($attr == 'r') {
$msg = '읽을 권한이 없습니다.';
if($return)
return $msg;
else
alert($msg);
} else if ($attr == 'w') {
$msg = '입력, 추가, 생성, 수정 권한이 없습니다.';
if($return)
return $msg;
else
alert($msg);
} else if ($attr == 'd') {
$msg = '삭제 권한이 없습니다.';
if($return)
return $msg;
else
alert($msg);
} else {
$msg = '속성이 잘못 되었습니다.';
if($return)
return $msg;
else
alert($msg);
}
}
}
@@ -188,11 +354,181 @@ function order_select($fld, $sel='')
return $s;
}
// 불법접근을 막도록 토큰을 생성하면서 토큰값을 리턴
function get_admin_token()
{
$token = md5(uniqid(rand(), true));
set_session('ss_admin_token', $token);
return $token;
}
// 관리자가 자동등록방지를 사용해야 할 경우
function get_admin_captcha_by($type='get'){
$captcha_name = 'ss_admin_use_captcha';
if($type === 'remove'){
set_session($captcha_name, '');
}
return get_session($captcha_name);
}
//input value 에서 xss 공격 filter 역할을 함 ( 반드시 input value='' 타입에만 사용할것 )
function get_sanitize_input($s, $is_html=false){
if(!$is_html){
$s = strip_tags($s);
}
$s = htmlspecialchars($s, ENT_QUOTES, 'utf-8');
return $s;
}
function check_log_folder($log_path){
if( is_writable($log_path) ){
// 아파치 서버인 경우 웹에서 해당 폴더 접근 막기
$htaccess_file = $log_path.'/.htaccess';
if ( !file_exists( $htaccess_file ) ) {
if ( $handle = @fopen( $htaccess_file, 'w' ) ) {
fwrite( $handle, 'Order deny,allow' . "\n" );
fwrite( $handle, 'Deny from all' . "\n" );
fclose( $handle );
}
}
// 아파치 서버인 경우 해당 디렉토리 파일 목록 안보이게 하기
$index_file = $log_path . '/index.php';
if ( !file_exists( $index_file ) ) {
if ( $handle = @fopen( $index_file, 'w' ) ) {
fwrite( $handle, '' );
fclose( $handle );
}
}
}
// txt 파일과 log 파일을 조회하여 30일이 지난 파일은 삭제합니다.
$txt_files = glob($log_path.'/*.txt');
$log_files = glob($log_path.'/*.log');
$del_files = array_merge($txt_files, $log_files);
if( $del_files && is_array($del_files) ){
foreach ($del_files as $del_file) {
$filetime = filemtime($del_file);
// 30일이 지난 파일을 삭제
if($filetime && $filetime < (G5_SERVER_TIME - 2592000)) {
@unlink($del_file);
}
}
}
}
// POST로 넘어온 토큰과 세션에 저장된 토큰 비교
function check_admin_token()
{
$token = get_session('ss_admin_token');
set_session('ss_admin_token', '');
if(!$token || !$_REQUEST['token'] || $token != $_REQUEST['token'])
alert('올바른 방법으로 이용해 주십시오.', G5_URL);
return true;
}
// 관리자 페이지 referer 체크
function admin_referer_check($return=false)
{
$referer = isset($_SERVER['HTTP_REFERER']) ? trim($_SERVER['HTTP_REFERER']) : '';
if(!$referer) {
$msg = '정보가 올바르지 않습니다.';
if($return)
return $msg;
else
alert($msg, G5_URL);
}
$p = @parse_url($referer);
$host = preg_replace('/:[0-9]+$/', '', $_SERVER['HTTP_HOST']);
$msg = '';
if($host != $p['host']) {
$msg = '올바른 방법으로 이용해 주십시오.';
}
if( $p['path'] && ! preg_match( '/\/'.preg_quote(G5_ADMIN_DIR).'\//i', $p['path'] ) ){
$msg = '올바른 방법으로 이용해 주십시오';
}
if( $msg ){
if($return) {
return $msg;
} else {
alert($msg, G5_URL);
}
}
}
function admin_check_xss_params($params){
if( ! $params ) return;
foreach( $params as $key=>$value ){
if ( empty($value) ) continue;
if( is_array($value) ){
admin_check_xss_params($value);
} else if ( (preg_match('/<\s?[^\>]*\/?\s?>/i', $value) && (preg_match('/script.*?\/script/ius', $value) || preg_match('/[onload|onerror]=.*/ius', $value))) || preg_match('/^(?=.*token\()(?=.*xmlhttprequest\()(?=.*send\().*$/im', $value) || (preg_match('/[onload|onerror|focus]=.*/ius', $value) && preg_match('/(eval|expression|exec|prompt)(\s*)\((.*)\)/ius', $value)) ){
alert('요청 쿼리에 잘못된 스크립트문장이 있습니다.\\nXSS 공격일수도 있습니다.', G5_URL);
die();
}
}
return;
}
function admin_menu_find_by($call, $search_key){
global $menu;
static $cache_menu = array();
if( empty($cache_menu) ){
foreach( $menu as $k1=>$arr1 ){
if (empty($arr1) ) continue;
foreach( $arr1 as $k2=>$arr2 ){
if (empty($arr2) ) continue;
$menu_key = isset($arr2[3]) ? $arr2[3] : '';
if (empty($menu_key) ) continue;
$cache_menu[$menu_key] = array(
'sub_menu'=>$arr2[0],
'title'=>$arr2[1],
'link'=>$arr2[2],
);
}
}
}
if( isset($cache_menu[$call]) && isset($cache_menu[$call][$search_key]) ){
return $cache_menu[$call][$search_key];
}
return '';
}
// 접근 권한 검사
if (!$member['mb_id'])
{
//alert('로그인 하십시오.', '$g5['bbs_path']/login.php?url=' . urlencode('$_SERVER['PHP_SELF']?w=$w&mb_id=$mb_id'));
alert('로그인 하십시오.', G5_BBS_URL.'/login.php?url=' . urlencode($_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']));
alert('로그인 하십시오.', G5_BBS_URL.'/login.php?url=' . urlencode(correct_goto_url(G5_ADMIN_URL)));
}
else if ($is_admin != 'super')
{
@@ -211,7 +547,7 @@ else if ($is_admin != 'super')
}
// 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.
$admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);
$admin_key = md5($member['mb_datetime'] . get_real_client_ip() . $_SERVER['HTTP_USER_AGENT']);
if (get_session('ss_mb_key') !== $admin_key) {
session_destroy();
@@ -223,22 +559,36 @@ if (get_session('ss_mb_key') !== $admin_key) {
alert_close('정상적으로 로그인하여 접근하시기 바랍니다.');
}
@ksort($auth);
if(isset($auth) && is_array($auth)) {
@ksort($auth);
} else {
$auth = array();
}
// 가변 메뉴
unset($auth_menu);
unset($menu);
unset($amenu);
$tmp = dir(G5_ADMIN_PATH);
$menu_files = array();
while ($entry = $tmp->read()) {
if (!preg_match('/^admin.menu([0-9]{3}).*\.php$/', $entry, $m))
continue; // 파일명이 menu 으로 시작하지 않으면 무시한다.
$amenu[$m[1]] = $entry;
include_once(G5_ADMIN_PATH.'/'.$entry);
$menu_files[] = G5_ADMIN_PATH.'/'.$entry;
}
@asort($menu_files);
foreach($menu_files as $file){
include_once($file);
}
@ksort($amenu);
$amenu = run_replace('admin_amenu', $amenu);
if( isset($menu) && $menu ){
$menu = run_replace('admin_menu', $menu);
}
$arr_query = array();
if (isset($sst)) $arr_query[] = 'sst='.$sst;
if (isset($sod)) $arr_query[] = 'sod='.$sod;
@@ -247,6 +597,11 @@ if (isset($stx)) $arr_query[] = 'stx='.$stx;
if (isset($page)) $arr_query[] = 'page='.$page;
$qstr = implode("&amp;", $arr_query);
if ( isset($_REQUEST) && $_REQUEST ){
if( admin_referer_check(true) ){
admin_check_xss_params($_REQUEST);
}
}
// 관리자에서는 추가 스크립트는 사용하지 않는다.
//$config['cf_add_script'] = '';
?>
//$config['cf_add_script'] = '';
+12 -5
View File
@@ -1,16 +1,23 @@
<?php
$menu['menu100'] = array (
array('100000', '환경설정', G5_ADMIN_URL.'/config_form.php', 'config'),
array('', '기본환경설정', G5_ADMIN_URL.'/config_form.php', 'cf_basic'),
array('', '관리권한설정', G5_ADMIN_URL.'/auth_list.php', 'cf_auth'),
array('', '메뉴설정', G5_ADMIN_URL.'/menu_list.php', 'cf_menu', 1),
array('100100', '기본환경설정', G5_ADMIN_URL.'/config_form.php', 'cf_basic'),
array('100200', '관리권한설정', G5_ADMIN_URL.'/auth_list.php', 'cf_auth'),
array('100280', '테마설정', G5_ADMIN_URL.'/theme.php', 'cf_theme', 1),
array('100290', '메뉴설정', G5_ADMIN_URL.'/menu_list.php', 'cf_menu', 1),
array('100300', '메일 테스트', G5_ADMIN_URL.'/sendmail_test.php', 'cf_mailtest'),
array('100310', '팝업레이어관리', G5_ADMIN_URL.'/newwinlist.php', 'scf_poplayer'),
array('100800', '세션파일 일괄삭제',G5_ADMIN_URL.'/session_file_delete.php', 'cf_session', 1),
array('100900', '캐시파일 일괄삭제',G5_ADMIN_URL.'/cache_file_delete.php', 'cf_cache', 1),
array('100910', '캡챠파일 일괄삭제',G5_ADMIN_URL.'/captcha_file_delete.php', 'cf_captcha', 1),
array('100920', '썸네일파일 일괄삭제',G5_ADMIN_URL.'/thumbnail_file_delete.php', 'cf_thumbnail', 1),
array('100930', '네이버 신디케이션 핑',G5_SYNDI_URL.'/ping.php', 'cf_syndi_ping', 1),
array('100500', 'phpinfo()', G5_ADMIN_URL.'/phpinfo.php', 'cf_phpinfo')
);
?>
if(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE) {
$menu['menu100'][] = array('100510', 'Browscap 업데이트', G5_ADMIN_URL.'/browscap.php', 'cf_browscap');
$menu['menu100'][] = array('100520', '접속로그 변환', G5_ADMIN_URL.'/browscap_convert.php', 'cf_visit_cnvrt');
}
$menu['menu100'][] = array('100410', 'DB업그레이드', G5_ADMIN_URL.'/dbupgrade.php', 'db_upgrade');
$menu['menu100'][] = array('100400', '부가서비스', G5_ADMIN_URL.'/service.php', 'cf_service');
+1 -2
View File
@@ -8,5 +8,4 @@ $menu['menu200'] = array (
array('200820', '접속자로그삭제', G5_ADMIN_URL.'/visit_delete.php', 'mb_delete', 1),
array('200200', '포인트관리', G5_ADMIN_URL.'/point_list.php', 'mb_point'),
array('200900', '투표관리', G5_ADMIN_URL.'/poll_list.php', 'mb_poll')
);
?>
);
+2 -2
View File
@@ -8,5 +8,5 @@ $menu['menu300'] = array (
array('300500', '1:1문의설정', ''.G5_ADMIN_URL.'/qa_config.php', 'qa'),
array('300600', '내용관리', G5_ADMIN_URL.'/contentlist.php', 'scf_contents', 1),
array('300700', 'FAQ관리', G5_ADMIN_URL.'/faqmasterlist.php', 'scf_faq', 1),
);
?>
array('300820', '글,댓글 현황', G5_ADMIN_URL.'/write_count.php', 'scf_write_count'),
);
+1 -3
View File
@@ -6,11 +6,9 @@ $menu["menu900"] = array (
array('900300', '문자 보내기', ''.G5_SMS5_ADMIN_URL.'/sms_write.php', 'sms_write'),
array('900400', '전송내역-건별', ''.G5_SMS5_ADMIN_URL.'/history_list.php', 'sms_history' , 1),
array('900410', '전송내역-번호별', ''.G5_SMS5_ADMIN_URL.'/history_num.php', 'sms_history_num' , 1),
array('900450', '전송내역-회원', ''.G5_SMS5_ADMIN_URL.'/history_member.php', 'sms_history_mb' , 1),
array('900500', '이모티콘 그룹', ''.G5_SMS5_ADMIN_URL.'/form_group.php' , 'emoticon_group'),
array('900600', '이모티콘 관리', ''.G5_SMS5_ADMIN_URL.'/form_list.php', 'emoticon_list'),
array('900700', '휴대폰번호 그룹', ''.G5_SMS5_ADMIN_URL.'/num_group.php' , 'hp_group', 1),
array('900800', '휴대폰번호 관리', ''.G5_SMS5_ADMIN_URL.'/num_book.php', 'hp_manage', 1),
array('900900', '휴대폰번호 파일', ''.G5_SMS5_ADMIN_URL.'/num_book_file.php' , 'hp_file', 1)
);
?>
);
+32 -9
View File
@@ -1,5 +1,7 @@
<?php
if (!defined('_GNUBOARD_')) exit;
$print_version = defined('G5_YOUNGCART_VER') ? 'YoungCart Version '.G5_YOUNGCART_VER : 'Version '.G5_GNUBOARD_VER;
?>
<noscript>
@@ -9,21 +11,43 @@ if (!defined('_GNUBOARD_')) exit;
</p>
</noscript>
</div>
<footer id="ft">
<p>
Copyright &copy; <?php echo $_SERVER['HTTP_HOST']; ?>. All rights reserved. <?php echo $print_version; ?><br>
<button type="button" class="scroll_top"><span class="top_img"></span><span class="top_txt">TOP</span></button>
</p>
</footer>
</div>
</div>
<footer id="ft">
<p>
Copyright &copy; <?php echo $_SERVER['HTTP_HOST']; ?>. All rights reserved.<br>
<a href="#">상단으로</a>
</p>
</footer>
<script>
$(".scroll_top").click(function(){
$("body,html").animate({scrollTop:0},400);
})
</script>
<!-- <p>실행시간 : <?php echo get_microtime() - $begin_time; ?> -->
<script src="<?php echo G5_ADMIN_URL ?>/admin.js"></script>
<script src="<?php echo G5_ADMIN_URL ?>/admin.js?ver=<?php echo G5_JS_VER; ?>"></script>
<script src="<?php echo G5_JS_URL ?>/jquery.anchorScroll.js?ver=<?php echo G5_JS_VER; ?>"></script>
<script>
$(function(){
var admin_head_height = $("#hd_top").height() + $("#container_title").height() + 5;
$("a[href^='#']").anchorScroll({
scrollSpeed: 0, // scroll speed
offsetTop: admin_head_height, // offset for fixed top bars (defaults to 0)
onScroll: function () {
// callback on scroll start
},
scrollEnd: function () {
// callback on scroll end
}
});
var hide_menu = false;
var mouse_event = false;
var oldX = oldY = 0;
@@ -126,5 +150,4 @@ function menu_rearrange(el)
</script>
<?php
include_once(G5_PATH.'/tail.sub.php');
?>
include_once(G5_PATH.'/tail.sub.php');
+13
View File
@@ -0,0 +1,13 @@
<?php
include_once('./_common.php');
include_once(G5_LIB_PATH.'/json.lib.php');
set_session('ss_admin_token', '');
$error = admin_referer_check(true);
if($error)
die(json_encode(array('error'=>$error, 'url'=>G5_URL)));
$token = get_admin_token();
die(json_encode(array('error'=>'', 'token'=>$token, 'url'=>'')));
+6
View File
@@ -0,0 +1,6 @@
<?php
include_once('./_common.php');
if( isset($_POST['admin_use_captcha']) ){
set_session('ss_admin_use_captcha', true);
}
+27 -12
View File
@@ -5,8 +5,6 @@ include_once('./_common.php');
if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.');
$token = get_token();
$sql_common = " from {$g5['auth_table']} a left join {$g5['member_table']} b on (a.mb_id=b.mb_id) ";
$sql_search = " where (1) ";
@@ -45,7 +43,7 @@ $sql = " select *
limit {$from_record}, {$rows} ";
$result = sql_query($sql);
$listall = '<a href="'.$_SERVER['PHP_SELF'].'" class="ov_listall">전체목록</a>';
$listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'" class="ov_listall btn_ov02">전체목록</a>';
$g5['title'] = "관리권한설정";
include_once('./admin.head.php');
@@ -55,7 +53,7 @@ $colspan = 5;
<div class="local_ov01 local_ov">
<?php echo $listall ?>
설정된 관리권한 <?php echo number_format($total_count) ?>건
<span class="btn_ov01"><span class="ov_txt">설정된 관리권한</span><span class="ov_num"><?php echo number_format($total_count) ?>건</span></span>
</div>
<form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get">
@@ -73,7 +71,7 @@ $colspan = 5;
<input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo $token ?>">
<input type="hidden" name="token" value="">
<div class="tbl_head01 tbl_wrap">
<table>
@@ -143,7 +141,7 @@ $colspan = 5;
</div>
<div class="btn_list01 btn_list">
<input type="submit" name="act_button" value="선택삭제" onclick="document.pressed=this.value">
<input type="submit" name="act_button" value="선택삭제" onclick="document.pressed=this.value" class="btn btn_02">
</div>
<?php
@@ -158,17 +156,17 @@ else
</form>
<?php
$pagelist = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, $_SERVER['PHP_SELF'].'?'.$qstr.'&amp;page=');
$pagelist = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, $_SERVER['SCRIPT_NAME'].'?'.$qstr.'&amp;page=');
echo $pagelist;
?>
<form name="fauthlist2" id="fauthlist2" action="./auth_update.php" method="post" autocomplete="off">
<form name="fauthlist2" id="fauthlist2" action="./auth_update.php" method="post" autocomplete="off" onsubmit="return fauth_add_submit(this);">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo $token ?>">
<input type="hidden" name="token" value="">
<section id="add_admin">
<h2 class="h2_frm">관리권한 추가</h2>
@@ -220,18 +218,36 @@ echo $pagelist;
<label for="d">d (삭제)</label>
</td>
</tr>
<tr>
<th scope="row">자동등록방지</th>
<td>
<?php
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php');
$captcha_html = captcha_html();
$captcha_js = chk_captcha_js();
echo $captcha_html;
?>
</td>
</tr>
</tbody>
</table>
</div>
<div class="btn_confirm01 btn_confirm">
<input type="submit" value="추가" class="btn_submit">
<input type="submit" value="추가" class="btn_submit btn">
</div>
</section>
</form>
<script>
function fauth_add_submit(f){
<?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?>
return true;
}
function fauthlist_submit(f)
{
if (!is_checked("chk[]")) {
@@ -250,5 +266,4 @@ function fauthlist_submit(f)
</script>
<?php
include_once ('./admin.tail.php');
?>
include_once ('./admin.tail.php');
+15 -6
View File
@@ -7,21 +7,30 @@ check_demo();
if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.');
check_token();
check_admin_token();
$count = count($_POST['chk']);
$count = (isset($_POST['chk']) && is_array($_POST['chk'])) ? count($_POST['chk']) : 0;
$post_act_button = isset($_POST['act_button']) ? clean_xss_tags($_POST['act_button'], 1, 1) : '';
if (!$count)
alert($_POST['act_button']." 하실 항목을 하나 이상 체크하세요.");
if ( (isset($_POST['mb_id']) && ! is_array($_POST['mb_id'])) || (isset($_POST['au_menu']) && ! is_array($_POST['au_menu'])) ){
alert("잘못된 요청입니다.");
}
for ($i=0; $i<$count; $i++)
{
// 실제 번호를 넘김
$k = $chk[$i];
$k = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0;
$mb_id = isset($_POST['mb_id'][$k]) ? preg_replace('/[^a-zA-Z0-9_]/', '', $_POST['mb_id'][$k]) : '';
$au_menu = isset($_POST['au_menu'][$k]) ? preg_replace('/[^a-zA-Z0-9_]/', '', $_POST['au_menu'][$k]) : '';
$sql = " delete from {$g5['auth_table']} where mb_id = '{$_POST['mb_id'][$k]}' and au_menu = '{$_POST['au_menu'][$k]}' ";
$sql = " delete from {$g5['auth_table']} where mb_id = '".$mb_id."' and au_menu = '".$au_menu."' ";
sql_query($sql);
run_event('adm_auth_delete_member', $mb_id, $au_menu);
}
goto_url('./auth_list.php?'.$qstr);
?>
goto_url('./auth_list.php?'.$qstr);
+32 -9
View File
@@ -1,6 +1,12 @@
<?php
$sub_menu = "100200";
include_once('./_common.php');
include_once(G5_LIB_PATH.'/mailer.lib.php');
$au_menu = isset($_POST['au_menu']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['au_menu']) : '';
$post_r = isset($_POST['r']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['r']) : '';
$post_w = isset($_POST['w']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['w']) : '';
$post_d = isset($_POST['d']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['d']) : '';
if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.');
@@ -9,22 +15,39 @@ $mb = get_member($mb_id);
if (!$mb['mb_id'])
alert('존재하는 회원아이디가 아닙니다.');
check_token();
check_admin_token();
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php');
if (!chk_captcha()) {
alert('자동등록방지 숫자가 틀렸습니다.');
}
$sql = " insert into {$g5['auth_table']}
set mb_id = '{$_POST['mb_id']}',
au_menu = '{$_POST['au_menu']}',
au_auth = '{$_POST['r']},{$_POST['w']},{$_POST['d']}' ";
set mb_id = '$mb_id',
au_menu = '$au_menu',
au_auth = '{$post_r},{$post_w},{$post_d}' ";
$result = sql_query($sql, FALSE);
if (!$result) {
$sql = " update {$g5['auth_table']}
set au_auth = '{$_POST['r']},{$_POST['w']},{$_POST['d']}'
where mb_id = '{$_POST['mb_id']}'
and au_menu = '{$_POST['au_menu']}' ";
set au_auth = '{$post_r},{$post_w},{$post_d}'
where mb_id = '$mb_id'
and au_menu = '$au_menu' ";
sql_query($sql);
}
//sql_query(" OPTIMIZE TABLE `$g5['auth_table']` ");
goto_url('./auth_list.php?'.$qstr);
?>
// 세션을 체크하여 하루에 한번만 메일알림이 가게 합니다.
if( str_replace('-', '', G5_TIME_YMD) !== get_session('adm_auth_update') ){
$site_url = preg_replace('/^www\./', '', strtolower($_SERVER['SERVER_NAME']));
$to_email = 'gnuboard@'.$site_url;
mailer($config['cf_admin_email_name'], $to_email, $config['cf_admin_email'], '['.$config['cf_title'].'] 관리권한설정 알림', '<p><b>['.$config['cf_title'].'] 관리권한설정 변경 안내</b></p><p style="padding-top:1em">회원 아이디 '.$mb['mb_id'].' 에 관리권한이 추가 되었습니다.</p><p style="padding-top:1em">'.G5_TIME_YMDHIS.'</p><p style="padding-top:1em"><a href="'.G5_URL.'" target="_blank">'.$config['cf_title'].'</a></p>', 1);
set_session('adm_auth_update', str_replace('-', '', G5_TIME_YMD));
}
run_event('adm_auth_update', $mb);
goto_url('./auth_list.php?'.$qstr);
+50 -35
View File
@@ -2,50 +2,53 @@
$sub_menu = "300100";
include_once("./_common.php");
auth_check($auth[$sub_menu], 'w');
auth_check_menu($auth, $sub_menu, 'w');
$g5['title'] = '게시판 복사';
include_once(G5_PATH.'/head.sub.php');
?>
<script src="<?php echo G5_ADMIN_URL ?>/admin.js?ver=<?php echo G5_JS_VER; ?>"></script>
<div class="new_win">
<h1><?php echo $g5['title']; ?></h1>
<form name="fboardcopy" id="fboardcopy" action="./board_copy_update.php" onsubmit="return fboardcopy_check(this);" method="post">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>" id="bo_table">
<div class="tbl_frm01 tbl_wrap">
<table>
<caption><?php echo $g5['title']; ?></caption>
<tbody>
<tr>
<th scope="col">원본 테이블명</th>
<td><?php echo $bo_table ?></td>
</tr>
<tr>
<th scope="col"><label for="target_table">복사 테이블명<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="target_table" id="target_table" required class="required alnum_ frm_input" maxlength="20">영문자, 숫자, _ 만 가능 (공백없이)</td>
</tr>
<tr>
<th scope="col"><label for="target_subject">게시판 제목<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="target_subject" value="[복사본] <?php echo $board['bo_subject'] ?>" id="target_subject" required class="required frm_input" maxlength="120"></td>
</tr>
<tr>
<th scope="col">복사 유형</th>
<td>
<input type="radio" name="copy_case" value="schema_only" id="copy_case" checked>
<label for="copy_case">구조만</label>
<input type="radio" name="copy_case" value="schema_data_both" id="copy_case2">
<label for="copy_case2">구조와 데이터</label>
</td>
</tr>
</tbody>
</table>
<input type="hidden" name="token" value="">
<div class=" new_win_con">
<div class="tbl_frm01 tbl_wrap">
<table>
<caption><?php echo $g5['title']; ?></caption>
<tbody>
<tr>
<th scope="col">원본 테이블명</th>
<td><?php echo $bo_table ?></td>
</tr>
<tr>
<th scope="col"><label for="target_table">복사 테이블명<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="target_table" id="target_table" required class="required alnum_ frm_input" maxlength="20">영문자, 숫자, _ 만 가능 (공백없이)</td>
</tr>
<tr>
<th scope="col"><label for="target_subject">게시판 제목<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="target_subject" value="[복사본] <?php echo get_sanitize_input($board['bo_subject']); ?>" id="target_subject" required class="required frm_input" maxlength="120"></td>
</tr>
<tr>
<th scope="col">복사 유형</th>
<td>
<input type="radio" name="copy_case" value="schema_only" id="copy_case" checked>
<label for="copy_case">구조만</label>
<input type="radio" name="copy_case" value="schema_data_both" id="copy_case2">
<label for="copy_case2">구조와 데이터</label>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="btn_confirm01 btn_confirm">
<input type="submit" class="btn_submit" value="복사">
<input type="button" class="btn_cancel" value="창닫기" onclick="window.close();">
<div class="win_btn ">
<input type="submit" class="btn_submit btn" value="복사">
<input type="button" class="btn_close btn" value="창닫기" onclick="window.close();">
</div>
</form>
@@ -55,6 +58,19 @@ include_once(G5_PATH.'/head.sub.php');
<script>
function fboardcopy_check(f)
{
<?php
if(!$w){
$js_array = get_bo_table_banned_word();
echo "var banned_array = ". json_encode($js_array) . ";\n";
}
?>
// 게시판명이 금지된 단어로 되어 있으면
if( (typeof banned_array != 'undefined') && jQuery.inArray(f.target_table.value, banned_array) !== -1 ){
alert("입력한 게시판 TABLE명을 사용할수 없습니다. 다른 이름으로 입력해 주세요.");
return false;
}
if (f.bo_table.value == f.target_table.value) {
alert("원본 테이블명과 복사할 테이블명이 달라야 합니다.");
return false;
@@ -66,5 +82,4 @@ function fboardcopy_check(f)
<?php
include_once(G5_PATH.'/tail.sub.php');
?>
include_once(G5_PATH.'/tail.sub.php');
+95 -73
View File
@@ -2,15 +2,26 @@
$sub_menu = '300100';
include_once('./_common.php');
auth_check($auth[$sub_menu], 'w');
check_demo();
$target_table = trim($_POST['target_table']);
$target_subject = trim($_POST['target_subject']);
auth_check_menu($auth, $sub_menu, 'w');
check_admin_token();
$target_table = isset($_POST['target_table']) ? trim($_POST['target_table']) : '';
$target_subject = isset($_POST['target_subject']) ? trim($_POST['target_subject']) : '';
$target_subject = strip_tags(clean_xss_attributes($target_subject));
if (!preg_match('/[A-Za-z0-9_]{1,20}/', $target_table)) {
alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)');
}
// 게시판명이 금지된 단어로 되어 있으면
if ( $w == '' && in_array($target_table, get_bo_table_banned_word()) ){
alert('입력한 게시판 TABLE명을 사용할수 없습니다. 다른 이름으로 입력해 주세요.');
}
$row = sql_fetch(" select count(*) as cnt from {$g5['board_table']} where bo_table = '$target_table' ");
if ($row['cnt'])
alert($target_table.'은(는) 이미 존재하는 게시판 테이블명 입니다.\\n복사할 테이블명으로 사용할 수 없습니다.');
@@ -34,42 +45,44 @@ $sql = " insert into {$g5['board_table']}
bo_subject = '$target_subject',
bo_device = '{$board['bo_device']}',
bo_admin = '{$board['bo_admin']}',
bo_list_level = '{$board[bo_list_level]}',
bo_read_level = '{$board[bo_read_level]}',
bo_write_level = '{$board[bo_write_level]}',
bo_reply_level = '{$board[bo_reply_level]}',
bo_comment_level = '{$board[bo_comment_level]}',
bo_upload_level = '{$board[bo_upload_level]}',
bo_download_level = '{$board[bo_download_level]}',
bo_html_level = '{$board[bo_html_level]}',
bo_link_level = '{$board[bo_link_level]}',
bo_count_modify = '{$board[bo_count_modify]}',
bo_count_delete = '{$board[bo_count_delete]}',
bo_read_point = '{$board[bo_read_point]}',
bo_write_point = '{$board[bo_write_point]}',
bo_comment_point = '{$board[bo_comment_point]}',
bo_download_point = '{$board[bo_download_point]}',
bo_use_category = '{$board[bo_use_category]}',
bo_list_level = '{$board['bo_list_level']}',
bo_read_level = '{$board['bo_read_level']}',
bo_write_level = '{$board['bo_write_level']}',
bo_reply_level = '{$board['bo_reply_level']}',
bo_comment_level = '{$board['bo_comment_level']}',
bo_upload_level = '{$board['bo_upload_level']}',
bo_download_level = '{$board['bo_download_level']}',
bo_html_level = '{$board['bo_html_level']}',
bo_link_level = '{$board['bo_link_level']}',
bo_count_modify = '{$board['bo_count_modify']}',
bo_count_delete = '{$board['bo_count_delete']}',
bo_read_point = '{$board['bo_read_point']}',
bo_write_point = '{$board['bo_write_point']}',
bo_comment_point = '{$board['bo_comment_point']}',
bo_download_point = '{$board['bo_download_point']}',
bo_use_category = '{$board['bo_use_category']}',
bo_category_list = '{$board['bo_category_list']}',
bo_use_sideview = '{$board[bo_use_sideview]}',
bo_use_file_content = '{$board[bo_use_file_content]}',
bo_use_secret = '{$board[bo_use_secret]}',
bo_use_dhtml_editor = '{$board[bo_use_dhtml_editor]}',
bo_use_rss_view = '{$board[bo_use_rss_view]}',
bo_use_good = '{$board[bo_use_good]}',
bo_use_nogood = '{$board[bo_use_nogood]}',
bo_use_signature = '{$board[bo_use_signature]}',
bo_use_ip_view = '{$board[bo_use_ip_view]}',
bo_use_sideview = '{$board['bo_use_sideview']}',
bo_use_file_content = '{$board['bo_use_file_content']}',
bo_use_secret = '{$board['bo_use_secret']}',
bo_use_dhtml_editor = '{$board['bo_use_dhtml_editor']}',
bo_use_rss_view = '{$board['bo_use_rss_view']}',
bo_use_good = '{$board['bo_use_good']}',
bo_use_nogood = '{$board['bo_use_nogood']}',
bo_use_name = '{$board['bo_use_name']}',
bo_use_signature = '{$board['bo_use_signature']}',
bo_use_ip_view = '{$board['bo_use_ip_view']}',
bo_use_list_view = '{$board['bo_use_list_view']}',
bo_use_list_content = '{$board[bo_use_list_content]}',
bo_table_width = '{$board[bo_table_width]}',
bo_subject_len = '{$board[bo_subject_len]}',
bo_mobile_subject_len = '{$board[bo_mobile_subject_len]}',
bo_page_rows = '{$board[bo_page_rows]}',
bo_mobile_page_rows = '{$board[bo_mobile_page_rows]}',
bo_new = '{$board[bo_new]}',
bo_hot = '{$board[bo_hot]}',
bo_image_width = '{$board[bo_image_width]}',
bo_use_list_content = '{$board['bo_use_list_content']}',
bo_use_list_file = '{$board['bo_use_list_file']}',
bo_table_width = '{$board['bo_table_width']}',
bo_subject_len = '{$board['bo_subject_len']}',
bo_mobile_subject_len = '{$board['bo_mobile_subject_len']}',
bo_page_rows = '{$board['bo_page_rows']}',
bo_mobile_page_rows = '{$board['bo_mobile_page_rows']}',
bo_new = '{$board['bo_new']}',
bo_hot = '{$board['bo_hot']}',
bo_image_width = '{$board['bo_image_width']}',
bo_skin = '{$board['bo_skin']}',
bo_mobile_skin = '{$board['bo_mobile_skin']}',
bo_include_head = '{$board['bo_include_head']}',
@@ -79,41 +92,42 @@ $sql = " insert into {$g5['board_table']}
bo_mobile_content_head = '".addslashes($board['bo_mobile_content_head'])."',
bo_mobile_content_tail = '".addslashes($board['bo_mobile_content_tail'])."',
bo_insert_content = '".addslashes($board['bo_insert_content'])."',
bo_gallery_cols = '{$board[bo_gallery_cols]}',
bo_gallery_width = '{$board[bo_gallery_width]}',
bo_gallery_height = '{$board[bo_gallery_height]}',
bo_mobile_gallery_width = '{$board[bo_mobile_gallery_width]}',
bo_mobile_gallery_height = '{$board[bo_mobile_gallery_height]}',
bo_upload_size = '{$board[bo_upload_size]}',
bo_reply_order = '{$board[bo_reply_order]}',
bo_use_search = '{$board[bo_use_search]}',
bo_order = '{$board[bo_order]}',
bo_gallery_cols = '{$board['bo_gallery_cols']}',
bo_gallery_width = '{$board['bo_gallery_width']}',
bo_gallery_height = '{$board['bo_gallery_height']}',
bo_mobile_gallery_width = '{$board['bo_mobile_gallery_width']}',
bo_mobile_gallery_height = '{$board['bo_mobile_gallery_height']}',
bo_upload_size = '{$board['bo_upload_size']}',
bo_reply_order = '{$board['bo_reply_order']}',
bo_use_search = '{$board['bo_use_search']}',
bo_order = '{$board['bo_order']}',
bo_notice = '{$board['bo_notice']}',
bo_upload_count = '{$board[bo_upload_count]}',
bo_use_email = '{$board[bo_use_email]}',
bo_use_cert = '{$board[bo_use_cert]}',
bo_use_sns = '{$board[bo_use_sns]}',
bo_upload_count = '{$board['bo_upload_count']}',
bo_use_email = '{$board['bo_use_email']}',
bo_use_cert = '{$board['bo_use_cert']}',
bo_use_sns = '{$board['bo_use_sns']}',
bo_use_captcha = '{$board['bo_use_captcha']}',
bo_sort_field = '{$board['bo_sort_field']}',
bo_1_subj = '{$board['bo_1_subj']}',
bo_2_subj = '{$board['bo_2_subj']}',
bo_3_subj = '{$board['bo_3_subj']}',
bo_4_subj = '{$board['bo_4_subj']}',
bo_5_subj = '{$board['bo_5_subj']}',
bo_6_subj = '{$board['bo_6_subj']}',
bo_7_subj = '{$board['bo_7_subj']}',
bo_8_subj = '{$board['bo_8_subj']}',
bo_9_subj = '{$board['bo_9_subj']}',
bo_10_subj = '{$board['bo_10_subj']}',
bo_1 = '{$board['bo_1']}',
bo_2 = '{$board['bo_2']}',
bo_3 = '{$board['bo_3']}',
bo_4 = '{$board['bo_4']}',
bo_5 = '{$board['bo_5']}',
bo_6 = '{$board['bo_6']}',
bo_7 = '{$board['bo_7']}',
bo_8 = '{$board['bo_8']}',
bo_9 = '{$board['bo_9']}',
bo_10 = '{$board['bo_10']}' ";
bo_1_subj = '".addslashes($board['bo_1_subj'])."',
bo_2_subj = '".addslashes($board['bo_2_subj'])."',
bo_3_subj = '".addslashes($board['bo_3_subj'])."',
bo_4_subj = '".addslashes($board['bo_4_subj'])."',
bo_5_subj = '".addslashes($board['bo_5_subj'])."',
bo_6_subj = '".addslashes($board['bo_6_subj'])."',
bo_7_subj = '".addslashes($board['bo_7_subj'])."',
bo_8_subj = '".addslashes($board['bo_8_subj'])."',
bo_9_subj = '".addslashes($board['bo_9_subj'])."',
bo_10_subj = '".addslashes($board['bo_10_subj'])."',
bo_1 = '".addslashes($board['bo_1'])."',
bo_2 = '".addslashes($board['bo_2'])."',
bo_3 = '".addslashes($board['bo_3'])."',
bo_4 = '".addslashes($board['bo_4'])."',
bo_5 = '".addslashes($board['bo_5'])."',
bo_6 = '".addslashes($board['bo_6'])."',
bo_7 = '".addslashes($board['bo_7'])."',
bo_8 = '".addslashes($board['bo_8'])."',
bo_9 = '".addslashes($board['bo_9'])."',
bo_10 = '".addslashes($board['bo_10'])."' ";
sql_query($sql, false);
// 게시판 폴더 생성
@@ -154,6 +168,8 @@ if ($copy_case == 'schema_data_both') {
}
}
$d->close();
run_event('admin_board_copy_file', $bo_table, $target_table);
// 글복사
$sql = " insert into {$g5['write_prefix']}$target_table select * from {$g5['write_prefix']}$bo_table ";
@@ -175,19 +191,26 @@ if ($copy_case == 'schema_data_both') {
if (count($file_copy)) {
for ($i=0; $i<count($file_copy); $i++) {
$file_copy[$i] = run_replace('admin_copy_update_file', $file_copy[$i], $file_copy[$i]['bf_file'], $bo_table, $target_table);
$sql = " insert into {$g5['board_file_table']}
set bo_table = '$target_table',
wr_id = '{$file_copy[$i]['wr_id']}',
bf_no = '{$file_copy[$i]['bf_no']}',
bf_source = '{$file_copy[$i]['bf_source']}',
bf_source = '".addslashes($file_copy[$i]['bf_source'])."',
bf_file = '{$file_copy[$i]['bf_file']}',
bf_download = '{$file_copy[$i]['bf_download']}',
bf_content = '{$file_copy[$i]['bf_content']}',
bf_content = '".addslashes($file_copy[$i]['bf_content'])."',
bf_fileurl = '".addslashes($file_copy[$i]['bf_fileurl'])."',
bf_thumburl = '".addslashes($file_copy[$i]['bf_thumburl'])."',
bf_storage = '".addslashes($file_copy[$i]['bf_storage'])."',
bf_filesize = '{$file_copy[$i]['bf_filesize']}',
bf_width = '{$file_copy[$i]['bf_width']}',
bf_height = '{$file_copy[$i]['bf_height']}',
bf_type = '{$file_copy[$i]['bf_type']}',
bf_datetime = '{$file_copy[$i]['bf_datetime']}' ";
sql_query($sql, false);
}
}
@@ -198,4 +221,3 @@ delete_cache_latest($target_table);
echo "<script>opener.document.location.reload();</script>";
alert("복사에 성공 했습니다.", './board_copy.php?bo_table='.$bo_table.'&amp;'.$qstr);
?>
+4 -6
View File
@@ -26,12 +26,10 @@ sql_query(" delete from {$g5['board_file_table']} where bo_table = '{$tmp_bo_tab
// 게시판 테이블 DROP
sql_query(" drop table {$g5['write_prefix']}{$tmp_bo_table} ", FALSE);
// 좋아요 테이블에서 기록 삭제
sql_query(" delete from {$g5['board_good_table']} where bo_table = '{$tmp_bo_table}' ");
delete_cache_latest($tmp_bo_table);
// 게시판 폴더 전체 삭제
rm_rf(G5_DATA_PATH.'/file/'.$tmp_bo_table);
// syndication ping
if(G5_SYNDI_USE)
include G5_SYNDI_PATH.'/include/include.adm.board_delete.inc.php';
?>
rm_rf(G5_DATA_PATH.'/file/'.$tmp_bo_table);
+260 -53
View File
@@ -3,7 +3,7 @@ $sub_menu = "300100";
include_once('./_common.php');
include_once(G5_EDITOR_LIB);
auth_check($auth[$sub_menu], 'w');
auth_check_menu($auth, $sub_menu, 'w');
$sql = " select count(*) as cnt from {$g5['group_table']} ";
$row = sql_fetch($sql);
@@ -11,6 +11,8 @@ if (!$row['cnt'])
alert('게시판그룹이 한개 이상 생성되어야 합니다.', './boardgroup_form.php');
$html_title = '게시판';
$reaonly = '';
$required_valid = '';
if (!isset($board['bo_device'])) {
// 게시판 사용 필드 추가
@@ -76,8 +78,70 @@ if (!isset($board['bo_mobile_subject'])) {
sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_mobile_subject` VARCHAR(255) NOT NULL DEFAULT '' AFTER `bo_subject` ", false);
}
if (!isset($board['bo_use_captcha'])) {
sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_use_captcha` TINYINT NOT NULL DEFAULT '0' AFTER `bo_use_sns` ", false);
}
if (!isset($board['bo_select_editor'])) {
sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_select_editor` VARCHAR(50) NOT NULL DEFAULT '' AFTER `bo_use_dhtml_editor` ", false);
}
$board_default = array(
'bo_mobile_subject'=>'',
'bo_device'=>'',
'bo_use_category'=>0,
'bo_category_list'=>'',
'bo_admin'=>'',
'bo_list_level'=>0,
'bo_read_level'=>0,
'bo_write_level'=>0,
'bo_reply_level'=>0,
'bo_comment_level'=>0,
'bo_link_level'=>0,
'bo_upload_level'=>0,
'bo_download_level'=>0,
'bo_html_level'=>0,
'bo_use_sideview'=>0,
'bo_select_editor'=>'',
'bo_use_rss_view'=>0,
'bo_use_good'=>0,
'bo_use_nogood'=>0,
'bo_use_name'=>0,
'bo_use_signature'=>0,
'bo_use_ip_view'=>0,
'bo_use_list_content'=>0,
'bo_use_list_file'=>0,
'bo_use_list_view'=>0,
'bo_use_email'=>0,
'bo_use_file_content'=>0,
'bo_use_cert'=>'',
'bo_write_min'=>0,
'bo_write_max'=>0,
'bo_comment_min'=>0,
'bo_comment_max'=>0,
'bo_use_sns'=>0,
'bo_order'=>0,
'bo_use_captcha'=>0,
'bo_content_head'=>'',
'bo_content_tail'=>'',
'bo_mobile_content_head'=>'',
'bo_mobile_content_tail'=>'',
'bo_insert_content'=>'',
'bo_sort_field'=>'',
);
for($i=0;$i<=10;$i++){
$board_default['bo_'.$i.'_subj'] = '';
$board_default['bo_'.$i] = '';
}
$board = array_merge($board_default, $board);
run_event('adm_board_form_before', $board, $w);
$required = "";
$readonly = "";
$sound_only = "";
if ($w == '') {
$html_title .= ' 생성';
@@ -94,8 +158,8 @@ if ($w == '') {
$board['bo_download_point'] = $config['cf_download_point'];
$board['bo_gallery_cols'] = 4;
$board['bo_gallery_width'] = 174;
$board['bo_gallery_height'] = 124;
$board['bo_gallery_width'] = 202;
$board['bo_gallery_height'] = 150;
$board['bo_mobile_gallery_width'] = 125;
$board['bo_mobile_gallery_height'] = 100;
$board['bo_table_width'] = 100;
@@ -150,14 +214,6 @@ $pg_anchor = '<ul class="anchor">
<li><a href="#anc_bo_extra">여분필드</a></li>
</ul>';
$frm_submit = '<div class="btn_confirm01 btn_confirm">
<input type="submit" value="확인" class="btn_submit" accesskey="s">
<a href="./board_list.php?'.$qstr.'">목록</a>'.PHP_EOL;
if ($w == 'u') $frm_submit .= ' <a href="./board_copy.php?bo_table='.$bo_table.'" id="board_copy" target="win_board_copy">게시판복사</a>
<a href="'.G5_BBS_URL.'/board.php?bo_table='.$board['bo_table'].'" class="btn_frmline">게시판 바로가기</a>
<a href="./board_thumbnail_delete.php?bo_table='.$board['bo_table'].'&amp;'.$qstr.'" onclick="return delete_confirm2(\'게시판 썸네일 파일을 삭제하시겠습니까?\');">게시판 썸네일 삭제</a>
'.PHP_EOL;
$frm_submit .= '</div>';
?>
<form name="fboardform" id="fboardform" action="./board_form_update.php" onsubmit="return fboardform_submit(this)" method="post" enctype="multipart/form-data">
@@ -167,6 +223,7 @@ $frm_submit .= '</div>';
<input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="">
<section id="anc_bo_basic">
<h2 class="h2_frm">게시판 기본 설정</h2>
@@ -184,12 +241,12 @@ $frm_submit .= '</div>';
<tr>
<th scope="row"><label for="bo_table">TABLE<?php echo $sound_only ?></label></th>
<td colspan="2">
<input type="text" name="bo_table" value="<?php echo $board['bo_table'] ?>" id="bo_table" <?php echo $required ?> <?php echo $readonly ?> class="frm_input <?php echo $reaonly ?> <?php echo $required ?> <?php echo $required_valid ?>" maxlength="20">
<input type="text" name="bo_table" value="<?php echo $board['bo_table'] ?>" id="bo_table" <?php echo $required ?> <?php echo $readonly ?> class="frm_input <?php echo $readonly ?> <?php echo $required ?> <?php echo $required_valid ?>" maxlength="20">
<?php if ($w == '') { ?>
영문자, 숫자, _ 만 가능 (공백없이 20자 이내)
<?php } else { ?>
<a href="<?php echo G5_BBS_URL ?>/board.php?bo_table=<?php echo $board['bo_table'] ?>" class="btn_frmline">게시판 바로가기</a>
<a href="./board_list.php" class="btn_frmline">목록으로</a>
<a href="<?php echo get_pretty_url($board['bo_table']) ?>" class="btn_frmline">게시판 바로가기</a>
<a href="./board_list.php?<?php echo $qstr;?>" class="btn_frmline">목록으로</a>
<?php } ?>
</td>
</tr>
@@ -197,7 +254,7 @@ $frm_submit .= '</div>';
<th scope="row"><label for="gr_id">그룹<strong class="sound_only">필수</strong></label></th>
<td colspan="2">
<?php echo get_group_select('gr_id', $board['gr_id'], 'required'); ?>
<?php if ($w=='u') { ?><a href="javascript:document.location.href='./board_list.php?sfl=a.gr_id&stx='+document.fboardform.gr_id.value;" class="btn_frmline">동일그룹 게시판목록</a><?php } ?></td>
<?php if ($w=='u') { ?><a href="javascript:document.location.href='./board_list.php?sfl=a.gr_id&stx='+document.fboardform.gr_id.value;" class="btn_frmline">동일그룹 게시판목록</a><?php } ?>
</td>
</tr>
<tr>
@@ -233,7 +290,7 @@ $frm_submit .= '</div>';
<tr>
<th scope="row"><label for="bo_category_list">분류</label></th>
<td>
<?php echo help('분류와 분류 사이는 | 로 구분하세요. (예: 질문|답변) 첫자로 #은 입력하지 마세요. (예: #질문|#답변 [X])') ?>
<?php echo help('분류와 분류 사이는 | 로 구분하세요. (예: 질문|답변) 첫자로 #은 입력하지 마세요. (예: #질문|#답변 [X])'."\n".'분류명에 일부 특수문자 ()/ 는 사용할수 없습니다.'); ?>
<input type="text" name="bo_category_list" value="<?php echo get_text($board['bo_category_list']) ?>" id="bo_category_list" class="frm_input" size="70">
<input type="checkbox" name="bo_use_category" value="1" id="bo_use_category" <?php echo $board['bo_use_category']?'checked':''; ?>>
<label for="bo_use_category">사용</label>
@@ -259,7 +316,7 @@ $frm_submit .= '</div>';
</div>
</section>
<?php echo $frm_submit; ?>
<section id="anc_bo_auth">
<h2 class="h2_frm">게시판 권한 설정</h2>
@@ -400,7 +457,7 @@ $frm_submit .= '</div>';
</div>
</section>
<?php echo $frm_submit; ?>
<section id="anc_bo_function">
<h2 class="h2_frm">게시판 기능 설정</h2>
@@ -484,6 +541,27 @@ $frm_submit .= '</div>';
<label for="chk_all_use_dhtml_editor">전체적용</label>
</td>
</tr>
<tr>
<th scope="row"><label for="bo_select_editor">게시판 에디터 선택</label></th>
<td>
<?php echo help('게시판에 사용할 에디터를 설정합니다. 스킨에 따라 적용되지 않을 수 있습니다.') ?>
<select name="bo_select_editor" id="bo_select_editor">
<?php
$arr = get_skin_dir('', G5_EDITOR_PATH);
for ($i=0; $i<count($arr); $i++) {
if ($i == 0) echo "<option value=\"\">기본환경설정의 에디터 사용</option>";
echo "<option value=\"".$arr[$i]."\"".get_selected($board['bo_select_editor'], $arr[$i]).">".$arr[$i]."</option>\n";
}
?>
</select>
</td>
<td class="td_grpset">
<input type="checkbox" name="chk_grp_select_editor" value="1" id="chk_grp_select_editor">
<label for="chk_grp_select_editor">그룹적용</label>
<input type="checkbox" name="chk_all_select_editor" value="1" id="chk_all_select_editor">
<label for="chk_all_select_editor">전체적용</label>
</td>
</tr>
<tr>
<th scope="row"><label for="bo_use_rss_view">RSS 보이기 사용</label></th>
<td>
@@ -708,7 +786,7 @@ $frm_submit .= '</div>';
<tr>
<th scope="row"><label for="bo_comment_min">최소 댓글수 제한</label></th>
<td>
<?php echo help('댓글 입력시 최소 글자수, 최대 글자수를 설정. 0을 입력하면 검사하지 않음') ?>
<?php echo help('댓글 입력시 최소 글자수를 설정. 0을 입력하면 검사하지 않음') ?>
<input type="text" name="bo_comment_min" value="<?php echo $board['bo_comment_min'] ?>" id="bo_comment_min" class="numeric frm_input" size="4">
</td>
<td class="td_grpset">
@@ -721,7 +799,7 @@ $frm_submit .= '</div>';
<tr>
<th scope="row"><label for="bo_comment_max">최대 댓글수 제한</label></th>
<td>
<?php echo help('댓글 입력시 최소 글자수, 최대 글자수를 설정. 0을 입력하면 검사하지 않음') ?>
<?php echo help('댓글 입력시 최대 글자수를 설정. 0을 입력하면 검사하지 않음') ?>
<input type="text" name="bo_comment_max" value="<?php echo $board['bo_comment_max'] ?>" id="bo_comment_max" class="numeric frm_input" size="4">
</td>
<td class="td_grpset">
@@ -771,12 +849,25 @@ $frm_submit .= '</div>';
<label for="chk_all_order">전체적용</label>
</td>
</tr>
<tr>
<th scope="row"><label for="bo_use_captcha">캡챠 사용</label></th>
<td>
<?php echo help("체크하면 글 작성시 캡챠를 무조건 사용합니다.( 회원 + 비회원 모두 )<br>미 체크하면 비회원에게만 캡챠를 사용합니다.") ?>
<input type="checkbox" name="bo_use_captcha" value="1" <?php echo $board['bo_use_captcha']?'checked':''; ?> id="bo_use_captcha">
사용
</td>
<td class="td_grpset">
<input type="checkbox" name="chk_grp_use_captcha" value="1" id="chk_grp_use_captcha">
<label for="chk_grp_use_captcha">그룹적용</label>
<input type="checkbox" name="chk_all_use_captcha" value="1" id="chk_all_use_captcha">
<label for="chk_all_use_captcha">전체적용</label>
</td>
</tr>
</tbody>
</table>
</div>
</section>
<?php echo $frm_submit; ?>
<section id="anc_bo_design">
<h2 class="h2_frm">게시판 디자인/양식</h2>
@@ -815,6 +906,7 @@ $frm_submit .= '</div>';
<label for="chk_all_mobile_skin">전체적용</label>
</td>
</tr>
<?php if ($is_admin === 'super'){ // 슈퍼관리자인 경우에만 수정 가능 ?>
<tr>
<th scope="row"><label for="bo_include_head">상단 파일 경로</label></th>
<td>
@@ -839,10 +931,26 @@ $frm_submit .= '</div>';
<label for="chk_all_include_tail">전체적용</label>
</td>
</tr>
<tr id="admin_captcha_box" style="display:none;">
<th scope="row">자동등록방지</th>
<td>
<?php
echo help("파일 경로를 입력 또는 수정시 캡챠를 반드시 입력해야 합니다.");
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php');
$captcha_html = captcha_html();
$captcha_js = chk_captcha_js();
echo $captcha_html;
?>
<script>
jQuery("#captcha_key").removeAttr("required").removeClass("required");
</script>
</td>
</tr>
<tr>
<th scope="row"><label for="bo_content_head">상단 내용</label></th>
<td>
<?php echo editor_html("bo_content_head", $board['bo_content_head']); ?>
<?php echo editor_html("bo_content_head", get_text(html_purifier($board['bo_content_head']), 0)); ?>
</td>
<td class="td_grpset">
<input type="checkbox" name="chk_grp_content_head" value="1" id="chk_grp_content_head">
@@ -854,7 +962,7 @@ $frm_submit .= '</div>';
<tr>
<th scope="row"><label for="bo_content_tail">하단 내용</label></th>
<td>
<?php echo editor_html("bo_content_tail", $board['bo_content_tail']); ?>
<?php echo editor_html("bo_content_tail", get_text(html_purifier($board['bo_content_tail']), 0)); ?>
</td>
<td class="td_grpset">
<input type="checkbox" name="chk_grp_content_tail" value="1" id="chk_grp_content_tail">
@@ -866,7 +974,7 @@ $frm_submit .= '</div>';
<tr>
<th scope="row"><label for="bo_mobile_content_head">모바일 상단 내용</label></th>
<td>
<?php echo editor_html("bo_mobile_content_head", $board['bo_mobile_content_head']); ?>
<?php echo editor_html("bo_mobile_content_head", get_text(html_purifier($board['bo_mobile_content_head']), 0)); ?>
</td>
<td class="td_grpset">
<input type="checkbox" name="chk_grp_mobile_content_head" value="1" id="chk_grp_mobile_content_head">
@@ -878,7 +986,7 @@ $frm_submit .= '</div>';
<tr>
<th scope="row"><label for="bo_mobile_content_tail">모바일 하단 내용</label></th>
<td>
<?php echo editor_html("bo_mobile_content_tail", $board['bo_mobile_content_tail']); ?>
<?php echo editor_html("bo_mobile_content_tail", get_text(html_purifier($board['bo_mobile_content_tail']), 0)); ?>
</td>
<td class="td_grpset">
<input type="checkbox" name="chk_grp_mobile_content_tail" value="1" id="chk_grp_mobile_content_tail">
@@ -887,10 +995,11 @@ $frm_submit .= '</div>';
<label for="chk_all_mobile_content_tail">전체적용</label>
</td>
</tr>
<?php } //end if $is_admin === 'super' ?>
<tr>
<th scope="row"><label for="bo_insert_content">글쓰기 기본 내용</label></th>
<td>
<textarea id="bo_insert_content" name="bo_insert_content" rows="5"><?php echo $board['bo_insert_content'] ?></textarea>
<textarea id="bo_insert_content" name="bo_insert_content" rows="5"><?php echo html_purifier($board['bo_insert_content']); ?></textarea>
</td>
<td class="td_grpset">
<input type="checkbox" name="chk_grp_insert_content" value="1" id="chk_grp_insert_content">
@@ -953,7 +1062,7 @@ $frm_submit .= '</div>';
<th scope="row"><label for="bo_gallery_cols">갤러리 이미지 수<strong class="sound_only">필수</strong></label></th>
<td>
<?php echo help('갤러리 형식의 게시판 목록에서 이미지를 한줄에 몇장씩 보여 줄 것인지를 설정하는 값') ?>
<input type="text" name="bo_gallery_cols" value="<?php echo $board['bo_gallery_cols'] ?>" id="bo_gallery_cols" required class="required numeric frm_input" size="4">
<?php echo get_member_level_select('bo_gallery_cols', 1, 10, $board['bo_gallery_cols']); ?>
</td>
<td class="td_grpset">
<input type="checkbox" name="chk_grp_gallery_cols" value="1" id="chk_grp_gallery_cols">
@@ -1086,25 +1195,23 @@ $frm_submit .= '</div>';
<td>
<?php echo help('리스트에서 기본으로 정렬에 사용할 필드를 선택합니다. "기본"으로 사용하지 않으시는 경우 속도가 느려질 수 있습니다.') ?>
<select id="bo_sort_field" name="bo_sort_field">
<option value="" <?php echo get_selected($board['bo_sort_field'], ""); ?>>wr_num, wr_reply : 기본</option>
<option value="wr_datetime asc" <?php echo get_selected($board['bo_sort_field'], "wr_datetime asc"); ?>>wr_datetime asc : 날짜 이전것 부터</option>
<option value="wr_datetime desc" <?php echo get_selected($board['bo_sort_field'], "wr_datetime desc"); ?>>wr_datetime desc : 날짜 최근것 부터</option>
<option value="wr_hit asc, wr_num, wr_reply" <?php echo get_selected($board['bo_sort_field'], "wr_hit asc, wr_num, wr_reply"); ?>>wr_hit asc : 조회수 낮은것 부터</option>
<option value="wr_hit desc, wr_num, wr_reply" <?php echo get_selected($board['bo_sort_field'], "wr_hit desc, wr_num, wr_reply"); ?>>wr_hit desc : 조회수 높은것 부터</option>
<option value="wr_last asc" <?php echo get_selected($board['bo_sort_field'], "wr_last asc"); ?>>wr_last asc : 최근글 이전것 부터</option>
<option value="wr_last desc" <?php echo get_selected($board['bo_sort_field'], "wr_last desc"); ?>>wr_last desc : 최근글 최근것 부터</option>
<option value="wr_comment asc, wr_num, wr_reply" <?php echo get_selected($board['bo_sort_field'], "wr_comment asc, wr_num, wr_reply"); ?>>wr_comment asc : 댓글수 낮은것 부터</option>
<option value="wr_comment desc, wr_num, wr_reply" <?php echo get_selected($board['bo_sort_field'], "wr_comment desc, wr_num, wr_reply"); ?>>wr_comment desc : 댓글수 높은것 부터</option>
<option value="wr_good asc, wr_num, wr_reply" <?php echo get_selected($board['bo_sort_field'], "wr_good asc, wr_num, wr_reply"); ?>>wr_good asc : 추천수 낮은것 부터</option>
<option value="wr_good desc, wr_num, wr_reply" <?php echo get_selected($board['bo_sort_field'], "wr_good desc, wr_num, wr_reply"); ?>>wr_good desc : 추천수 높은것 부터</option>
<option value="wr_nogood asc, wr_num, wr_reply" <?php echo get_selected($board['bo_sort_field'], "wr_nogood asc, wr_num, wr_reply"); ?>>wr_nogood asc : 비추천수 낮은것 부터</option>
<option value="wr_nogood desc, wr_num, wr_reply" <?php echo get_selected($board['bo_sort_field'], "wr_nogood desc, wr_num, wr_reply"); ?>>wr_nogood desc : 비추천수 높은것 부터</option>
<option value="wr_subject asc, wr_num, wr_reply" <?php echo get_selected($board['bo_sort_field'], "wr_subject asc, wr_num, wr_reply"); ?>>wr_subject asc : 제목 내림차순</option>
<option value="wr_subject desc, wr_num, wr_reply" <?php echo get_selected($board['bo_sort_field'], "wr_subject desc, wr_num, wr_reply"); ?>>wr_subject desc : 제목 오름차순</option>
<option value="wr_name asc, wr_num, wr_reply" <?php echo get_selected($board['bo_sort_field'], "wr_name asc, wr_num, wr_reply"); ?>>wr_name asc : 글쓴이 내림차순</option>
<option value="wr_name desc, wr_num, wr_reply" <?php echo get_selected($board['bo_sort_field'], "wr_name desc, wr_num, wr_reply"); ?>>wr_name desc : 글쓴이 오름차순</option>
<option value="ca_name asc, wr_num, wr_reply" <?php echo get_selected($board['bo_sort_field'], "ca_name asc, wr_num, wr_reply"); ?>>ca_name asc : 분류명 내림차순</option>
<option value="ca_name desc, wr_num, wr_reply" <?php echo get_selected($board['bo_sort_field'], "ca_name desc, wr_num, wr_reply"); ?>>ca_name desc : 분류명 오름차순</option>
<?php foreach( get_board_sort_fields($board) as $v ){
$option_value = $order_by_str = $v[0];
if( $v[0] === 'wr_num, wr_reply' ){
$selected = (! $board['bo_sort_field']) ? 'selected="selected"' : '';
$option_value = '';
} else {
$selected = ($board['bo_sort_field'] === $v[0]) ? 'selected="selected"' : '';
}
if( $order_by_str !== 'wr_num, wr_reply' ){
$tmp = explode(',', $v[0]);
$order_by_str = $tmp[0];
}
echo '<option value="'.$option_value.'" '.$selected.' >'.$order_by_str.' : '.$v[1].'</option>';
} //end foreach ?>
</select>
</td>
<td class="td_grpset">
@@ -1116,9 +1223,10 @@ $frm_submit .= '</div>';
</tbody>
</table>
</div>
<button type="button" class="get_theme_galc btn btn_02" >테마 이미지설정 가져오기</button>
</section>
<?php echo $frm_submit; ?>
<section id="anc_bo_point">
<h2 class="h2_frm">게시판 포인트 설정</h2>
@@ -1193,8 +1301,6 @@ $frm_submit .= '</div>';
</div>
</section>
<?php echo $frm_submit; ?>
<section id="anc_bo_extra">
<h2 class="h2_frm">게시판 여분필드 설정</h2>
<?php echo $pg_anchor ?>
@@ -1215,7 +1321,7 @@ $frm_submit .= '</div>';
<label for="bo_<?php echo $i ?>_subj">여분필드 <?php echo $i ?> 제목</label>
<input type="text" name="bo_<?php echo $i ?>_subj" id="bo_<?php echo $i ?>_subj" value="<?php echo get_text($board['bo_'.$i.'_subj']) ?>" class="frm_input">
<label for="bo_<?php echo $i ?>">여분필드 <?php echo $i ?> 값</label>
<input type="text" name="bo_<?php echo $i ?>" value="<?php echo get_text($board['bo_'.$i]) ?>" id="bo_<?php echo $i ?>" class="frm_input">
<input type="text" name="bo_<?php echo $i ?>" value="<?php echo get_text($board['bo_'.$i]) ?>" id="bo_<?php echo $i ?>" class="frm_input extra-value-input">
</td>
<td class="td_grpset">
<input type="checkbox" name="chk_grp_<?php echo $i ?>" value="1" id="chk_grp_<?php echo $i ?>">
@@ -1230,7 +1336,15 @@ $frm_submit .= '</div>';
</div>
</section>
<?php echo $frm_submit; ?>
<div class="btn_fixed_top">
<?php if( $bo_table && $w ){ ?>
<a href="./board_copy.php?bo_table=<?php echo $board['bo_table']; ?>" id="board_copy" target="win_board_copy" class=" btn_02 btn">게시판복사</a>
<a href="<?php echo get_pretty_url($board['bo_table']); ?>" class=" btn_02 btn">게시판 바로가기</a>
<a href="./board_thumbnail_delete.php?bo_table=<?php echo $board['bo_table'].'&amp;'.$qstr;?>" onclick="return delete_confirm2('게시판 썸네일 파일을 삭제하시겠습니까?');" class="btn_02 btn">게시판 썸네일 삭제</a>
<?php } ?>
<input type="submit" value="확인" class="btn_submi btn btn_01" accesskey="s">
</div>
</form>
@@ -1240,6 +1354,37 @@ $(function(){
window.open(this.href, "win_board_copy", "left=10,top=10,width=500,height=400");
return false;
});
$(".get_theme_galc").on("click", function() {
if(!confirm("현재 테마의 게시판 이미지 설정을 적용하시겠습니까?"))
return false;
$.ajax({
type: "POST",
url: "./theme_config_load.php",
cache: false,
async: false,
data: { type: "board" },
dataType: "json",
success: function(data) {
if(data.error) {
alert(data.error);
return false;
}
var field = Array('bo_gallery_cols', 'bo_gallery_width', 'bo_gallery_height', 'bo_mobile_gallery_width', 'bo_mobile_gallery_height', 'bo_image_width');
var count = field.length;
var key;
for(i=0; i<count; i++) {
key = field[i];
if(data[key] != undefined && data[key] != "")
$("input[name="+key+"]").val(data[key]);
}
}
});
});
});
function board_copy(bo_table) {
@@ -1260,8 +1405,67 @@ function set_point(f) {
}
}
var captcha_chk = false;
function use_captcha_check(){
$.ajax({
type: "POST",
url: g5_admin_url+"/ajax.use_captcha.php",
data: { admin_use_captcha: "1" },
cache: false,
async: false,
dataType: "json",
success: function(data) {
}
});
}
function frm_check_file(){
var bo_include_head = "<?php echo $board['bo_include_head']; ?>";
var bo_include_tail = "<?php echo $board['bo_include_tail']; ?>";
var head = jQuery.trim(jQuery("#bo_include_head").val());
var tail = jQuery.trim(jQuery("#bo_include_tail").val());
if(bo_include_head !== head || bo_include_tail !== tail){
// 캡챠를 사용합니다.
jQuery("#admin_captcha_box").show();
captcha_chk = true;
use_captcha_check();
return false;
} else {
jQuery("#admin_captcha_box").hide();
}
return true;
}
jQuery(function($){
if( window.self !== window.top ){ // frame 또는 iframe을 사용할 경우 체크
$("#bo_include_head, #bo_include_tail").on("change paste keyup", function(e) {
frm_check_file();
});
use_captcha_check();
}
});
function fboardform_submit(f)
{
<?php
if(!$w){
$js_array = get_bo_table_banned_word();
echo "var banned_array = ". json_encode($js_array) . ";\n";
}
?>
// 게시판명이 금지된 단어로 되어 있으면
if( (typeof banned_array != 'undefined') && jQuery.inArray(f.bo_table.value, banned_array) !== -1 ){
alert("입력한 게시판 TABLE명을 사용할수 없습니다. 다른 이름으로 입력해 주세요.");
return false;
}
<?php echo get_editor_js("bo_content_head"); ?>
<?php echo get_editor_js("bo_content_tail"); ?>
<?php echo get_editor_js("bo_mobile_content_head"); ?>
@@ -1279,10 +1483,13 @@ function fboardform_submit(f)
return false;
}
if( captcha_chk ) {
<?php echo isset($captcha_js) ? $captcha_js : ''; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?>
}
return true;
}
</script>
<?php
include_once ('./admin.tail.php');
?>
include_once ('./admin.tail.php');
+271 -129
View File
@@ -5,25 +5,66 @@ include_once('./_common.php');
if ($w == 'u')
check_demo();
auth_check($auth[$sub_menu], 'w');
auth_check_menu($auth, $sub_menu, 'w');
if (!$_POST['gr_id']) { alert('그룹 ID는 반드시 선택하세요.'); }
check_admin_token();
$gr_id = isset($_POST['gr_id']) ? preg_replace('/[^a-z0-9_]/i', '', $_POST['gr_id']) : '';
$bo_admin = isset($_POST['bo_admin']) ? preg_replace('/[^a-z0-9_\, \|\#]/i', '', $_POST['bo_admin']) : '';
$bo_subject = isset($_POST['bo_subject']) ? strip_tags(clean_xss_attributes($_POST['bo_subject'])) : '';
$bo_mobile_subject = isset($_POST['bo_mobile_subject']) ? strip_tags(clean_xss_attributes($_POST['bo_mobile_subject'])) : '';
if (!$gr_id) { alert('그룹 ID는 반드시 선택하세요.'); }
if (!$bo_table) { alert('게시판 TABLE명은 반드시 입력하세요.'); }
if (!preg_match("/^([A-Za-z0-9_]{1,20})$/", $bo_table)) { alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)'); }
if (!$_POST['bo_subject']) { alert('게시판 제목을 입력하세요.'); }
if (!$bo_subject) { alert('게시판 제목을 입력하세요.'); }
if ($file = $_POST['bo_include_head']) {
if (!preg_match("/\.(php|htm['l']?)$/i", $file)) {
alert('상단 파일 경로가 php, html 파일이 아닙니다.');
// 게시판명이 금지된 단어로 되어 있으면
if ( $w == '' && in_array($bo_table, get_bo_table_banned_word()) ){
alert('입력한 게시판 TABLE명을 사용할수 없습니다. 다른 이름으로 입력해 주세요.');
}
$bo_include_head = isset($_POST['bo_include_head']) ? preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($_POST['bo_include_head'], 0, 255)) : '';
$bo_include_tail = isset($_POST['bo_include_tail']) ? preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($_POST['bo_include_tail'], 0, 255)) : '';
// 관리자가 자동등록방지를 사용해야 할 경우
if ($board && ($board['bo_include_head'] !== $bo_include_head || $board['bo_include_tail'] !== $bo_include_tail) && function_exists('get_admin_captcha_by') && get_admin_captcha_by()){
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php');
if (!chk_captcha()) {
alert('자동등록방지 숫자가 틀렸습니다.');
}
}
if ($file = $_POST['bo_include_tail']) {
if (!preg_match("/\.(php|htm['l']?)$/i", $file)) {
alert('하단 파일 경로가 php, html 파일이 아닙니다.');
if ($file = $bo_include_head) {
$file_ext = pathinfo($file, PATHINFO_EXTENSION);
if( ! $file_ext || ! in_array($file_ext, array('php', 'htm', 'html')) || ! preg_match('/^.*\.(php|htm|html)$/i', $file) ) {
alert('상단 파일 경로의 확장자는 php, htm, html 만 허용합니다.');
}
}
if ($file = $bo_include_tail) {
$file_ext = pathinfo($file, PATHINFO_EXTENSION);
if( ! $file_ext || ! in_array($file_ext, array('php', 'htm', 'html')) || ! preg_match('/^.*\.(php|htm|html)$/i', $file) ) {
alert('하단 파일 경로의 확장자는 php, htm, html 만 허용합니다.');
}
}
if(!is_include_path_check($bo_include_head, 1)) {
alert('상단 파일 경로에 포함시킬수 없는 문자열이 있습니다.');
}
if(!is_include_path_check($bo_include_tail, 1)) {
alert('하단 파일 경로에 포함시킬수 없는 문자열이 있습니다.');
}
if( function_exists('filter_input_include_path') ){
$bo_include_head = filter_input_include_path($bo_include_head);
$bo_include_tail = filter_input_include_path($bo_include_tail);
}
$board_path = G5_DATA_PATH.'/file/'.$bo_table;
// 게시판 디렉토리 생성
@@ -32,106 +73,191 @@ $board_path = G5_DATA_PATH.'/file/'.$bo_table;
// 디렉토리에 있는 파일의 목록을 보이지 않게 한다.
$file = $board_path . '/index.php';
$f = @fopen($file, 'w');
@fwrite($f, '');
@fclose($f);
@chmod($file, G5_FILE_PERMISSION);
if( $f = @fopen($file, 'w') ){
@fwrite($f, '');
@fclose($f);
@chmod($file, G5_FILE_PERMISSION);
}
// 분류에 & 나 = 는 사용이 불가하므로 2바이트로 바꾼다.
$src_char = array('&', '=');
$dst_char = array('&', '〓');
$bo_category_list = str_replace($src_char, $dst_char, $bo_category_list);
$bo_category_list = isset($_POST['bo_category_list']) ? str_replace($src_char, $dst_char, $_POST['bo_category_list']) : '';
//https://github.com/gnuboard/gnuboard5/commit/f5f4925d4eb28ba1af728e1065fc2bdd9ce1da58 에 따른 조치
$str_bo_category_list = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\/\^\*]/", "", $bo_category_list);
$sql_common = " gr_id = '{$_POST['gr_id']}',
bo_subject = '{$_POST['bo_subject']}',
bo_mobile_subject = '{$_POST['bo_mobile_subject']}',
bo_device = '{$_POST['bo_device']}',
bo_admin = '{$_POST['bo_admin']}',
bo_list_level = '{$_POST['bo_list_level']}',
bo_read_level = '{$_POST['bo_read_level']}',
bo_write_level = '{$_POST['bo_write_level']}',
bo_reply_level = '{$_POST['bo_reply_level']}',
bo_comment_level = '{$_POST['bo_comment_level']}',
bo_html_level = '{$_POST['bo_html_level']}',
bo_link_level = '{$_POST['bo_link_level']}',
bo_count_modify = '{$_POST['bo_count_modify']}',
bo_count_delete = '{$_POST['bo_count_delete']}',
bo_upload_level = '{$_POST['bo_upload_level']}',
bo_download_level = '{$_POST['bo_download_level']}',
bo_read_point = '{$_POST['bo_read_point']}',
bo_write_point = '{$_POST['bo_write_point']}',
bo_comment_point = '{$_POST['bo_comment_point']}',
bo_download_point = '{$_POST['bo_download_point']}',
bo_use_category = '{$_POST['bo_use_category']}',
bo_category_list = '{$_POST['bo_category_list']}',
bo_use_sideview = '{$_POST['bo_use_sideview']}',
bo_use_file_content = '{$_POST['bo_use_file_content']}',
bo_use_secret = '{$_POST['bo_use_secret']}',
bo_use_dhtml_editor = '{$_POST['bo_use_dhtml_editor']}',
bo_use_rss_view = '{$_POST['bo_use_rss_view']}',
bo_use_good = '{$_POST['bo_use_good']}',
bo_use_nogood = '{$_POST['bo_use_nogood']}',
bo_use_name = '{$_POST['bo_use_name']}',
bo_use_signature = '{$_POST['bo_use_signature']}',
bo_use_ip_view = '{$_POST['bo_use_ip_view']}',
bo_use_list_view = '{$_POST['bo_use_list_view']}',
bo_use_list_file = '{$_POST['bo_use_list_file']}',
bo_use_list_content = '{$_POST['bo_use_list_content']}',
bo_use_email = '{$_POST['bo_use_email']}',
bo_use_cert = '{$_POST['bo_use_cert']}',
bo_use_sns = '{$_POST['bo_use_sns']}',
bo_table_width = '{$_POST['bo_table_width']}',
bo_subject_len = '{$_POST['bo_subject_len']}',
bo_mobile_subject_len = '{$_POST['bo_mobile_subject_len']}',
bo_page_rows = '{$_POST['bo_page_rows']}',
bo_mobile_page_rows = '{$_POST['bo_mobile_page_rows']}',
bo_new = '{$_POST['bo_new']}',
bo_hot = '{$_POST['bo_hot']}',
bo_image_width = '{$_POST['bo_image_width']}',
bo_skin = '{$_POST['bo_skin']}',
bo_mobile_skin = '{$_POST['bo_mobile_skin']}',
bo_include_head = '{$_POST['bo_include_head']}',
bo_include_tail = '{$_POST['bo_include_tail']}',
bo_content_head = '{$_POST['bo_content_head']}',
bo_content_tail = '{$_POST['bo_content_tail']}',
bo_mobile_content_head = '{$_POST['bo_mobile_content_head']}',
bo_mobile_content_tail = '{$_POST['bo_mobile_content_tail']}',
bo_insert_content = '{$_POST['bo_insert_content']}',
bo_gallery_cols = '{$_POST['bo_gallery_cols']}',
bo_gallery_width = '{$_POST['bo_gallery_width']}',
bo_gallery_height = '{$_POST['bo_gallery_height']}',
bo_mobile_gallery_width = '{$_POST['bo_mobile_gallery_width']}',
bo_mobile_gallery_height= '{$_POST['bo_mobile_gallery_height']}',
bo_upload_count = '{$_POST['bo_upload_count']}',
bo_upload_size = '{$_POST['bo_upload_size']}',
bo_reply_order = '{$_POST['bo_reply_order']}',
bo_use_search = '{$_POST['bo_use_search']}',
bo_order = '{$_POST['bo_order']}',
bo_write_min = '{$_POST['bo_write_min']}',
bo_write_max = '{$_POST['bo_write_max']}',
bo_comment_min = '{$_POST['bo_comment_min']}',
bo_comment_max = '{$_POST['bo_comment_max']}',
bo_sort_field = '{$_POST['bo_sort_field']}',
bo_1_subj = '{$_POST['bo_1_subj']}',
bo_2_subj = '{$_POST['bo_2_subj']}',
bo_3_subj = '{$_POST['bo_3_subj']}',
bo_4_subj = '{$_POST['bo_4_subj']}',
bo_5_subj = '{$_POST['bo_5_subj']}',
bo_6_subj = '{$_POST['bo_6_subj']}',
bo_7_subj = '{$_POST['bo_7_subj']}',
bo_8_subj = '{$_POST['bo_8_subj']}',
bo_9_subj = '{$_POST['bo_9_subj']}',
bo_10_subj = '{$_POST['bo_10_subj']}',
bo_1 = '{$_POST['bo_1']}',
bo_2 = '{$_POST['bo_2']}',
bo_3 = '{$_POST['bo_3']}',
bo_4 = '{$_POST['bo_4']}',
bo_5 = '{$_POST['bo_5']}',
bo_6 = '{$_POST['bo_6']}',
bo_7 = '{$_POST['bo_7']}',
bo_8 = '{$_POST['bo_8']}',
bo_9 = '{$_POST['bo_9']}',
bo_10 = '{$_POST['bo_10']}' ";
$bo_use_category = isset($_POST['bo_use_category']) ? (int) $_POST['bo_use_category'] : 0;
$bo_use_sideview = isset($_POST['bo_use_sideview']) ? (int) $_POST['bo_use_sideview'] : 0;
$bo_use_dhtml_editor = isset($_POST['bo_use_dhtml_editor']) ? (int) $_POST['bo_use_dhtml_editor'] : 0;
$bo_use_good = isset($_POST['bo_use_good']) ? (int) $_POST['bo_use_good'] : 0;
$bo_use_nogood = isset($_POST['bo_use_nogood']) ? (int) $_POST['bo_use_nogood'] : 0;
$bo_use_name = isset($_POST['bo_use_name']) ? (int) $_POST['bo_use_name'] : 0;
$bo_use_signature = isset($_POST['bo_use_signature']) ? (int) $_POST['bo_use_signature'] : 0;
$bo_use_ip_view = isset($_POST['bo_use_ip_view']) ? (int) $_POST['bo_use_ip_view'] : 0;
$bo_use_list_view = isset($_POST['bo_use_list_view']) ? (int) $_POST['bo_use_list_view'] : 0;
$bo_use_list_file = isset($_POST['bo_use_list_file']) ? (int) $_POST['bo_use_list_file'] : 0;
$bo_use_list_content = isset($_POST['bo_use_list_content']) ? (int) $_POST['bo_use_list_content'] : 0;
$bo_use_email = isset($_POST['bo_use_email']) ? (int) $_POST['bo_use_email'] : 0;
$bo_use_sns = isset($_POST['bo_use_sns']) ? (int) $_POST['bo_use_sns'] : 0;
$bo_use_captcha = isset($_POST['bo_use_captcha']) ? (int) $_POST['bo_use_captcha'] : 0;
$bo_table_width = isset($_POST['bo_table_width']) ? (int) $_POST['bo_table_width'] : 0;
$bo_subject_len = isset($_POST['bo_subject_len']) ? (int) $_POST['bo_subject_len'] : 0;
$bo_mobile_subject_len = isset($_POST['bo_mobile_subject_len']) ? (int) $_POST['bo_mobile_subject_len'] : 0;
$bo_page_rows = isset($_POST['bo_page_rows']) ? (int) $_POST['bo_page_rows'] : 0;
$bo_mobile_page_rows = isset($_POST['bo_mobile_page_rows']) ? (int) $_POST['bo_mobile_page_rows'] : 0;
$bo_use_rss_view = isset($_POST['bo_use_rss_view']) ? (int) $_POST['bo_use_rss_view'] : 0;
$bo_use_secret = isset($_POST['bo_use_secret']) ? (int) $_POST['bo_use_secret'] : 0;
$bo_use_file_content = isset($_POST['bo_use_file_content']) ? (int) $_POST['bo_use_file_content'] : 0;
$bo_new = isset($_POST['bo_new']) ? (int) $_POST['bo_new'] : 0;
$bo_hot = isset($_POST['bo_hot']) ? (int) $_POST['bo_hot'] : 0;
$bo_image_width = isset($_POST['bo_image_width']) ? (int) $_POST['bo_image_width'] : 0;
$bo_use_search = isset($_POST['bo_use_search']) ? (int) $_POST['bo_use_search'] : 0;
$bo_use_cert = isset($_POST['bo_use_cert']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['bo_use_cert']) : '';
$bo_device = isset($_POST['bo_device']) ? clean_xss_tags($_POST['bo_device'], 1, 1) : '';
$bo_list_level = isset($_POST['bo_list_level']) ? (int) $_POST['bo_list_level'] : 0;
$bo_read_level = isset($_POST['bo_read_level']) ? (int) $_POST['bo_read_level'] : 0;
$bo_write_level = isset($_POST['bo_write_level']) ? (int) $_POST['bo_write_level'] : 0;
$bo_reply_level = isset($_POST['bo_reply_level']) ? (int) $_POST['bo_reply_level'] : 0;
$bo_comment_level = isset($_POST['bo_comment_level']) ? (int) $_POST['bo_comment_level'] : 0;
$bo_html_level = isset($_POST['bo_html_level']) ? (int) $_POST['bo_html_level'] : 0;
$bo_link_level = isset($_POST['bo_link_level']) ? (int) $_POST['bo_link_level'] : 0;
$bo_count_modify = isset($_POST['bo_count_modify']) ? (int) $_POST['bo_count_modify'] : 0;
$bo_count_delete = isset($_POST['bo_count_delete']) ? (int) $_POST['bo_count_delete'] : 0;
$bo_upload_level = isset($_POST['bo_upload_level']) ? (int) $_POST['bo_upload_level'] : 0;
$bo_download_level = isset($_POST['bo_download_level']) ? (int) $_POST['bo_download_level'] : 0;
$bo_read_point = isset($_POST['bo_read_point']) ? (int) $_POST['bo_read_point'] : 0;
$bo_write_point = isset($_POST['bo_write_point']) ? (int) $_POST['bo_write_point'] : 0;
$bo_comment_point = isset($_POST['bo_comment_point']) ? (int) $_POST['bo_comment_point'] : 0;
$bo_download_point = isset($_POST['bo_download_point']) ? (int) $_POST['bo_download_point'] : 0;
$bo_select_editor = isset($_POST['bo_select_editor']) ? clean_xss_tags($_POST['bo_select_editor'], 1, 1) : '';
$bo_skin = isset($_POST['bo_skin']) ? clean_xss_tags($_POST['bo_skin'], 1, 1) : '';
$bo_mobile_skin = isset($_POST['bo_mobile_skin']) ? clean_xss_tags($_POST['bo_mobile_skin'], 1, 1) : '';
$bo_content_head = isset($_POST['bo_content_head']) ? $_POST['bo_content_head'] : '';
$bo_content_tail = isset($_POST['bo_content_tail']) ? $_POST['bo_content_tail'] : '';
$bo_mobile_content_head = isset($_POST['bo_mobile_content_head']) ? $_POST['bo_mobile_content_head'] : '';
$bo_mobile_content_tail = isset($_POST['bo_mobile_content_tail']) ? $_POST['bo_mobile_content_tail'] : '';
$bo_insert_content = isset($_POST['bo_insert_content']) ? $_POST['bo_insert_content'] : '';
$bo_gallery_cols = isset($_POST['bo_gallery_cols']) ? (int) $_POST['bo_gallery_cols'] : 0;
$bo_gallery_width = isset($_POST['bo_gallery_width']) ? (int) $_POST['bo_gallery_width'] : 0;
$bo_gallery_height = isset($_POST['bo_gallery_height']) ? (int) $_POST['bo_gallery_height'] : 0;
$bo_mobile_gallery_width = isset($_POST['bo_mobile_gallery_width']) ? (int) $_POST['bo_mobile_gallery_width'] : 0;
$bo_mobile_gallery_height = isset($_POST['bo_mobile_gallery_height']) ? (int) $_POST['bo_mobile_gallery_height'] : 0;
$bo_upload_count = isset($_POST['bo_upload_count']) ? (int) $_POST['bo_upload_count'] : 0;
$bo_upload_size = isset($_POST['bo_upload_size']) ? (int) $_POST['bo_upload_size'] : 0;
$bo_reply_order = isset($_POST['bo_reply_order']) ? (int) $_POST['bo_reply_order'] : 0;
$bo_order = isset($_POST['bo_order']) ? (int) $_POST['bo_order'] : 0;
$bo_write_min = isset($_POST['bo_write_min']) ? (int) $_POST['bo_write_min'] : 0;
$bo_write_max = isset($_POST['bo_write_max']) ? (int) $_POST['bo_write_max'] : 0;
$bo_comment_min = isset($_POST['bo_comment_min']) ? (int) $_POST['bo_comment_min'] : 0;
$bo_comment_max = isset($_POST['bo_comment_max']) ? (int) $_POST['bo_comment_max'] : 0;
$bo_sort_field = isset($_POST['bo_sort_field']) ? clean_xss_tags($_POST['bo_sort_field'], 1, 1) : '';
$etcs = array();
for($i=1;$i<=10;$i++){
$etcs['bo_'.$i.'_subj'] = ${'bo_'.$i.'_subj'} = isset($_POST['bo_'.$i.'_subj']) ? $_POST['bo_'.$i.'_subj'] : '';
$etcs['bo_'.$i] = ${'bo_'.$i} = isset($_POST['bo_'.$i]) ? $_POST['bo_'.$i] : '';
}
$sql_common = " gr_id = '{$gr_id}',
bo_subject = '{$bo_subject}',
bo_mobile_subject = '{$bo_mobile_subject}',
bo_device = '{$bo_device}',
bo_admin = '{$bo_admin}',
bo_list_level = '{$bo_list_level}',
bo_read_level = '{$bo_read_level}',
bo_write_level = '{$bo_write_level}',
bo_reply_level = '{$bo_reply_level}',
bo_comment_level = '{$bo_comment_level}',
bo_html_level = '{$bo_html_level}',
bo_link_level = '{$bo_link_level}',
bo_count_modify = '{$bo_count_modify}',
bo_count_delete = '{$bo_count_delete}',
bo_upload_level = '{$bo_upload_level}',
bo_download_level = '{$bo_download_level}',
bo_read_point = '{$bo_read_point}',
bo_write_point = '{$bo_write_point}',
bo_comment_point = '{$bo_comment_point}',
bo_download_point = '{$bo_download_point}',
bo_use_category = '{$bo_use_category}',
bo_category_list = '{$str_bo_category_list}',
bo_use_sideview = '{$bo_use_sideview}',
bo_use_file_content = '{$bo_use_file_content}',
bo_use_secret = '{$bo_use_secret}',
bo_use_dhtml_editor = '{$bo_use_dhtml_editor}',
bo_select_editor = '{$bo_select_editor}',
bo_use_rss_view = '{$bo_use_rss_view}',
bo_use_good = '{$bo_use_good}',
bo_use_nogood = '{$bo_use_nogood}',
bo_use_name = '{$bo_use_name}',
bo_use_signature = '{$bo_use_signature}',
bo_use_ip_view = '{$bo_use_ip_view}',
bo_use_list_view = '{$bo_use_list_view}',
bo_use_list_file = '{$bo_use_list_file}',
bo_use_list_content = '{$bo_use_list_content}',
bo_use_email = '{$bo_use_email}',
bo_use_cert = '{$bo_use_cert}',
bo_use_sns = '{$bo_use_sns}',
bo_use_captcha = '{$bo_use_captcha}',
bo_table_width = '{$bo_table_width}',
bo_subject_len = '{$bo_subject_len}',
bo_mobile_subject_len = '{$bo_mobile_subject_len}',
bo_page_rows = '{$bo_page_rows}',
bo_mobile_page_rows = '{$bo_mobile_page_rows}',
bo_new = '{$bo_new}',
bo_hot = '{$bo_hot}',
bo_image_width = '{$bo_image_width}',
bo_skin = '{$bo_skin}',
bo_mobile_skin = '{$bo_mobile_skin}',
";
// 최고 관리자인 경우에만 수정가능
if ($is_admin === 'super'){
$sql_common .= " bo_include_head = '".$bo_include_head."',
bo_include_tail = '".$bo_include_tail."',
bo_content_head = '{$bo_content_head}',
bo_content_tail = '{$bo_content_tail}',
bo_mobile_content_head = '{$bo_mobile_content_head}',
bo_mobile_content_tail = '{$bo_mobile_content_tail}',
";
}
$sql_common .= " bo_insert_content = '{$bo_insert_content}',
bo_gallery_cols = '{$bo_gallery_cols}',
bo_gallery_width = '{$bo_gallery_width}',
bo_gallery_height = '{$bo_gallery_height}',
bo_mobile_gallery_width = '{$bo_mobile_gallery_width}',
bo_mobile_gallery_height= '{$bo_mobile_gallery_height}',
bo_upload_count = '{$bo_upload_count}',
bo_upload_size = '{$bo_upload_size}',
bo_reply_order = '{$bo_reply_order}',
bo_use_search = '{$bo_use_search}',
bo_order = '{$bo_order}',
bo_write_min = '{$bo_write_min}',
bo_write_max = '{$bo_write_max}',
bo_comment_min = '{$bo_comment_min}',
bo_comment_max = '{$bo_comment_max}',
bo_sort_field = '{$bo_sort_field}',
bo_1_subj = '{$bo_1_subj}',
bo_2_subj = '{$bo_2_subj}',
bo_3_subj = '{$bo_3_subj}',
bo_4_subj = '{$bo_4_subj}',
bo_5_subj = '{$bo_5_subj}',
bo_6_subj = '{$bo_6_subj}',
bo_7_subj = '{$bo_7_subj}',
bo_8_subj = '{$bo_8_subj}',
bo_9_subj = '{$bo_9_subj}',
bo_10_subj = '{$bo_10_subj}',
bo_1 = '{$bo_1}',
bo_2 = '{$bo_2}',
bo_3 = '{$bo_3}',
bo_4 = '{$bo_4}',
bo_5 = '{$bo_5}',
bo_6 = '{$bo_6}',
bo_7 = '{$bo_7}',
bo_8 = '{$bo_8}',
bo_9 = '{$bo_9}',
bo_10 = '{$bo_10}' ";
if ($w == '') {
@@ -148,7 +274,9 @@ if ($w == '') {
// 게시판 테이블 생성
$file = file('./sql_write.sql');
$sql = implode($file, "\n");
$file = get_db_create_replace($file);
$sql = implode("\n", $file);
$create_table = $g5['write_prefix'] . $bo_table;
@@ -173,7 +301,7 @@ if ($w == '') {
// 글수 조정
/*
엔피씨님의 팁으로 교체합니다. 130308
http://sir.co.kr/bbs/board.php?bo_table=g5_tiptech&wr_id=27207
http://sir.kr/g5_tiptech/27207
*/
if (isset($_POST['proc_count'])) {
// 원글을 얻습니다.
@@ -238,13 +366,14 @@ if (is_checked('chk_grp_write_point')) $grp_fields .= " , bo_write_poin
if (is_checked('chk_grp_comment_point')) $grp_fields .= " , bo_comment_point = '{$bo_comment_point}' ";
if (is_checked('chk_grp_download_point')) $grp_fields .= " , bo_download_point = '{$bo_download_point}' ";
if (is_checked('chk_grp_category_list')) {
$grp_fields .= " , bo_category_list = '{$bo_category_list}' ";
$grp_fields .= " , bo_category_list = '{$str_bo_category_list}' ";
$grp_fields .= " , bo_use_category = '{$bo_use_category}' ";
}
if (is_checked('chk_grp_use_sideview')) $grp_fields .= " , bo_use_sideview = '{$bo_use_sideview}' ";
if (is_checked('chk_grp_use_file_content')) $grp_fields .= " , bo_use_file_content = '{$bo_use_file_content}' ";
if (is_checked('chk_grp_use_secret')) $grp_fields .= " , bo_use_secret = '{$bo_use_secret}' ";
if (is_checked('chk_grp_use_dhtml_editor')) $grp_fields .= " , bo_use_dhtml_editor = '{$bo_use_dhtml_editor}' ";
if (is_checked('chk_grp_select_editor')) $grp_fields .= " , bo_select_editor = '{$bo_select_editor}' ";
if (is_checked('chk_grp_use_rss_view')) $grp_fields .= " , bo_use_rss_view = '{$bo_use_rss_view}' ";
if (is_checked('chk_grp_use_good')) $grp_fields .= " , bo_use_good = '{$bo_use_good}' ";
if (is_checked('chk_grp_use_nogood')) $grp_fields .= " , bo_use_nogood = '{$bo_use_nogood}' ";
@@ -257,6 +386,7 @@ if (is_checked('chk_grp_use_list_content')) $grp_fields .= " , bo_use_list_c
if (is_checked('chk_grp_use_email')) $grp_fields .= " , bo_use_email = '{$bo_use_email}' ";
if (is_checked('chk_grp_use_cert')) $grp_fields .= " , bo_use_cert = '{$bo_use_cert}' ";
if (is_checked('chk_grp_use_sns')) $grp_fields .= " , bo_use_sns = '{$bo_use_sns}' ";
if (is_checked('chk_grp_use_captcha')) $grp_fields .= " , bo_use_captcha = '{$bo_use_captcha}' ";
if (is_checked('chk_grp_skin')) $grp_fields .= " , bo_skin = '{$bo_skin}' ";
if (is_checked('chk_grp_mobile_skin')) $grp_fields .= " , bo_mobile_skin = '{$bo_mobile_skin}' ";
if (is_checked('chk_grp_gallery_cols')) $grp_fields .= " , bo_gallery_cols = '{$bo_gallery_cols}' ";
@@ -280,19 +410,24 @@ if (is_checked('chk_grp_comment_min')) $grp_fields .= " , bo_comment_mi
if (is_checked('chk_grp_comment_max')) $grp_fields .= " , bo_comment_max = '{$bo_comment_max}' ";
if (is_checked('chk_grp_upload_count')) $grp_fields .= " , bo_upload_count = '{$bo_upload_count}' ";
if (is_checked('chk_grp_upload_size')) $grp_fields .= " , bo_upload_size = '{$bo_upload_size}' ";
if (is_checked('chk_grp_include_head')) $grp_fields .= " , bo_include_head = '{$bo_include_head}' ";
if (is_checked('chk_grp_include_tail')) $grp_fields .= " , bo_include_tail = '{$bo_include_tail}' ";
if (is_checked('chk_grp_content_head')) $grp_fields .= " , bo_content_head = '{$bo_content_head}' ";
if (is_checked('chk_grp_content_tail')) $grp_fields .= " , bo_content_tail = '{$bo_content_tail}' ";
if (is_checked('chk_grp_mobile_content_head')) $grp_fields .= " , bo_mobile_content_head = '{$bo_mobile_content_head}' ";
if (is_checked('chk_grp_mobile_content_tail')) $grp_fields .= " , bo_mobile_content_tail = '{$bo_mobile_content_tail}' ";
//최고관리자만 수정가능
if ($is_admin === 'super'){
if (is_checked('chk_grp_include_head')) $grp_fields .= " , bo_include_head = '{$bo_include_head}' ";
if (is_checked('chk_grp_include_tail')) $grp_fields .= " , bo_include_tail = '{$bo_include_tail}' ";
if (is_checked('chk_grp_content_head')) $grp_fields .= " , bo_content_head = '{$bo_content_head}' ";
if (is_checked('chk_grp_content_tail')) $grp_fields .= " , bo_content_tail = '{$bo_content_tail}' ";
if (is_checked('chk_grp_mobile_content_head')) $grp_fields .= " , bo_mobile_content_head = '{$bo_mobile_content_head}' ";
if (is_checked('chk_grp_mobile_content_tail')) $grp_fields .= " , bo_mobile_content_tail = '{$bo_mobile_content_tail}' ";
}
if (is_checked('chk_grp_insert_content')) $grp_fields .= " , bo_insert_content = '{$bo_insert_content}' ";
if (is_checked('chk_grp_use_search')) $grp_fields .= " , bo_use_search = '{$bo_use_search}' ";
if (is_checked('chk_grp_order')) $grp_fields .= " , bo_order = '{$bo_order}' ";
for ($i=1; $i<=10; $i++) {
if (is_checked('chk_grp_'.$i)) {
$grp_fields .= " , bo_{$i}_subj = '".$_POST['bo_'.$i.'_subj']."' ";
$grp_fields .= " , bo_{$i} = '".$_POST['bo_'.$i]."' ";
$grp_fields .= " , bo_{$i}_subj = '".$etcs['bo_'.$i.'_subj']."' ";
$grp_fields .= " , bo_{$i} = '".$etcs['bo_'.$i]."' ";
}
}
@@ -321,13 +456,14 @@ if (is_checked('chk_all_write_point')) $all_fields .= " , bo_write_poin
if (is_checked('chk_all_comment_point')) $all_fields .= " , bo_comment_point = '{$bo_comment_point}' ";
if (is_checked('chk_all_download_point')) $all_fields .= " , bo_download_point = '{$bo_download_point}' ";
if (is_checked('chk_all_category_list')) {
$all_fields .= " , bo_category_list = '{$bo_category_list}' ";
$all_fields .= " , bo_category_list = '{$str_bo_category_list}' ";
$all_fields .= " , bo_use_category = '{$bo_use_category}' ";
}
if (is_checked('chk_all_use_sideview')) $all_fields .= " , bo_use_sideview = '{$bo_use_sideview}' ";
if (is_checked('chk_all_use_file_content')) $all_fields .= " , bo_use_file_content = '{$bo_use_file_content}' ";
if (is_checked('chk_all_use_secret')) $all_fields .= " , bo_use_secret = '{$bo_use_secret}' ";
if (is_checked('chk_all_use_dhtml_editor')) $all_fields .= " , bo_use_dhtml_editor = '{$bo_use_dhtml_editor}' ";
if (is_checked('chk_all_select_editor')) $all_fields .= " , bo_select_editor = '{$bo_select_editor}' ";
if (is_checked('chk_all_use_rss_view')) $all_fields .= " , bo_use_rss_view = '{$bo_use_rss_view}' ";
if (is_checked('chk_all_use_good')) $all_fields .= " , bo_use_good = '{$bo_use_good}' ";
if (is_checked('chk_all_use_nogood')) $all_fields .= " , bo_use_nogood = '{$bo_use_nogood}' ";
@@ -340,6 +476,7 @@ if (is_checked('chk_all_use_list_content')) $all_fields .= " , bo_use_list_c
if (is_checked('chk_all_use_email')) $all_fields .= " , bo_use_email = '{$bo_use_email}' ";
if (is_checked('chk_all_use_cert')) $all_fields .= " , bo_use_cert = '{$bo_use_cert}' ";
if (is_checked('chk_all_use_sns')) $all_fields .= " , bo_use_sns = '{$bo_use_sns}' ";
if (is_checked('chk_all_use_captcha')) $all_fields .= " , bo_use_captcha = '{$bo_use_captcha}' ";
if (is_checked('chk_all_skin')) $all_fields .= " , bo_skin = '{$bo_skin}' ";
if (is_checked('chk_all_mobile_skin')) $all_fields .= " , bo_mobile_skin = '{$bo_mobile_skin}' ";
if (is_checked('chk_all_gallery_cols')) $all_fields .= " , bo_gallery_cols = '{$bo_gallery_cols}' ";
@@ -363,19 +500,24 @@ if (is_checked('chk_all_comment_min')) $all_fields .= " , bo_comment_mi
if (is_checked('chk_all_comment_max')) $all_fields .= " , bo_comment_max = '{$bo_comment_max}' ";
if (is_checked('chk_all_upload_count')) $all_fields .= " , bo_upload_count = '{$bo_upload_count}' ";
if (is_checked('chk_all_upload_size')) $all_fields .= " , bo_upload_size = '{$bo_upload_size}' ";
if (is_checked('chk_all_include_head')) $all_fields .= " , bo_include_head = '{$bo_include_head}' ";
if (is_checked('chk_all_include_tail')) $all_fields .= " , bo_include_tail = '{$bo_include_tail}' ";
if (is_checked('chk_all_content_head')) $all_fields .= " , bo_content_head = '{$bo_content_head}' ";
if (is_checked('chk_all_content_tail')) $all_fields .= " , bo_content_tail = '{$bo_content_tail}' ";
if (is_checked('chk_all_mobile_content_head')) $all_fields .= " , bo_mobile_content_head = '{$bo_mobile_content_head}' ";
if (is_checked('chk_all_mobile_content_tail')) $all_fields .= " , bo_mobile_content_tail = '{$bo_mobile_content_tail}' ";
//최고관리자만 수정가능
if ($is_admin === 'super'){
if (is_checked('chk_all_include_head')) $all_fields .= " , bo_include_head = '{$bo_include_head}' ";
if (is_checked('chk_all_include_tail')) $all_fields .= " , bo_include_tail = '{$bo_include_tail}' ";
if (is_checked('chk_all_content_head')) $all_fields .= " , bo_content_head = '{$bo_content_head}' ";
if (is_checked('chk_all_content_tail')) $all_fields .= " , bo_content_tail = '{$bo_content_tail}' ";
if (is_checked('chk_all_mobile_content_head')) $all_fields .= " , bo_mobile_content_head = '{$bo_mobile_content_head}' ";
if (is_checked('chk_all_mobile_content_tail')) $all_fields .= " , bo_mobile_content_tail = '{$bo_mobile_content_tail}' ";
}
if (is_checked('chk_all_insert_content')) $all_fields .= " , bo_insert_content = '{$bo_insert_content}' ";
if (is_checked('chk_all_use_search')) $all_fields .= " , bo_use_search = '{$bo_use_search}' ";
if (is_checked('chk_all_order')) $all_fields .= " , bo_order = '{$bo_order}' ";
for ($i=1; $i<=10; $i++) {
if (is_checked('chk_all_'.$i)) {
$all_fields .= " , bo_{$i}_subj = '".$_POST['bo_'.$i.'_subj']."' ";
$all_fields .= " , bo_{$i} = '".$_POST['bo_'.$i]."' ";
$all_fields .= " , bo_{$i}_subj = '".$etcs['bo_'.$i.'_subj']."' ";
$all_fields .= " , bo_{$i} = '".$etcs['bo_'.$i]."' ";
}
}
@@ -385,9 +527,9 @@ if ($all_fields) {
delete_cache_latest($bo_table);
// syndication ping
if(G5_SYNDI_USE)
include G5_SYNDI_PATH.'/include/include.adm.board_form_update.php';
if(function_exists('get_admin_captcha_by'))
get_admin_captcha_by('remove');
goto_url("./board_form.php?w=u&bo_table={$bo_table}&amp;{$qstr}");
?>
run_event('admin_board_form_update', $bo_table, $w);
goto_url("./board_form.php?w=u&bo_table={$bo_table}&amp;{$qstr}");
+35 -37
View File
@@ -2,7 +2,7 @@
$sub_menu = "300100";
include_once('./_common.php');
auth_check($auth[$sub_menu], 'r');
auth_check_menu($auth, $sub_menu, 'r');
$sql_common = " from {$g5['board_table']} a ";
$sql_search = " where (1) ";
@@ -46,7 +46,7 @@ $from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} ";
$result = sql_query($sql);
$listall = '<a href="'.$_SERVER['PHP_SELF'].'" class="ov_listall">전체목록</a>';
$listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'" class="ov_listall">전체목록</a>';
$g5['title'] = '게시판관리';
include_once('./admin.head.php');
@@ -56,16 +56,16 @@ $colspan = 15;
<div class="local_ov01 local_ov">
<?php echo $listall ?>
생성된 게시판수 <?php echo number_format($total_count) ?>개
<span class="btn_ov01"><span class="ov_txt">생성된 게시판수</span><span class="ov_num"> <?php echo number_format($total_count) ?>개</span></span>
</div>
<form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get">
<label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl">
<option value="bo_table"<?php echo get_selected($_GET['sfl'], "bo_subject", true); ?>>TABLE</option>
<option value="bo_subject"<?php echo get_selected($_GET['sfl'], "bo_subject"); ?>>제목</option>
<option value="a.gr_id"<?php echo get_selected($_GET['sfl'], "a.gr_id"); ?>>그룹ID</option>
<option value="bo_table"<?php echo get_selected($sfl, "bo_table", true); ?>>TABLE</option>
<option value="bo_subject"<?php echo get_selected($sfl, "bo_subject"); ?>>제목</option>
<option value="a.gr_id"<?php echo get_selected($sfl, "a.gr_id"); ?>>그룹ID</option>
</select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input">
@@ -73,11 +73,7 @@ $colspan = 15;
</form>
<?php if ($is_admin == 'super') { ?>
<div class="btn_add01 btn_add">
<a href="./board_form.php" id="bo_add">게시판 추가</a>
</div>
<?php } ?>
<form name="fboardlist" id="fboardlist" action="./board_list_update.php" onsubmit="return fboardlist_submit(this);" method="post">
<input type="hidden" name="sst" value="<?php echo $sst ?>">
@@ -85,7 +81,7 @@ $colspan = 15;
<input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo $token ?>">
<input type="hidden" name="token" value="<?php echo isset($token) ? $token : ''; ?>">
<div class="tbl_head01 tbl_wrap">
<table>
@@ -99,7 +95,7 @@ $colspan = 15;
<th scope="col"><?php echo subject_sort_link('a.gr_id') ?>그룹</a></th>
<th scope="col"><?php echo subject_sort_link('bo_table') ?>TABLE</a></th>
<th scope="col"><?php echo subject_sort_link('bo_skin', '', 'desc') ?>스킨</a></th>
<th scope="col"><?php echo subject_sort_link('bo_mobile_skin', '', 'desc') ?>모바일<br>스킨</span></a></th>
<th scope="col"><?php echo subject_sort_link('bo_mobile_skin', '', 'desc') ?>모바일<br>스킨</a></th>
<th scope="col"><?php echo subject_sort_link('bo_subject') ?>제목</a></th>
<th scope="col">읽기P<span class="sound_only">포인트</span></th>
<th scope="col">쓰기P<span class="sound_only">포인트</span></th>
@@ -115,8 +111,8 @@ $colspan = 15;
<tbody>
<?php
for ($i=0; $row=sql_fetch_array($result); $i++) {
$one_update = '<a href="./board_form.php?w=u&amp;bo_table='.$row['bo_table'].'&amp;'.$qstr.'">수정</a>';
$one_copy = '<a href="./board_copy.php?bo_table='.$row['bo_table'].'" class="board_copy" target="win_board_copy">복사</a>';
$one_update = '<a href="./board_form.php?w=u&amp;bo_table='.$row['bo_table'].'&amp;'.$qstr.'" class="btn btn_03">수정</a>';
$one_copy = '<a href="./board_copy.php?bo_table='.$row['bo_table'].'" class="board_copy btn btn_02" target="win_board_copy">복사</a>';
$bg = 'bg'.($i%2);
?>
@@ -135,10 +131,10 @@ $colspan = 15;
</td>
<td>
<input type="hidden" name="board_table[<?php echo $i ?>]" value="<?php echo $row['bo_table'] ?>">
<a href="<?php echo G5_BBS_URL ?>/board.php?bo_table=<?php echo $row['bo_table'] ?>"><?php echo $row['bo_table'] ?></a>
<a href="<?php echo get_pretty_url($row['bo_table']) ?>"><?php echo $row['bo_table'] ?></a>
</td>
<td>
<label for="bo_skin_<?php echo $i; ?>" class="sound_only">모바일 스킨</label>
<label for="bo_skin_<?php echo $i; ?>" class="sound_only">스킨</label>
<?php echo get_skin_select('board', 'bo_skin_'.$i, "bo_skin[$i]", $row['bo_skin']); ?>
</td>
<td>
@@ -147,35 +143,35 @@ $colspan = 15;
</td>
<td>
<label for="bo_subject_<?php echo $i; ?>" class="sound_only">게시판 제목<strong class="sound_only"> 필수</strong></label>
<input type="text" name="bo_subject[<?php echo $i ?>]" value="<?php echo get_text($row['bo_subject']) ?>" id="bo_subject_<?php echo $i ?>" required class="required frm_input bo_subject full_input" size="10">
<input type="text" name="bo_subject[<?php echo $i ?>]" value="<?php echo get_text($row['bo_subject']) ?>" id="bo_subject_<?php echo $i ?>" required class="required tbl_input bo_subject full_input" size="10">
</td>
<td class="td_numsmall">
<label for="bo_read_point_<?php echo $i; ?>" class="sound_only">읽기 포인트</label>
<input type="text" name="bo_read_point[<?php echo $i ?>]" value="<?php echo $row['bo_read_point'] ?>" id="bo_read_point_<?php echo $i; ?>" class="frm_input" size="2">
<input type="text" name="bo_read_point[<?php echo $i ?>]" value="<?php echo $row['bo_read_point'] ?>" id="bo_read_point_<?php echo $i; ?>" class="tbl_input" size="2">
</td>
<td class="td_numsmall">
<label for="bo_write_point_<?php echo $i; ?>" class="sound_only">쓰기 포인트</label>
<input type="text" name="bo_write_point[<?php echo $i ?>]" value="<?php echo $row['bo_write_point'] ?>" id="bo_write_point_<?php echo $i; ?>" class="frm_input" size="2">
<input type="text" name="bo_write_point[<?php echo $i ?>]" value="<?php echo $row['bo_write_point'] ?>" id="bo_write_point_<?php echo $i; ?>" class="tbl_input" size="2">
</td>
<td class="td_numsmall">
<label for="bo_comment_point_<?php echo $i; ?>" class="sound_only">댓글 포인트</label>
<input type="text" name="bo_comment_point[<?php echo $i ?>]" value="<?php echo $row['bo_comment_point'] ?>" id="bo_comment_point_<?php echo $i; ?>" class="frm_input" size="2">
<input type="text" name="bo_comment_point[<?php echo $i ?>]" value="<?php echo $row['bo_comment_point'] ?>" id="bo_comment_point_<?php echo $i; ?>" class="tbl_input" size="2">
</td>
<td class="td_numsmall">
<label for="bo_download_point_<?php echo $i; ?>" class="sound_only">다운 포인트</label>
<input type="text" name="bo_download_point[<?php echo $i ?>]" value="<?php echo $row['bo_download_point'] ?>" id="bo_download_point_<?php echo $i; ?>" class="frm_input" size="2">
<label for="bo_download_point_<?php echo $i; ?>" class="sound_only">다운<br>포인트</label>
<input type="text" name="bo_download_point[<?php echo $i ?>]" value="<?php echo $row['bo_download_point'] ?>" id="bo_download_point_<?php echo $i; ?>" class="tbl_input" size="2">
</td>
<td class="td_chk">
<label for="bo_use_sns_<?php echo $i; ?>" class="sound_only">SNS 사용</label>
<td class="td_numsmall">
<label for="bo_use_sns_<?php echo $i; ?>" class="sound_only">SNS<br>사용</label>
<input type="checkbox" name="bo_use_sns[<?php echo $i ?>]" value="1" id="bo_use_sns_<?php echo $i ?>" <?php echo $row['bo_use_sns']?"checked":"" ?>>
</td>
<td class="td_chk">
<label for="bo_use_search_<?php echo $i; ?>" class="sound_only">검색 사용</label>
<td class="td_numsmall">
<label for="bo_use_search_<?php echo $i; ?>" class="sound_only">검색<br>사용</label>
<input type="checkbox" name="bo_use_search[<?php echo $i ?>]" value="1" id="bo_use_search_<?php echo $i ?>" <?php echo $row['bo_use_search']?"checked":"" ?>>
</td>
<td class="td_chk">
<label for="bo_order_<?php echo $i; ?>" class="sound_only">출력 순서</label>
<input type="text" name="bo_order[<?php echo $i ?>]" value="<?php echo $row['bo_order'] ?>" id="bo_order_<?php echo $i ?>" class="frm_input" size="2">
<td class="td_numsmall">
<label for="bo_order_<?php echo $i; ?>" class="sound_only">출력<br>순서</label>
<input type="text" name="bo_order[<?php echo $i ?>]" value="<?php echo $row['bo_order'] ?>" id="bo_order_<?php echo $i ?>" class="tbl_input" size="2">
</td>
<td class="td_mngsmall">
<label for="bo_device_<?php echo $i; ?>" class="sound_only">접속기기</label>
@@ -185,7 +181,7 @@ $colspan = 15;
<option value="mobile"<?php echo get_selected($row['bo_device'], 'mobile'); ?>>모바일</option>
</select>
</td>
<td class="td_mngsmall">
<td class="td_mng td_mng_m">
<?php echo $one_update ?>
<?php echo $one_copy ?>
</td>
@@ -199,16 +195,19 @@ $colspan = 15;
</table>
</div>
<div class="btn_list01 btn_list">
<input type="submit" name="act_button" value="선택수정" onclick="document.pressed=this.value">
<div class="btn_fixed_top">
<input type="submit" name="act_button" value="선택수정" onclick="document.pressed=this.value" class="btn_02 btn">
<?php if ($is_admin == 'super') { ?>
<input type="submit" name="act_button" value="선택삭제" onclick="document.pressed=this.value">
<input type="submit" name="act_button" value="선택삭제" onclick="document.pressed=this.value" class="btn_02 btn">
<?php } ?>
<?php if ($is_admin == 'super') { ?>
<a href="./board_form.php" id="bo_add" class="btn_01 btn">게시판 추가</a>
<?php } ?>
</div>
</form>
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, $_SERVER['PHP_SELF'].'?'.$qstr.'&amp;page='); ?>
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, $_SERVER['SCRIPT_NAME'].'?'.$qstr.'&amp;page='); ?>
<script>
function fboardlist_submit(f)
@@ -236,5 +235,4 @@ $(function(){
</script>
<?php
include_once('./admin.tail.php');
?>
include_once('./admin.tail.php');
+55 -30
View File
@@ -4,22 +4,42 @@ include_once('./_common.php');
check_demo();
if (!count($_POST['chk'])) {
alert($_POST['act_button']." 하실 항목을 하나 이상 체크하세요.");
$post_count_chk = (isset($_POST['chk']) && is_array($_POST['chk'])) ? count($_POST['chk']) : 0;
$chk = (isset($_POST['chk']) && is_array($_POST['chk'])) ? $_POST['chk'] : array();
$act_button = isset($_POST['act_button']) ? strip_tags($_POST['act_button']) : '';
$board_table = (isset($_POST['board_table']) && is_array($_POST['board_table'])) ? $_POST['board_table'] : array();
if (! $post_count_chk) {
alert($act_button." 하실 항목을 하나 이상 체크하세요.");
}
if ($_POST['act_button'] == "선택수정") {
check_admin_token();
auth_check($auth[$sub_menu], 'w');
if ($act_button === "선택수정") {
for ($i=0; $i<count($_POST['chk']); $i++) {
auth_check_menu($auth, $sub_menu, 'w');
for ($i=0; $i<$post_count_chk; $i++) {
// 실제 번호를 넘김
$k = $_POST['chk'][$i];
$k = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0;
$post_gr_id = isset($_POST['gr_id'][$k]) ? clean_xss_tags($_POST['gr_id'][$k], 1, 1) : '';
$post_bo_device = isset($_POST['bo_device'][$k]) ? clean_xss_tags($_POST['bo_device'][$k], 1, 1) : '';
$post_bo_skin = isset($_POST['bo_skin'][$k]) ? clean_xss_tags($_POST['bo_skin'][$k], 1, 1) : '';
$post_bo_mobile_skin = isset($_POST['bo_mobile_skin'][$k]) ? clean_xss_tags($_POST['bo_mobile_skin'][$k], 1, 1) : '';
$post_bo_read_point = isset($_POST['bo_read_point'][$k]) ? clean_xss_tags($_POST['bo_read_point'][$k], 1, 1) : '';
$post_bo_write_point = isset($_POST['bo_write_point'][$k]) ? clean_xss_tags($_POST['bo_write_point'][$k], 1, 1) : '';
$post_bo_comment_point = isset($_POST['bo_comment_point'][$k]) ? clean_xss_tags($_POST['bo_comment_point'][$k], 1, 1) : '';
$post_bo_download_point = isset($_POST['bo_download_point'][$k]) ? clean_xss_tags($_POST['bo_download_point'][$k], 1, 1) : '';
$post_bo_use_search = isset($_POST['bo_use_search'][$k]) ? clean_xss_tags($_POST['bo_use_search'][$k], 1, 1) : '';
$post_bo_use_sns = isset($_POST['bo_use_sns'][$k]) ? clean_xss_tags($_POST['bo_use_sns'][$k], 1, 1) : '';
$post_bo_order = isset($_POST['bo_order'][$k]) ? clean_xss_tags($_POST['bo_order'][$k], 1, 1) : '';
$post_board_table = isset($_POST['board_table'][$k]) ? clean_xss_tags($_POST['board_table'][$k], 1, 1) : '';
if ($is_admin != 'super') {
$sql = " select count(*) as cnt from {$g5['board_table']} a, {$g5['group_table']} b
where a.gr_id = '{$_POST['gr_id'][$k]}'
where a.gr_id = '".sql_real_escape_string($post_gr_id)."'
and a.gr_id = b.gr_id
and b.gr_admin = '{$member['mb_id']}' ";
$row = sql_fetch($sql);
@@ -27,46 +47,51 @@ if ($_POST['act_button'] == "선택수정") {
alert('최고관리자가 아닌 경우 다른 관리자의 게시판('.$board_table[$k].')은 수정이 불가합니다.');
}
$p_bo_subject = is_array($_POST['bo_subject']) ? strip_tags(clean_xss_attributes($_POST['bo_subject'][$k])) : '';
$sql = " update {$g5['board_table']}
set gr_id = '{$_POST['gr_id'][$k]}',
bo_subject = '{$_POST['bo_subject'][$k]}',
bo_device = '{$_POST['bo_device'][$k]}',
bo_skin = '{$_POST['bo_skin'][$k]}',
bo_mobile_skin = '{$_POST['bo_mobile_skin'][$k]}',
bo_read_point = '{$_POST['bo_read_point'][$k]}',
bo_write_point = '{$_POST['bo_write_point'][$k]}',
bo_comment_point = '{$_POST['bo_comment_point'][$k]}',
bo_download_point = '{$_POST['bo_download_point'][$k]}',
bo_use_search = '{$_POST['bo_use_search'][$k]}',
bo_use_sns = '{$_POST['bo_use_sns'][$k]}',
bo_order = '{$_POST['bo_order'][$k]}'
where bo_table = '{$_POST['board_table'][$k]}' ";
set gr_id = '".sql_real_escape_string($post_gr_id)."',
bo_subject = '".$p_bo_subject."',
bo_device = '".sql_real_escape_string($post_bo_device)."',
bo_skin = '".sql_real_escape_string($post_bo_skin)."',
bo_mobile_skin = '".sql_real_escape_string($post_bo_mobile_skin)."',
bo_read_point = '".sql_real_escape_string($post_bo_read_point)."',
bo_write_point = '".sql_real_escape_string($post_bo_write_point)."',
bo_comment_point = '".sql_real_escape_string($post_bo_comment_point)."',
bo_download_point = '".sql_real_escape_string($post_bo_download_point)."',
bo_use_search = '".sql_real_escape_string($post_bo_use_search)."',
bo_use_sns = '".sql_real_escape_string($post_bo_use_sns)."',
bo_order = '".sql_real_escape_string($post_bo_order)."'
where bo_table = '".sql_real_escape_string($post_board_table)."' ";
sql_query($sql);
}
} else if ($_POST['act_button'] == "선택삭제") {
} else if ($act_button === "선택삭제") {
if ($is_admin != 'super')
alert('게시판 삭제는 최고관리자만 가능합니다.');
auth_check($auth[$sub_menu], 'd');
check_token();
auth_check_menu($auth, $sub_menu, 'd');
// _BOARD_DELETE_ 상수를 선언해야 board_delete.inc.php 가 정상 작동함
define('_BOARD_DELETE_', true);
for ($i=0; $i<count($_POST['chk']); $i++) {
for ($i=0; $i<$post_count_chk; $i++) {
// 실제 번호를 넘김
$k = $_POST['chk'][$i];
$k = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0;
// include 전에 $bo_table 값을 반드시 넘겨야 함
$tmp_bo_table = trim($_POST['board_table'][$k]);
include ('./board_delete.inc.php');
$tmp_bo_table = isset($_POST['board_table'][$k]) ? trim(clean_xss_tags($_POST['board_table'][$k], 1, 1)) : '';
if( preg_match("/^[A-Za-z0-9_]+$/", $tmp_bo_table) ){
include ('./board_delete.inc.php');
}
}
}
goto_url('./board_list.php?'.$qstr);
?>
run_event('admin_board_list_update', $act_button, $chk, $board_table, $qstr);
goto_url('./board_list.php?'.$qstr);
+2 -3
View File
@@ -2,7 +2,7 @@
$sub_menu = '300100';
include_once('./_common.php');
auth_check($auth[$sub_menu], 'w');
auth_check_menu($auth, $sub_menu, 'w');
if(!$board['bo_table'])
alert('존재하지 않는 게시판입니다.');
@@ -48,5 +48,4 @@ if(is_dir($dir)) {
<div class="btn_confirm01 btn_confirm"><a href="./board_form.php?w=u&amp;bo_table=<?php echo $bo_table; ?>&amp;<?php echo $qstr; ?>">게시판 수정으로 돌아가기</a></div>
<?php
include_once('./admin.tail.php');
?>
include_once('./admin.tail.php');
+16 -9
View File
@@ -2,17 +2,24 @@
$sub_menu = "300200";
include_once('./_common.php');
auth_check($auth[$sub_menu], 'w');
auth_check_menu($auth, $sub_menu, 'w');
if ($is_admin != 'super' && $w == '') alert('최고관리자만 접근 가능합니다.');
$html_title = '게시판그룹';
$gr_id_attr = '';
$sound_only = '';
if( ! isset($group['gr_id']) ){
$group['gr_id'] = '';
$group['gr_subject'] = '';
$group['gr_device'] = '';
}
if ($w == '') {
$gr_id_attr = 'required';
$sound_only = '<strong class="sound_only"> 필수</strong>';
$gr['gr_use_access'] = 0;
$gr = array('gr_use_access' => 0, 'gr_admin'=>'');
$html_title .= ' 생성';
} else if ($w == 'u') {
$gr_id_attr = 'readonly';
@@ -38,6 +45,7 @@ include_once('./admin.head.php');
<input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="">
<div class="tbl_frm01 tbl_wrap">
<table>
@@ -114,9 +122,9 @@ include_once('./admin.head.php');
<th scope="row">여분필드<?php echo $i ?></th>
<td class="td_extra">
<label for="gr_<?php echo $i ?>_subj">여분필드 <?php echo $i ?> 제목</label>
<input type="text" name="gr_<?php echo $i ?>_subj" value="<?php echo get_text($group['gr_'.$i.'_subj']) ?>" id="gr_<?php echo $i ?>_subj" class="frm_input">
<input type="text" name="gr_<?php echo $i ?>_subj" value="<?php echo isset($group['gr_'.$i.'_subj']) ? get_text($group['gr_'.$i.'_subj']) : ''; ?>" id="gr_<?php echo $i ?>_subj" class="frm_input">
<label for="gr_<?php echo $i ?>">여분필드 <?php echo $i ?> 내용</label>
<input type="text" name="gr_<?php echo $i ?>" value="<?php echo $gr['gr_'.$i] ?>" id="gr_<?php echo $i ?>" class="frm_input">
<input type="text" name="gr_<?php echo $i ?>" value="<?php echo isset($gr['gr_'.$i]) ? get_sanitize_input($gr['gr_'.$i]) : ''; ?>" id="gr_<?php echo $i ?>" class="frm_input">
</td>
</tr>
<?php } ?>
@@ -124,9 +132,9 @@ include_once('./admin.head.php');
</table>
</div>
<div class="btn_confirm01 btn_confirm">
<input type="submit" class="btn_submit" accesskey="s" value="확인">
<a href="./boardgroup_list.php?<?php echo $qstr ?>">목록</a>
<div class="btn_fixed_top">
<a href="./boardgroup_list.php?<?php echo $qstr ?>" class="btn btn_02">목록</a>
<input type="submit" class="btn_submit btn" accesskey="s" value="확인">
</div>
</form>
@@ -147,5 +155,4 @@ function fboardgroup_check(f)
</script>
<?php
include_once ('./admin.tail.php');
?>
include_once ('./admin.tail.php');
+55 -33
View File
@@ -5,38 +5,63 @@ include_once('./_common.php');
if ($w == 'u')
check_demo();
auth_check($auth[$sub_menu], 'w');
auth_check_menu($auth, $sub_menu, 'w');
if ($is_admin != 'super' && $w == '') alert('최고관리자만 접근 가능합니다.');
if (!preg_match("/^([A-Za-z0-9_]{1,10})$/", $_POST['gr_id']))
check_admin_token();
$gr_id = isset($_POST['gr_id']) ? $_POST['gr_id'] : '';
if (!preg_match("/^([A-Za-z0-9_]{1,10})$/", $gr_id))
alert('그룹 ID는 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (10자 이내)');
if (!$gr_subject) alert('그룹 제목을 입력하세요.');
$sql_common = " gr_subject = '{$_POST['gr_subject']}',
gr_device = '{$_POST['gr_device']}',
gr_admin = '{$_POST['gr_admin']}',
gr_1_subj = '{$_POST['gr_1_subj']}',
gr_2_subj = '{$_POST['gr_2_subj']}',
gr_3_subj = '{$_POST['gr_3_subj']}',
gr_4_subj = '{$_POST['gr_4_subj']}',
gr_5_subj = '{$_POST['gr_5_subj']}',
gr_6_subj = '{$_POST['gr_6_subj']}',
gr_7_subj = '{$_POST['gr_7_subj']}',
gr_8_subj = '{$_POST['gr_8_subj']}',
gr_9_subj = '{$_POST['gr_9_subj']}',
gr_10_subj = '{$_POST['gr_10_subj']}',
gr_1 = '{$_POST['gr_1']}',
gr_2 = '{$_POST['gr_2']}',
gr_3 = '{$_POST['gr_3']}',
gr_4 = '{$_POST['gr_4']}',
gr_5 = '{$_POST['gr_5']}',
gr_6 = '{$_POST['gr_6']}',
gr_7 = '{$_POST['gr_7']}',
gr_8 = '{$_POST['gr_8']}',
gr_9 = '{$_POST['gr_9']}',
gr_10 = '{$_POST['gr_10']}' ";
$posts = array();
$check_keys = array(
'gr_subject',
'gr_device',
'gr_admin'
);
for($i=1;$i<=10;$i++){
$check_keys['gr_'.$i.'_subj'] = isset($_POST['gr_'.$i.'_subj']) ? $_POST['gr_'.$i.'_subj'] : '';
$check_keys['gr_'.$i] = isset($_POST['gr_'.$i]) ? $_POST['gr_'.$i] : '';
}
foreach( $check_keys as $key ){
if( $key === 'gr_subject' ){
$posts[$key] = isset($_POST[$key]) ? strip_tags(clean_xss_attributes($_POST[$key])) : '';
} else {
$posts[$key] = isset($_POST[$key]) ? $_POST[$key] : '';
}
}
$sql_common = " gr_subject = '{$posts['gr_subject']}',
gr_device = '{$posts['gr_device']}',
gr_admin = '{$posts['gr_admin']}',
gr_1_subj = '{$posts['gr_1_subj']}',
gr_2_subj = '{$posts['gr_2_subj']}',
gr_3_subj = '{$posts['gr_3_subj']}',
gr_4_subj = '{$posts['gr_4_subj']}',
gr_5_subj = '{$posts['gr_5_subj']}',
gr_6_subj = '{$posts['gr_6_subj']}',
gr_7_subj = '{$posts['gr_7_subj']}',
gr_8_subj = '{$posts['gr_8_subj']}',
gr_9_subj = '{$posts['gr_9_subj']}',
gr_10_subj = '{$posts['gr_10_subj']}',
gr_1 = '{$posts['gr_1']}',
gr_2 = '{$posts['gr_2']}',
gr_3 = '{$posts['gr_3']}',
gr_4 = '{$posts['gr_4']}',
gr_5 = '{$posts['gr_5']}',
gr_6 = '{$posts['gr_6']}',
gr_7 = '{$posts['gr_7']}',
gr_8 = '{$posts['gr_8']}',
gr_9 = '{$posts['gr_9']}',
gr_10 = '{$posts['gr_10']}' ";
if (isset($_POST['gr_use_access']))
$sql_common .= ", gr_use_access = '{$_POST['gr_use_access']}' ";
else
@@ -44,13 +69,13 @@ else
if ($w == '') {
$sql = " select count(*) as cnt from {$g5['group_table']} where gr_id = '{$_POST['gr_id']}' ";
$sql = " select count(*) as cnt from {$g5['group_table']} where gr_id = '{$gr_id}' ";
$row = sql_fetch($sql);
if ($row['cnt'])
alert('이미 존재하는 그룹 ID 입니다.');
$sql = " insert into {$g5['group_table']}
set gr_id = '{$_POST['gr_id']}',
set gr_id = '{$gr_id}',
{$sql_common} ";
sql_query($sql);
@@ -58,16 +83,13 @@ if ($w == '') {
$sql = " update {$g5['group_table']}
set {$sql_common}
where gr_id = '{$_POST['gr_id']}' ";
where gr_id = '{$gr_id}' ";
sql_query($sql);
} else {
alert('제대로 된 값이 넘어오지 않았습니다.');
}
// syndication ping
if(G5_SYNDI_USE)
include G5_SYNDI_PATH.'/include/include.adm.boardgroup_form_update.php';
run_event('admin_boardgroup_form_update', $gr_id, $w);
goto_url('./boardgroup_form.php?w=u&amp;gr_id='.$gr_id.'&amp;'.$qstr);
?>
goto_url('./boardgroup_form.php?w=u&amp;gr_id='.$gr_id.'&amp;'.$qstr);
+27 -34
View File
@@ -2,7 +2,7 @@
$sub_menu = "300200";
include_once('./_common.php');
auth_check($auth[$sub_menu], 'r');
auth_check_menu($auth, $sub_menu, 'r');
if (!isset($group['gr_device'])) {
// 게시판 그룹 사용 필드 추가
@@ -10,7 +10,7 @@ if (!isset($group['gr_device'])) {
// pc : pc 전용 사용
// mobile : mobile 전용 사용
// none : 사용 안함
sql_query(" ALTER TABLE `{$g5['board_group_table']}` ADD `gr_device` ENUM( 'both', 'pc', 'mobile' ) NOT NULL DEFAULT 'both' AFTER `gr_subject` ", false);
sql_query(" ALTER TABLE `{$g5['group_table']}` ADD `gr_device` ENUM( 'both', 'pc', 'mobile' ) NOT NULL DEFAULT 'both' AFTER `gr_subject` ", false);
}
$sql_common = " from {$g5['group_table']} ";
@@ -50,7 +50,7 @@ $from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} ";
$result = sql_query($sql);
$listall = '<a href="'.$_SERVER['PHP_SELF'].'" class="ov_listall">처음</a>';
$listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'" class="ov_listall">처음</a>';
$g5['title'] = '게시판그룹설정';
include_once('./admin.head.php');
@@ -60,27 +60,21 @@ $colspan = 10;
<div class="local_ov01 local_ov">
<?php echo $listall ?>
전체그룹 <?php echo number_format($total_count) ?>개
<span class="btn_ov01"><span class="ov_txt">전체그룹</span><span class="ov_num"> <?php echo number_format($total_count) ?>개</span></span>
</div>
<form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get">
<label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl">
<option value="gr_subject"<?php echo get_selected($_GET['sfl'], "gr_subject"); ?>>제목</option>
<option value="gr_id"<?php echo get_selected($_GET['sfl'], "gr_id"); ?>>ID</option>
<option value="gr_admin"<?php echo get_selected($_GET['sfl'], "gr_admin"); ?>>그룹관리자</option>
<option value="gr_subject"<?php echo get_selected($sfl, "gr_subject"); ?>>제목</option>
<option value="gr_id"<?php echo get_selected($sfl, "gr_id"); ?>>ID</option>
<option value="gr_admin"<?php echo get_selected($sfl, "gr_admin"); ?>>그룹관리자</option>
</select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<input type="text" name="stx" value="<?php echo $stx ?>" required class="required frm_input">
<input type="text" name="stx" id="stx" value="<?php echo $stx ?>" required class="required frm_input">
<input type="submit" value="검색" class="btn_submit">
</fieldset>
</form>
<?php if ($is_admin == 'super') { ?>
<div class="btn_add01 btn_add sort_with">
<a href="./boardgroup_form.php" id="bo_gr_add">게시판그룹 추가</a>
</div>
<?php } ?>
<form name="fboardgrouplist" id="fboardgrouplist" action="./boardgroup_list_update.php" onsubmit="return fboardgrouplist_submit(this);" method="post">
<input type="hidden" name="sst" value="<?php echo $sst ?>">
@@ -88,7 +82,7 @@ $colspan = 10;
<input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo $token ?>">
<input type="hidden" name="token" value="">
<div class="tbl_head01 tbl_wrap">
<table>
@@ -122,7 +116,7 @@ $colspan = 10;
$sql2 = " select count(*) as cnt from {$g5['board_table']} where gr_id = '{$row['gr_id']}' ";
$row2 = sql_fetch($sql2);
$s_upd = '<a href="./boardgroup_form.php?'.$qstr.'&amp;w=u&amp;gr_id='.$row['gr_id'].'">수정</a>';
$s_upd = '<a href="./boardgroup_form.php?'.$qstr.'&amp;w=u&amp;gr_id='.$row['gr_id'].'" class="btn_03 btn">수정</a>';
$bg = 'bg'.($i%2);
?>
@@ -130,31 +124,31 @@ $colspan = 10;
<tr class="<?php echo $bg; ?>">
<td class="td_chk">
<input type="hidden" name="group_id[<?php echo $i ?>]" value="<?php echo $row['gr_id'] ?>">
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo $row['gr_subject'] ?> 그룹</label>
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo get_text($row['gr_subject']); ?> 그룹</label>
<input type="checkbox" name="chk[]" value="<?php echo $i ?>" id="chk_<?php echo $i ?>">
</td>
<td class="td_grid"><a href="<?php echo G5_BBS_URL ?>/group.php?gr_id=<?php echo $row['gr_id'] ?>"><?php echo $row['gr_id'] ?></a></td>
<td class="td_left"><a href="<?php echo G5_BBS_URL ?>/group.php?gr_id=<?php echo $row['gr_id'] ?>"><?php echo $row['gr_id'] ?></a></td>
<td class="td_input">
<label for="gr_subject_<?php echo $i; ?>" class="sound_only">그룹제목</label>
<input type="text" name="gr_subject[<?php echo $i ?>]" value="<?php echo get_text($row['gr_subject']) ?>" id="gr_subject_<?php echo $i ?>" class="frm_input">
<input type="text" name="gr_subject[<?php echo $i ?>]" value="<?php echo get_text($row['gr_subject']) ?>" id="gr_subject_<?php echo $i ?>" class="tbl_input">
</td>
<td class="td_mng td_input">
<?php if ($is_admin == 'super'){ ?>
<label for="gr_admin_<?php echo $i; ?>" class="sound_only">그룹관리자</label>
<input type="text" name="gr_admin[<?php echo $i ?>]" value="<?php echo $row['gr_admin'] ?>" id="gr_admin_<?php echo $i ?>" class="frm_input" size="10" maxlength="20">
<input type="text" name="gr_admin[<?php echo $i ?>]" value="<?php echo get_sanitize_input($row['gr_admin']); ?>" id="gr_admin_<?php echo $i ?>" class="tbl_input" size="10" maxlength="20">
<?php }else{ ?>
<input type="hidden" name="gr_admin[<?php echo $i ?>]" value="<?php echo $row['gr_admin'] ?>"><?php echo $row['gr_admin'] ?>
<input type="hidden" name="gr_admin[<?php echo $i ?>]" value="<?php echo get_sanitize_input($row['gr_admin']); ?>"><?php echo get_text($row['gr_admin']); ?>
<?php } ?>
</td>
<td class="td_numsmall"><a href="./board_list.php?sfl=a.gr_id&amp;stx=<?php echo $row['gr_id'] ?>"><?php echo $row2['cnt'] ?></a></td>
<td class="td_chk">
<td class="td_num"><a href="./board_list.php?sfl=a.gr_id&amp;stx=<?php echo $row['gr_id'] ?>"><?php echo $row2['cnt'] ?></a></td>
<td class="td_numsmall">
<label for="gr_use_access_<?php echo $i; ?>" class="sound_only">접근회원 사용</label>
<input type="checkbox" name="gr_use_access[<?php echo $i ?>]" <?php echo $row['gr_use_access']?'checked':'' ?> value="1" id="gr_use_access_<?php echo $i ?>">
</td>
<td class="td_numsmall"><a href="./boardgroupmember_list.php?gr_id=<?php echo $row['gr_id'] ?>"><?php echo $row1['cnt'] ?></a></td>
<td class="td_chk">
<td class="td_num"><a href="./boardgroupmember_list.php?gr_id=<?php echo $row['gr_id'] ?>"><?php echo $row1['cnt'] ?></a></td>
<td class="td_numsmall">
<label for="gr_order_<?php echo $i; ?>" class="sound_only">메인메뉴 출력순서</label>
<input type="text" name="gr_order[<?php echo $i ?>]" value="<?php echo $row['gr_order'] ?>" id="gr_order_<?php echo $i ?>" class="frm_input" size="2">
<input type="text" name="gr_order[<?php echo $i ?>]" value="<?php echo $row['gr_order'] ?>" id="gr_order_<?php echo $i ?>" class="tbl_input" size="2">
</td>
<td class="td_mng">
<label for="gr_device_<?php echo $i; ?>" class="sound_only">접속기기</label>
@@ -164,7 +158,7 @@ $colspan = 10;
<option value="mobile"<?php echo get_selected($row['gr_device'], 'mobile'); ?>>모바일</option>
</select>
</td>
<td class="td_mngsmall"><?php echo $s_upd ?></td>
<td class="td_mng td_mng_s"><?php echo $s_upd ?></td>
</tr>
<?php
@@ -175,10 +169,10 @@ $colspan = 10;
</table>
</div>
<div class="btn_list01 btn_list">
<input type="submit" name="act_button" onclick="document.pressed=this.value" value="선택수정">
<input type="submit" name="act_button" onclick="document.pressed=this.value" value="선택삭제">
<a href="./boardgroup_form.php">게시판그룹 추가</a>
<div class="btn_fixed_top">
<input type="submit" name="act_button" onclick="document.pressed=this.value" value="선택수정" class="btn btn_02">
<input type="submit" name="act_button" onclick="document.pressed=this.value" value="선택삭제" class="btn btn_02">
<a href="./boardgroup_form.php" class="btn btn_01">게시판그룹 추가</a>
</div>
</form>
@@ -190,7 +184,7 @@ $colspan = 10;
</div>
<?php
$pagelist = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, $_SERVER['PHP_SELF'].'?'.$qstr.'&amp;page=');
$pagelist = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, $_SERVER['SCRIPT_NAME'].'?'.$qstr.'&amp;page=');
echo $pagelist;
?>
@@ -213,5 +207,4 @@ function fboardgrouplist_submit(f)
</script>
<?php
include_once('./admin.tail.php');
?>
include_once('./admin.tail.php');
+27 -15
View File
@@ -6,30 +6,41 @@ include_once('./_common.php');
check_demo();
auth_check($auth[$sub_menu], 'w');
auth_check_menu($auth, $sub_menu, 'w');
$count = count($_POST['chk']);
check_admin_token();
$post_chk = isset($_POST['chk']) ? (array) $_POST['chk'] : array();
$post_group_id = isset($_POST['group_id']) ? (array) $_POST['group_id'] : array();
$act_button = isset($_POST['act_button']) ? $_POST['act_button'] : '';
$count = count($post_chk);
if(!$count)
alert($_POST['act_button'].'할 게시판그룹을 1개이상 선택해 주세요.');
alert($act_button.'할 게시판그룹을 1개이상 선택해 주세요.');
for ($i=0; $i<$count; $i++)
{
$k = $_POST['chk'][$i];
$gr_id = $_POST['group_id'][$k];
$k = isset($post_chk[$i]) ? (int) $post_chk[$i] : 0;
$gr_id = preg_replace('/[^a-z0-9_]/i', '', $post_group_id[$k]);
$gr_subject = isset($_POST['gr_subject'][$k]) ? strip_tags(clean_xss_attributes($_POST['gr_subject'][$k])) : '';
$gr_admin = isset($_POST['gr_admin'][$k]) ? strip_tags(clean_xss_attributes($_POST['gr_admin'][$k])) : '';
$gr_device = isset($_POST['gr_device'][$k]) ? clean_xss_tags($_POST['gr_device'][$k], 1, 1, 10) : '';
$gr_use_access = isset($_POST['gr_use_access'][$k]) ? (int) $_POST['gr_use_access'][$k] : 0;
$gr_order = isset($_POST['gr_order'][$k]) ? (int) $_POST['gr_order'][$k] : 0;
if($_POST['act_button'] == '선택수정') {
if($act_button == '선택수정') {
$sql = " update {$g5['group_table']}
set gr_subject = '{$_POST['gr_subject'][$k]}',
gr_device = '{$_POST['gr_device'][$k]}',
gr_admin = '{$_POST['gr_admin'][$k]}',
gr_use_access = '{$_POST['gr_use_access'][$k]}',
gr_order = '{$_POST['gr_order'][$k]}'
set gr_subject = '{$gr_subject}',
gr_device = '".sql_real_escape_string($gr_device)."',
gr_admin = '".sql_real_escape_string($gr_admin)."',
gr_use_access = '".$gr_use_access."',
gr_order = '".$gr_order."'
where gr_id = '{$gr_id}' ";
if ($is_admin != 'super')
$sql .= " and gr_admin = '{$_POST['gr_admin'][$k]}' ";
$sql .= " and gr_admin = '{$gr_admin}' ";
sql_query($sql);
} else if($_POST['act_button'] == '선택삭제') {
} else if($act_button == '선택삭제') {
$row = sql_fetch(" select count(*) as cnt from {$g5['board_table']} where gr_id = '$gr_id' ");
if ($row['cnt'])
alert("이 그룹에 속한 게시판이 존재하여 게시판 그룹을 삭제할 수 없습니다.\\n\\n이 그룹에 속한 게시판을 먼저 삭제하여 주십시오.", './board_list.php?sfl=gr_id&amp;stx='.$gr_id);
@@ -42,5 +53,6 @@ for ($i=0; $i<$count; $i++)
}
}
goto_url('./boardgroup_list.php?'.$qstr);
?>
run_event('admin_boardgroup_list_update', $act_button, $chk, $post_group_id, $qstr);
goto_url('./boardgroup_list.php?'.$qstr);
+15 -12
View File
@@ -2,12 +2,12 @@
$sub_menu = "300200";
include_once('./_common.php');
auth_check($auth[$sub_menu], 'w');
$token = get_token();
auth_check_menu($auth, $sub_menu, 'w');
$mb = get_member($mb_id);
if (!$mb['mb_id'])
$token = isset($token) ? $token : '';
if (! (isset($mb['mb_id']) && $mb['mb_id']))
alert('존재하지 않는 회원입니다.');
$g5['title'] = '접근가능그룹';
@@ -18,9 +18,14 @@ $colspan = 4;
<form name="fboardgroupmember_form" id="fboardgroupmember_form" action="./boardgroupmember_update.php" onsubmit="return boardgroupmember_form_check(this)" method="post">
<input type="hidden" name="mb_id" value="<?php echo $mb['mb_id'] ?>" id="mb_id">
<input type="hidden" name="token" value="<?php echo $token ?>" id="token">
<input type="hidden" name="token" value="" id="token">
<div class="local_ov01 local_ov">
<span class="btn_ov01"><span class="ov_txt"> 아이디</span><span class="ov_num"><?php echo $mb['mb_id'] ?></span></span>
<span class="btn_ov01"><span class="ov_txt"> 이름</span><span class="ov_num"><?php echo get_text($mb['mb_name']); ?></span></span>
<span class="btn_ov01"><span class="ov_txt"> 닉네임</span><span class="ov_num"><?php echo $mb['mb_nick'] ?></span></span>
</div>
<div class="local_cmd01 local_cmd">
<p>아이디 <b><?php echo $mb['mb_id'] ?></b>, 이름 <b><?php echo $mb['mb_name'] ?></b>, 닉네임 <b><?php echo $mb['mb_nick'] ?></b></p>
<label for="gr_id">그룹지정</label>
<select name="gr_id" id="gr_id">
<option value="">접근가능 그룹을 선택하세요.</option>
@@ -38,7 +43,7 @@ $colspan = 4;
}
?>
</select>
<input type="submit" value="선택" class="btn_submit" accesskey="s">
<input type="submit" value="선택" class="btn_submit btn" accesskey="s">
</div>
</form>
@@ -48,7 +53,7 @@ $colspan = 4;
<input type="hidden" name="sfl" value="<?php echo $sfl ?>" id="sfl">
<input type="hidden" name="stx" value="<?php echo $stx ?>" id="stx">
<input type="hidden" name="page" value="<?php echo $page ?>" id="page">
<input type="hidden" name="token" value="<?php echo $token ?>" id="token">
<input type="hidden" name="token" value="<?php echo get_sanitize_input($token); ?>" id="token">
<input type="hidden" name="mb_id" value="<?php echo $mb['mb_id'] ?>" id="mb_id">
<input type="hidden" name="w" value="d" id="w">
@@ -76,7 +81,6 @@ $colspan = 4;
$sql .= " order by a.gr_id desc ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$s_del = '<a href="javascript:post_delete(\'boardgroupmember_update.php\', \''.$row['gm_id'].'\');">삭제</a>';
?>
<tr>
<td class="td_chk">
@@ -99,7 +103,7 @@ $colspan = 4;
</div>
<div class="btn_list01 btn_list">
<input type="submit" name="" value="선택삭제">
<input type="submit" name="" value="선택삭제" class="btn btn_02">
</div>
</form>
@@ -126,5 +130,4 @@ function boardgroupmember_form_check(f)
</script>
<?php
include_once('./admin.tail.php');
?>
include_once('./admin.tail.php');
+5 -8
View File
@@ -2,7 +2,7 @@
$sub_menu = "300200";
include_once('./_common.php');
auth_check($auth[$sub_menu], 'r');
auth_check_menu($auth, $sub_menu, 'r');
$gr = get_group($gr_id);
if (!$gr['gr_id']) {
@@ -59,7 +59,7 @@ $colspan = 7;
<input type="hidden" name="gr_id" value="<?php echo $gr_id ?>">
<label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl">
<option value="a.mb_id"<?php echo get_selected($_GET['sfl'], "a.mb_id") ?>>회원아이디</option>
<option value="a.mb_id"<?php echo get_selected($sfl, "a.mb_id") ?>>회원아이디</option>
</select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input">
@@ -104,8 +104,6 @@ $colspan = 7;
if ($row2['cnt'])
$group = '<a href="./boardgroupmember_form.php?mb_id='.$row['mb_id'].'">'.$row2['cnt'].'</a>';
//$s_del = '<a href="javascript:post_delete(\'boardgroupmember_update.php\', \''.$row['gm_id'].'\');">삭제</a>';
$mb_nick = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']);
$bg = 'bg'.($i%2);
@@ -117,7 +115,7 @@ $colspan = 7;
</td>
<td class="td_grid"><?php echo $group ?></td>
<td class="td_mbid"><?php echo $row['mb_id'] ?></td>
<td class="td_mbname"><?php echo $row['mb_name'] ?></td>
<td class="td_mbname"><?php echo get_text($row['mb_name']); ?></td>
<td class="td_name sv_use"><?php echo $mb_nick ?></td>
<td class="td_datetime"><?php echo substr($row['mb_today_login'],2,8) ?></td>
<td class="td_datetime"><?php echo $row['gm_datetime'] ?></td>
@@ -139,7 +137,7 @@ $colspan = 7;
</div>
</form>
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['PHP_SELF']}?$qstr&amp;gr_id=$gr_id&page="); ?>
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;gr_id=$gr_id&page="); ?>
<script>
function fboardgroupmember_submit(f)
@@ -154,5 +152,4 @@ function fboardgroupmember_submit(f)
</script>
<?php
include_once('./admin.tail.php');
?>
include_once('./admin.tail.php');
+6 -7
View File
@@ -6,7 +6,7 @@ sql_query(" ALTER TABLE {$g5['group_member_table']} CHANGE `gm_id` `gm_id` INT(
if ($w == '')
{
auth_check($auth[$sub_menu], 'w');
auth_check_menu($auth, $sub_menu, 'w');
$mb = get_member($mb_id);
if (!$mb['mb_id']) {
@@ -28,7 +28,7 @@ if ($w == '')
}
else
{
check_token();
check_admin_token();
$sql = " insert into {$g5['group_member_table']}
set gr_id = '{$_POST['gr_id']}',
@@ -39,16 +39,16 @@ if ($w == '')
}
else if ($w == 'd' || $w == 'ld')
{
auth_check($auth[$sub_menu], 'd');
auth_check_menu($auth, $sub_menu, 'd');
$count = count($_POST['chk']);
if(!$count)
alert('삭제할 목록을 하나이상 선택해 주세요.');
check_token();
check_admin_token();
for($i=0; $i<$count; $i++) {
$gm_id = $_POST['chk'][$i];
$gm_id = (int) $_POST['chk'][$i];
$sql = " select * from {$g5['group_member_table']} where gm_id = '$gm_id' ";
$gm = sql_fetch($sql);
if (!$gm['gm_id']) {
@@ -66,5 +66,4 @@ else if ($w == 'd' || $w == 'ld')
if ($w == 'ld')
goto_url('./boardgroupmember_list.php?gr_id='.$gr_id);
else
goto_url('./boardgroupmember_form.php?mb_id='.$mb_id);
?>
goto_url('./boardgroupmember_form.php?mb_id='.$mb_id);
+44
View File
@@ -0,0 +1,44 @@
<?php
$sub_menu = "100510";
include_once('./_common.php');
if(!(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE))
alert('사용할 수 없는 기능입니다.', correct_goto_url(G5_ADMIN_URL));
if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.');
$g5['title'] = 'Browscap 업데이트';
include_once('./admin.head.php');
?>
<div id="processing">
<p>Browscap 정보를 업데이트하시려면 아래 업데이트 버튼을 클릭해 주세요.</p>
<button type="button" id="run_update">업데이트</button>
</div>
<script>
$(function() {
$("#run_update").on("click", function() {
$("#processing").html('<div class="update_processing"></div><p>Browscap 정보를 업데이트 중입니다.</p>');
$.ajax({
url: "./browscap_update.php",
async: true,
cache: false,
dataType: "html",
success: function(data) {
if(data != "") {
alert(data);
return false;
}
$("#processing").html("<div class='check_processing'></div><p>Browscap 정보를 업데이트 했습니다.</p>");
}
});
});
});
</script>
<?php
include_once('./admin.tail.php');
+45
View File
@@ -0,0 +1,45 @@
<?php
$sub_menu = "100520";
include_once('./_common.php');
if(!(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE))
alert('사용할 수 없는 기능입니다.', correct_goto_url(G5_ADMIN_URL));
if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.');
$rows = isset($_GET['rows']) ? preg_replace('#[^0-9]#', '', $_GET['rows']) : 0;
if(!$rows)
$rows = 100;
$g5['title'] = '접속로그 변환';
include_once('./admin.head.php');
?>
<div id="processing">
<p>접속로그 정보를 Browscap 정보로 변환하시려면 아래 업데이트 버튼을 클릭해 주세요.</p>
<button type="button" id="run_update">업데이트</button>
</div>
<script>
$(function() {
$(document).on("click", "#run_update", function() {
$("#processing").html('<div class="update_processing"></div><p>Browscap 정보로 변환 중입니다.</p>');
$.ajax({
method: "GET",
url: "./browscap_converter.php",
data: { rows: "<?php echo $rows; ?>" },
async: true,
cache: false,
dataType: "html",
success: function(data) {
$("#processing").html(data);
}
});
});
});
</script>
<?php
include_once('./admin.tail.php');
+74
View File
@@ -0,0 +1,74 @@
<?php
ini_set('memory_limit', '-1');
include_once('./_common.php');
// clean the output buffer
ob_end_clean();
if(!(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE))
die('사용할 수 없는 기능입니다.');
if($is_admin != 'super')
die('최고관리자로 로그인 후 실행해 주세요.');
// browscap cache 파일 체크
if(!is_file(G5_DATA_PATH.'/cache/browscap_cache.php')) {
echo '<p>Browscap 정보가 없습니다. 아래 링크로 이동해 Browscap 정보를 업데이트 하세요.</p>'.PHP_EOL;
echo '<p><a href="'.G5_ADMIN_URL.'/browscap.php">Browscap 업데이트</a></p>'.PHP_EOL;
exit;
}
include_once(G5_PLUGIN_PATH.'/browscap/Browscap.php');
$browscap = new phpbrowscap\Browscap(G5_DATA_PATH.'/cache');
$browscap->doAutoUpdate = false;
$browscap->cacheFilename = 'browscap_cache.php';
// 데이터 변환
$rows = preg_replace('#[^0-9]#', '', $_GET['rows']);
if(!$rows)
$rows = 100;
$sql_common = " from {$g5['visit_table']} where vi_agent <> '' and ( vi_browser = '' or vi_os = '' or vi_device = '' ) ";
$sql_order = " order by vi_id desc ";
$sql_limit = " limit 0, $rows ";
$sql = " select count(vi_id) as cnt $sql_common ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
$sql = " select vi_id, vi_agent, vi_browser, vi_os, vi_device
$sql_common
$sql_order
$sql_limit ";
$result = sql_query($sql);
$cnt = 0;
for($i=0; $row=sql_fetch_array($result); $i++) {
$info = $browscap->getBrowser($row['vi_agent']);
$brow = $row['vi_browser'];
if(!$brow)
$brow = $info->Comment;
$os = $row['vi_os'];
if(!$os)
$os = $info->Platform;
$device = $row['vi_device'];
if(!$device)
$device = $info->Device_Type;
$sql2 = " update {$g5['visit_table']}
set vi_browser = '$brow',
vi_os = '$os',
vi_device = '$device'
where vi_id = '{$row['vi_id']}' ";
sql_query($sql2);
$cnt++;
}
if(($total_count - $cnt) == 0 || $total_count == 0)
echo '<div class="check_processing"></div><p>변환완료</p>';
else
echo '<p>총 '.number_format($total_count).'건 중 '.number_format($cnt).'건 변환완료<br><br>접속로그를 추가로 변환하시려면 아래 업데이트 버튼을 클릭해 주세요.</p><button type="button" id="run_update">업데이트</button>';
+23
View File
@@ -0,0 +1,23 @@
<?php
ini_set('memory_limit', '-1');
$sub_menu = "100510";
include_once('./_common.php');
// clean the output buffer
ob_end_clean();
if(!(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE))
die('사용할 수 없는 기능입니다.');
if ($is_admin != 'super')
die('최고관리자만 접근 가능합니다.');
include_once(G5_PLUGIN_PATH.'/browscap/Browscap.php');
$browscap = new phpbrowscap\Browscap(G5_DATA_PATH.'/cache');
$browscap->updateMethod = 'cURL';
$browscap->cacheFilename = 'browscap_cache.php';
$browscap->updateCache();
die('');
+14 -3
View File
@@ -5,6 +5,13 @@ include_once('./_common.php');
if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.', G5_URL);
@include_once('./safe_check.php');
if(function_exists('social_log_file_delete')){
social_log_file_delete();
}
run_event('adm_cache_file_delete_before');
$g5['title'] = '캐시파일 일괄삭제';
include_once('./admin.head.php');
?>
@@ -23,9 +30,12 @@ if (!$dir=@opendir(G5_DATA_PATH.'/cache')) {
}
$cnt=0;
echo '<ul>'.PHP_EOL;
echo '<ul class="session_del">'.PHP_EOL;
$files = glob(G5_DATA_PATH.'/cache/latest-*');
$content_files = glob(G5_DATA_PATH.'/cache/content-*');
$files = array_merge($files, $content_files);
if (is_array($files)) {
foreach ($files as $cache_file) {
$cnt++;
@@ -39,10 +49,11 @@ if (is_array($files)) {
}
}
run_event('adm_cache_file_delete');
echo '<li>완료됨</li></ul>'.PHP_EOL;
echo '<div class="local_desc01 local_desc"><p><strong>최신글 캐시파일 '.$cnt.'건 삭제 완료됐습니다.</strong><br>프로그램의 실행을 끝마치셔도 좋습니다.</p></div>'.PHP_EOL;
?>
<?php
include_once('./admin.tail.php');
?>
include_once('./admin.tail.php');
+2 -3
View File
@@ -23,7 +23,7 @@ if (!$dir=@opendir(G5_DATA_PATH.'/cache')) {
}
$cnt=0;
echo '<ul>'.PHP_EOL;
echo '<ul class="session_del">'.PHP_EOL;
$files = glob(G5_DATA_PATH.'/cache/?captcha-*');
if (is_array($files)) {
@@ -49,5 +49,4 @@ echo '<div class="local_desc01 local_desc"><p><strong>캡챠파일 '.$cnt.'건
?>
<?php
include_once('./admin.tail.php');
?>
include_once('./admin.tail.php');
+461 -209
View File
File diff suppressed because it is too large Load Diff
+192 -10
View File
@@ -4,29 +4,182 @@ include_once('./_common.php');
check_demo();
auth_check($auth[$sub_menu], 'w');
auth_check_menu($auth, $sub_menu, 'w');
if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.');
$cf_title = isset($_POST['cf_title']) ? strip_tags(clean_xss_attributes($_POST['cf_title'])) : '';
$cf_admin = isset($_POST['cf_admin']) ? clean_xss_tags($_POST['cf_admin'], 1, 1) : '';
$posts = array();
$mb = get_member($cf_admin);
if (!$mb['mb_id'])
if (! (isset($mb['mb_id']) && $mb['mb_id']))
alert('최고관리자 회원아이디가 존재하지 않습니다.');
check_token();
check_admin_token();
$cf_social_servicelist = !empty($_POST['cf_social_servicelist']) ? implode(',', $_POST['cf_social_servicelist']) : '';
$check_keys = array('cf_lg_mid', 'cf_lg_mert_key', 'cf_cert_kcb_cd', 'cf_cert_kcp_cd', 'cf_editor', 'cf_recaptcha_site_key', 'cf_recaptcha_secret_key', 'cf_naver_clientid', 'cf_naver_secret', 'cf_facebook_appid', 'cf_facebook_secret', 'cf_twitter_key', 'cf_twitter_secret', 'cf_google_clientid', 'cf_google_secret', 'cf_googl_shorturl_apikey', 'cf_kakao_rest_key', 'cf_kakao_client_secret', 'cf_kakao_js_apikey', 'cf_payco_clientid', 'cf_payco_secret');
foreach( $check_keys as $key ){
if ( isset($_POST[$key]) && $_POST[$key] ){
$posts[$key] = $_POST[$key] = preg_replace('/[^a-z0-9_\-\.]/i', '', $_POST[$key]);
}
}
$posts['cf_icode_server_port'] = $_POST['cf_icode_server_port'] = isset($_POST['cf_icode_server_port']) ? preg_replace('/[^0-9]/', '', $_POST['cf_icode_server_port']) : '7295';
if(isset($_POST['cf_intercept_ip']) && $_POST['cf_intercept_ip']){
$pattern = explode("\n", trim($_POST['cf_intercept_ip']));
for ($i=0; $i<count($pattern); $i++) {
$pattern[$i] = trim($pattern[$i]);
if (empty($pattern[$i]))
continue;
$pattern[$i] = str_replace(".", "\.", $pattern[$i]);
$pattern[$i] = str_replace("+", "[0-9\.]+", $pattern[$i]);
$pat = "/^{$pattern[$i]}$/";
if( preg_match($pat, $_SERVER['REMOTE_ADDR']) ){
alert("현재 접속 IP : ".$_SERVER['REMOTE_ADDR']." 가 차단될수 있기 때문에, 다른 IP를 입력해 주세요.");
}
}
}
$check_keys = array(
'cf_use_email_certify' => 'int',
'cf_use_homepage' => 'int',
'cf_req_homepage' => 'int',
'cf_use_tel' => 'int',
'cf_req_tel' => 'int',
'cf_use_hp' => 'int',
'cf_req_hp' => 'int',
'cf_use_addr' => 'int',
'cf_req_addr' => 'int',
'cf_use_signature' => 'int',
'cf_req_signature' => 'int',
'cf_use_profile' => 'int',
'cf_req_profile' => 'int',
'cf_register_level' => 'int',
'cf_register_point' => 'int',
'cf_icon_level' => 'int',
'cf_use_recommend' => 'int',
'cf_leave_day' => 'int',
'cf_search_part' => 'int',
'cf_email_use' => 'int',
'cf_email_wr_super_admin' => 'int',
'cf_email_wr_group_admin' => 'int',
'cf_email_wr_board_admin' => 'int',
'cf_email_wr_write' => 'int',
'cf_email_wr_comment_all' => 'int',
'cf_email_mb_super_admin' => 'int',
'cf_email_mb_member' => 'int',
'cf_email_po_super_admin' => 'int',
'cf_prohibit_id' => 'text',
'cf_prohibit_email' => 'text',
'cf_new_del' => 'int',
'cf_memo_del' => 'int',
'cf_visit_del' => 'int',
'cf_popular_del' => 'int',
'cf_use_member_icon' => 'int',
'cf_member_icon_size' => 'int',
'cf_member_icon_width' => 'int',
'cf_member_icon_height' => 'int',
'cf_member_img_size' => 'int',
'cf_member_img_width' => 'int',
'cf_member_img_height' => 'int',
'cf_login_minutes' => 'int',
'cf_formmail_is_member' => 'int',
'cf_page_rows' => 'int',
'cf_mobile_page_rows' => 'int',
'cf_social_login_use' => 'int',
'cf_cert_req' => 'int',
'cf_cert_use' => 'int',
'cf_cert_ipin' => 'char',
'cf_cert_hp' => 'char',
'cf_admin_email' => 'char',
'cf_admin_email_name' => 'char',
'cf_add_script' => 'text',
'cf_use_point' => 'int',
'cf_point_term' => 'int',
'cf_use_copy_log' => 'int',
'cf_login_point' => 'int',
'cf_cut_name' => 'int',
'cf_nick_modify' => 'int',
'cf_new_skin' => 'char',
'cf_new_rows' => 'int',
'cf_search_skin' => 'char',
'cf_connect_skin' => 'char',
'cf_faq_skin' => 'char',
'cf_read_point' => 'int',
'cf_write_point' => 'int',
'cf_comment_point' => 'int',
'cf_download_point' => 'int',
'cf_write_pages' => 'int',
'cf_mobile_pages' => 'int',
'cf_link_target' => 'char',
'cf_delay_sec' => 'int',
'cf_filter' => 'text',
'cf_possible_ip' => 'text',
'cf_analytics' => 'text',
'cf_add_meta' => 'text',
'cf_member_skin' => 'char',
'cf_image_extension' => 'char',
'cf_flash_extension' => 'char',
'cf_movie_extension' => 'char',
'cf_visit' => 'char',
'cf_stipulation' => 'text',
'cf_privacy' => 'text',
'cf_open_modify' => 'int',
'cf_memo_send_point' => 'int',
'cf_mobile_new_skin' => 'char',
'cf_mobile_search_skin' => 'char',
'cf_mobile_connect_skin' => 'char',
'cf_mobile_faq_skin' => 'char',
'cf_mobile_member_skin' => 'char',
'cf_captcha_mp3' => 'char',
'cf_cert_limit' => 'int',
'cf_sms_use' => 'char',
'cf_sms_type' => 'char',
'cf_icode_id' => 'char',
'cf_icode_pw' => 'char',
'cf_icode_server_ip' => 'char',
'cf_captcha' => 'char',
'cf_syndi_token' => '',
'cf_syndi_except' => ''
);
for($i=1;$i<=10;$i++){
$check_keys['cf_'.$i.'_subj'] = isset($_POST['cf_'.$i.'_subj']) ? $_POST['cf_'.$i.'_subj'] : '';
$check_keys['cf_'.$i] = isset($_POST['cf_'.$i]) ? $_POST['cf_'.$i] : '';
}
foreach( $check_keys as $k => $v ){
if( $v === 'int' ){
$posts[$key] = $_POST[$k] = isset($_POST[$k]) ? (int) $_POST[$k] : 0;
} else {
$posts[$key] = $_POST[$k] = isset($_POST[$k]) ? $_POST[$k] : '';
}
}
// 본인확인을 사용할 경우 아이핀, 휴대폰인증 중 하나는 선택되어야 함
if($_POST['cf_cert_use'] && !$_POST['cf_cert_ipin'] && !$_POST['cf_cert_hp'])
alert('본인확인을 위해 아이핀 또는 휴대폰 본인학인 서비스를 하나이상 선택해 주십시오');
if(!$_POST['cf_cert_use']) {
$posts[$key] = $_POST['cf_cert_ipin'] = '';
$posts[$key] = $_POST['cf_cert_hp'] = '';
}
$sql = " update {$g5['config_table']}
set cf_title = '{$_POST['cf_title']}',
cf_admin = '{$_POST['cf_admin']}',
set cf_title = '{$cf_title}',
cf_admin = '{$cf_admin}',
cf_admin_email = '{$_POST['cf_admin_email']}',
cf_admin_email_name = '{$_POST['cf_admin_email_name']}',
cf_include_index = '{$_POST['cf_include_index']}',
cf_include_head = '{$_POST['cf_include_head']}',
cf_include_tail = '{$_POST['cf_include_tail']}',
cf_add_script = '{$_POST['cf_add_script']}',
cf_use_point = '{$_POST['cf_use_point']}',
cf_point_term = '{$_POST['cf_point_term']}',
@@ -53,6 +206,9 @@ $sql = " update {$g5['config_table']}
cf_intercept_ip = '".trim($_POST['cf_intercept_ip'])."',
cf_analytics = '{$_POST['cf_analytics']}',
cf_add_meta = '{$_POST['cf_add_meta']}',
cf_syndi_token = '{$_POST['cf_syndi_token']}',
cf_syndi_except = '{$_POST['cf_syndi_except']}',
cf_bbs_rewrite = '{$_POST['cf_bbs_rewrite']}',
cf_member_skin = '{$_POST['cf_member_skin']}',
cf_use_homepage = '{$_POST['cf_use_homepage']}',
cf_req_homepage = '{$_POST['cf_req_homepage']}',
@@ -92,6 +248,9 @@ $sql = " update {$g5['config_table']}
cf_member_icon_size = '{$_POST['cf_member_icon_size']}',
cf_member_icon_width = '{$_POST['cf_member_icon_width']}',
cf_member_icon_height = '{$_POST['cf_member_icon_height']}',
cf_member_img_size = '{$_POST['cf_member_img_size']}',
cf_member_img_width = '{$_POST['cf_member_img_width']}',
cf_member_img_height = '{$_POST['cf_member_img_height']}',
cf_login_minutes = '{$_POST['cf_login_minutes']}',
cf_image_extension = '{$_POST['cf_image_extension']}',
cf_flash_extension = '{$_POST['cf_flash_extension']}',
@@ -120,15 +279,31 @@ $sql = " update {$g5['config_table']}
cf_cert_limit = '{$_POST['cf_cert_limit']}',
cf_cert_req = '{$_POST['cf_cert_req']}',
cf_sms_use = '{$_POST['cf_sms_use']}',
cf_sms_type = '{$_POST['cf_sms_type']}',
cf_icode_id = '{$_POST['cf_icode_id']}',
cf_icode_pw = '{$_POST['cf_icode_pw']}',
cf_icode_token_key = '{$_POST['cf_icode_token_key']}',
cf_icode_server_ip = '{$_POST['cf_icode_server_ip']}',
cf_icode_server_port = '{$_POST['cf_icode_server_port']}',
cf_googl_shorturl_apikey = '{$_POST['cf_googl_shorturl_apikey']}',
cf_kakao_js_apikey = '{$_POST['cf_kakao_js_apikey']}',
cf_facebook_appid = '{$_POST['cf_facebook_appid']}',
cf_facebook_secret = '{$_POST['cf_facebook_secret']}',
cf_twitter_key = '{$_POST['cf_twitter_key']}',
cf_twitter_secret = '{$_POST['cf_twitter_secret']}',
cf_social_login_use = '{$_POST['cf_social_login_use']}',
cf_naver_clientid = '{$_POST['cf_naver_clientid']}',
cf_naver_secret = '{$_POST['cf_naver_secret']}',
cf_google_clientid = '{$_POST['cf_google_clientid']}',
cf_google_secret = '{$_POST['cf_google_secret']}',
cf_kakao_rest_key = '{$_POST['cf_kakao_rest_key']}',
cf_kakao_client_secret = '{$_POST['cf_kakao_client_secret']}',
cf_social_servicelist = '{$cf_social_servicelist}',
cf_captcha = '{$_POST['cf_captcha']}',
cf_recaptcha_site_key = '{$_POST['cf_recaptcha_site_key']}',
cf_recaptcha_secret_key = '{$_POST['cf_recaptcha_secret_key']}',
cf_payco_clientid = '{$_POST['cf_payco_clientid']}',
cf_payco_secret = '{$_POST['cf_payco_secret']}',
cf_1_subj = '{$_POST['cf_1_subj']}',
cf_2_subj = '{$_POST['cf_2_subj']}',
cf_3_subj = '{$_POST['cf_3_subj']}',
@@ -153,5 +328,12 @@ sql_query($sql);
//sql_query(" OPTIMIZE TABLE `$g5[config_table]` ");
goto_url('./config_form.php', false);
?>
if( isset($_POST['cf_bbs_rewrite']) ){
g5_delete_all_cache();
}
run_event('admin_config_form_update');
update_rewrite_rules();
goto_url('./config_form.php', false);
+130 -11
View File
@@ -3,7 +3,9 @@ $sub_menu = '300600';
include_once('./_common.php');
include_once(G5_EDITOR_LIB);
auth_check($auth[$sub_menu], "w");
auth_check_menu($auth, $sub_menu, "w");
$co_id = isset($_REQUEST['co_id']) ? preg_replace('/[^a-z0-9_]/i', '', $_REQUEST['co_id']) : '';
// 상단, 하단 파일경로 필드 추가
if(!sql_query(" select co_include_head from {$g5['content_table']} limit 1 ", false)) {
@@ -19,8 +21,23 @@ if(!sql_query(" select co_tag_filter_use from {$g5['content_table']} limit 1 ",
sql_query(" update {$g5['content_table']} set co_tag_filter_use = '1' ");
}
// 모바일 내용 추가
if(!sql_query(" select co_mobile_content from {$g5['content_table']} limit 1", false)) {
sql_query(" ALTER TABLE `{$g5['content_table']}`
ADD `co_mobile_content` longtext NOT NULL AFTER `co_content` ", true);
}
// 스킨 설정 추가
if(!sql_query(" select co_skin from {$g5['content_table']} limit 1 ", false)) {
sql_query(" ALTER TABLE `{$g5['content_table']}`
ADD `co_skin` varchar(255) NOT NULL DEFAULT '' AFTER `co_mobile_content`,
ADD `co_mobile_skin` varchar(255) NOT NULL DEFAULT '' AFTER `co_skin` ", true);
sql_query(" update {$g5['content_table']} set co_skin = 'basic', co_mobile_skin = 'basic' ");
}
$html_title = "내용";
$g5['title'] = $html_title.' 관리';
$readonly = '';
if ($w == "u")
{
@@ -35,7 +52,18 @@ if ($w == "u")
else
{
$html_title .= ' 입력';
$co['co_html'] = 2;
$co = array(
'co_id' => '',
'co_subject' => '',
'co_content' => '',
'co_mobile_content' => '',
'co_include_head' => '',
'co_include_tail' => '',
'co_tag_filter_use' => 1,
'co_html' => 2,
'co_skin' => 'basic',
'co_mobile_skin' => 'basic'
);
}
include_once (G5_ADMIN_PATH.'/admin.head.php');
@@ -44,6 +72,7 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
<form name="frmcontentform" action="./contentformupdate.php" onsubmit="return frmcontentform_check(this);" method="post" enctype="MULTIPART/FORM-DATA" >
<input type="hidden" name="w" value="<?php echo $w; ?>">
<input type="hidden" name="co_html" value="1">
<input type="hidden" name="token" value="">
<div class="tbl_frm01 tbl_wrap">
<table>
@@ -58,7 +87,7 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
<td>
<?php echo help('20자 이내의 영문자, 숫자, _ 만 가능합니다.'); ?>
<input type="text" value="<?php echo $co['co_id']; ?>" name="co_id" id ="co_id" required <?php echo $readonly; ?> class="required <?php echo $readonly; ?> frm_input" size="20" maxlength="20">
<?php if ($w == 'u') { ?><a href="<?php echo G5_BBS_URL; ?>/content.php?co_id=<?php echo $co_id; ?>" class="btn_frmline">내용확인</a><?php } ?>
<?php if ($w == 'u') { ?><a href="<?php echo get_pretty_url('content', $co_id); ?>" class="btn_frmline">내용확인</a><?php } ?>
</td>
</tr>
<tr>
@@ -67,18 +96,36 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
</tr>
<tr>
<th scope="row">내용</th>
<td><?php echo editor_html('co_content', $co['co_content']); ?></td>
<td><?php echo editor_html('co_content', get_text(html_purifier($co['co_content']), 0)); ?></td>
</tr>
<tr>
<th scope="row">모바일 내용</th>
<td><?php echo editor_html('co_mobile_content', get_text(html_purifier($co['co_mobile_content']), 0)); ?></td>
</tr>
<tr>
<th scope="row"><label for="co_skin">스킨 디렉토리<strong class="sound_only">필수</strong></label></th>
<td>
<?php echo get_skin_select('content', 'co_skin', 'co_skin', $co['co_skin'], 'required'); ?>
</td>
</tr>
<tr>
<th scope="row"><label for="co_mobile_skin">모바일스킨 디렉토리<strong class="sound_only">필수</strong></label></th>
<td>
<?php echo get_mobile_skin_select('content', 'co_mobile_skin', 'co_mobile_skin', $co['co_mobile_skin'], 'required'); ?>
</td>
</tr>
<!--
<tr>
<th scope="row"><label for="co_tag_filter_use">태그 필터링 사용</label></th>
<td>
<?php echo help("내용에서 iframe 등의 태그를 사용하려면 사용안함으로 선택해 주십시오."); ?>
<select name="co_tag_filter_use" id="co_tag_filter_use">
<option value="1"<?php echo get_selected(1, $co['co_tag_filter_use']); ?>>사용함</option>
<option value="0"<?php echo get_selected(0, $co['co_tag_filter_use']); ?>>사용안함</option>
<option value="1"<?php echo get_selected($co['co_tag_filter_use'], 1); ?>>사용함</option>
<option value="0"<?php echo get_selected($co['co_tag_filter_use'], 0); ?>>사용안함</option>
</select>
</td>
</tr>
-->
<tr>
<th scope="row"><label for="co_include_head">상단 파일 경로</label></th>
<td>
@@ -93,12 +140,29 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
<input type="text" name="co_include_tail" value="<?php echo $co['co_include_tail']; ?>" id="co_include_tail" class="frm_input" size="60">
</td>
</tr>
<tr id="admin_captcha_box" style="display:none;">
<th scope="row">자동등록방지</th>
<td>
<?php
echo help("파일 경로를 입력 또는 수정시 캡챠를 반드시 입력해야 합니다.");
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php');
$captcha_html = captcha_html();
$captcha_js = chk_captcha_js();
echo $captcha_html;
?>
<script>
jQuery("#captcha_key").removeAttr("required").removeClass("required");
</script>
</td>
</tr>
<tr>
<th scope="row"><label for="co_himg">상단이미지</label></th>
<td>
<input type="file" name="co_himg" id="co_himg">
<?php
$himg = G5_DATA_PATH.'/content/'.$co['co_id'].'_h';
$himg_str = '';
if (file_exists($himg)) {
$size = @getimagesize($himg);
if($size[0] && $size[0] > 750)
@@ -123,6 +187,7 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
<input type="file" name="co_timg" id="co_timg">
<?php
$timg = G5_DATA_PATH.'/content/'.$co['co_id'].'_t';
$timg_str = '';
if (file_exists($timg)) {
$size = @getimagesize($timg);
if($size[0] && $size[0] > 750)
@@ -145,14 +210,63 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
</table>
</div>
<div class="btn_confirm01 btn_confirm">
<input type="submit" value="확인" class="btn_submit" accesskey="s">
<a href="./contentlist.php">목록</a>
<div class="btn_fixed_top">
<a href="./contentlist.php" class="btn btn_02">목록</a>
<input type="submit" value="확인" class="btn btn_submit" accesskey="s">
</div>
</form>
<?php
// [KVE-2018-2089] 취약점 으로 인해 파일 경로 수정시에만 자동등록방지 코드 사용
?>
<script>
var captcha_chk = false;
function use_captcha_check(){
$.ajax({
type: "POST",
url: g5_admin_url+"/ajax.use_captcha.php",
data: { admin_use_captcha: "1" },
cache: false,
async: false,
dataType: "json",
success: function(data) {
}
});
}
function frm_check_file(){
var co_include_head = "<?php echo $co['co_include_head']; ?>";
var co_include_tail = "<?php echo $co['co_include_tail']; ?>";
var head = jQuery.trim(jQuery("#co_include_head").val());
var tail = jQuery.trim(jQuery("#co_include_tail").val());
if(co_include_head !== head || co_include_tail !== tail){
// 캡챠를 사용합니다.
jQuery("#admin_captcha_box").show();
captcha_chk = true;
use_captcha_check();
return false;
} else {
jQuery("#admin_captcha_box").hide();
}
return true;
}
jQuery(function($){
if( window.self !== window.top ){ // frame 또는 iframe을 사용할 경우 체크
$("#co_include_head, #co_include_tail").on("change paste keyup", function(e) {
frm_check_file();
});
use_captcha_check();
}
});
function frmcontentform_check(f)
{
errmsg = "";
@@ -160,6 +274,7 @@ function frmcontentform_check(f)
<?php echo get_editor_js('co_content'); ?>
<?php echo chk_editor_js('co_content'); ?>
<?php echo get_editor_js('co_mobile_content'); ?>
check_field(f.co_id, "ID를 입력하세요.");
check_field(f.co_subject, "제목을 입력하세요.");
@@ -170,10 +285,14 @@ function frmcontentform_check(f)
errfld.focus();
return false;
}
if( captcha_chk ) {
<?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?>
}
return true;
}
</script>
<?php
include_once (G5_ADMIN_PATH.'/admin.tail.php');
?>
include_once (G5_ADMIN_PATH.'/admin.tail.php');
+91 -12
View File
@@ -6,9 +6,43 @@ if ($w == "u" || $w == "d")
check_demo();
if ($w == 'd')
auth_check($auth[$sub_menu], "d");
auth_check_menu($auth, $sub_menu, "d");
else
auth_check($auth[$sub_menu], "w");
auth_check_menu($auth, $sub_menu, "w");
check_admin_token();
$co_row = array('co_id'=>'', 'co_include_head'=>'', 'co_include_tail'=>'');
if ($w == "" || $w == "u")
{
if(isset($_REQUEST['co_id']) && preg_match("/[^a-z0-9_]/i", $_REQUEST['co_id'])) alert("ID 는 영문자, 숫자, _ 만 가능합니다.");
$sql = " select * from {$g5['content_table']} where co_id = '$co_id' ";
$co_row = sql_fetch($sql);
}
$co_id = isset($_REQUEST['co_id']) ? preg_replace('/[^a-z0-9_]/i', '', $_REQUEST['co_id']) : '';
$co_subject = isset($_POST['co_subject']) ? strip_tags(clean_xss_attributes($_POST['co_subject'])) : '';
$co_include_head = isset($_POST['co_include_head']) ? preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($_POST['co_include_head'], 0, 255)) : '';
$co_include_tail = isset($_POST['co_include_tail']) ? preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($_POST['co_include_tail'], 0, 255)) : '';
$co_tag_filter_use = isset($_POST['co_tag_filter_use']) ? (int) $_POST['co_tag_filter_use'] : 1;
$co_himg_del = (isset($_POST['co_himg_del']) && $_POST['co_himg_del']) ? 1 : 0;
$co_timg_del = (isset($_POST['co_timg_del']) && $_POST['co_timg_del']) ? 1 : 0;
$co_html = isset($_POST['co_html']) ? (int) $_POST['co_html'] : 0;
$co_content = isset($_POST['co_content']) ? $_POST['co_content'] : '';
$co_mobile_content = isset($_POST['co_mobile_content']) ? $_POST['co_mobile_content'] : '';
$co_skin = isset($_POST['co_skin']) ? clean_xss_tags($_POST['co_skin'], 1, 1) : '';
$co_mobile_skin = isset($_POST['co_mobile_skin']) ? clean_xss_tags($_POST['co_mobile_skin'], 1, 1) : '';
// 관리자가 자동등록방지를 사용해야 할 경우
if ((( isset($co_row['co_include_head']) && $co_row['co_include_head'] !== $co_include_head ) || ( isset($co_row['co_include_tail']) && $co_row['co_include_tail'] !== $co_include_tail )) && function_exists('get_admin_captcha_by') && get_admin_captcha_by()){
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php');
if (!chk_captcha()) {
alert('자동등록방지 숫자가 틀렸습니다.');
}
}
@mkdir(G5_DATA_PATH."/content", G5_DIR_PERMISSION);
@chmod(G5_DATA_PATH."/content", G5_DIR_PERMISSION);
@@ -16,21 +50,58 @@ else
if ($co_himg_del) @unlink(G5_DATA_PATH."/content/{$co_id}_h");
if ($co_timg_del) @unlink(G5_DATA_PATH."/content/{$co_id}_t");
$error_msg = '';
if( $co_include_head ){
$file_ext = pathinfo($co_include_head, PATHINFO_EXTENSION);
if( ! $file_ext || ! in_array($file_ext, array('php', 'htm', 'html')) || ! preg_match('/^.*\.(php|htm|html)$/i', $co_include_head) ) {
alert('상단 파일 경로의 확장자는 php, htm, html 만 허용합니다.');
}
}
if( $co_include_tail ){
$file_ext = pathinfo($co_include_tail, PATHINFO_EXTENSION);
if( ! $file_ext || ! in_array($file_ext, array('php', 'htm', 'html')) || ! preg_match('/^.*\.(php|htm|html)$/i', $co_include_tail) ) {
alert('하단 파일 경로의 확장자는 php, htm, html 만 허용합니다.');
}
}
if( $co_include_head && ! is_include_path_check($co_include_head, 1) ){
$co_include_head = '';
$error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 상단 파일 경로에 포함시킬수 없습니다.';
}
if( $co_include_tail && ! is_include_path_check($co_include_tail, 1) ){
$co_include_tail = '';
$error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 하단 파일 경로에 포함시킬수 없습니다.';
}
if( function_exists('filter_input_include_path') ){
$co_include_head = filter_input_include_path($co_include_head);
$co_include_tail = filter_input_include_path($co_include_tail);
}
$co_seo_title = exist_seo_title_recursive('content', generate_seo_title($co_subject), $g5['content_table'], $co_id);
$sql_common = " co_include_head = '$co_include_head',
co_include_tail = '$co_include_tail',
co_html = '$co_html',
co_tag_filter_use = '$co_tag_filter_use',
co_subject = '$co_subject',
co_content = '$co_content' ";
co_content = '$co_content',
co_mobile_content = '$co_mobile_content',
co_seo_title = '$co_seo_title',
co_skin = '$co_skin',
co_mobile_skin = '$co_mobile_skin' ";
if ($w == "")
{
//if(eregi("[^a-z0-9_]", $co_id)) alert("ID 는 영문자, 숫자, _ 만 가능합니다.");
if(preg_match("/[^a-z0-9_]/i", $co_id)) alert("ID 는 영문자, 숫자, _ 만 가능합니다.");
$sql = " select co_id from {$g5['content_table']} where co_id = '$co_id' ";
$row = sql_fetch($sql);
if ($row['co_id'])
$row = $co_row;
if (isset($row['co_id']) && $row['co_id'])
alert("이미 같은 ID로 등록된 내용이 있습니다.");
$sql = " insert {$g5['content_table']}
@@ -54,6 +125,11 @@ else if ($w == "d")
sql_query($sql);
}
if(function_exists('get_admin_captcha_by'))
get_admin_captcha_by('remove');
g5_delete_cache_by_prefix('content-'.$co_id.'-');
if ($w == "" || $w == "u")
{
if ($_FILES['co_himg']['name'])
@@ -69,10 +145,13 @@ if ($w == "" || $w == "u")
@chmod($dest_path, G5_FILE_PERMISSION);
}
goto_url("./contentform.php?w=u&amp;co_id=$co_id");
if( $error_msg ){
alert($error_msg, "./contentform.php?w=u&amp;co_id=$co_id");
} else {
goto_url("./contentform.php?w=u&amp;co_id=$co_id");
}
}
else
{
goto_url("./contentlist.php");
}
?>
}
+13 -14
View File
@@ -2,7 +2,7 @@
$sub_menu = '300600';
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check_menu($auth, $sub_menu, "r");
if( !isset($g5['content_table']) ){
die('<meta charset="utf-8">/data/dbconfig.php 파일에 <strong>$g5[\'content_table\'] = G5_TABLE_PREFIX.\'content\';</strong> 를 추가해 주세요.');
@@ -50,12 +50,12 @@ $result = sql_query($sql);
?>
<div class="local_ov01 local_ov">
<?php if ($page > 1) {?><a href="<?php echo $_SERVER['PHP_SELF']; ?>">처음으로</a><?php } ?>
<span>전체 내용 <?php echo $total_count; ?>건</span>
<?php if ($page > 1) {?><a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>">처음으로</a><?php } ?>
<span class="btn_ov01"><span class="ov_txt">전체 내용</span><span class="ov_num"> <?php echo $total_count; ?>건</span></span>
</div>
<div class="btn_add01 btn_add">
<a href="./contentform.php">내용 추가</a>
<div class="btn_fixed_top">
<a href="./contentform.php" class="btn btn_01">내용 추가</a>
</div>
<div class="tbl_head01 tbl_wrap">
@@ -69,16 +69,16 @@ $result = sql_query($sql);
</tr>
</thead>
<tbody>
<?php for ($i=0; $row=mysql_fetch_array($result); $i++) {
<?php for ($i=0; $row=sql_fetch_array($result); $i++) {
$bg = 'bg'.($i%2);
?>
<tr class="<?php echo $bg; ?>">
<td class="td_id"><?php echo $row['co_id']; ?></td>
<td><?php echo htmlspecialchars2($row['co_subject']); ?></td>
<td class="td_mng">
<a href="./contentform.php?w=u&amp;co_id=<?php echo $row['co_id']; ?>"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span>수정</a>
<a href="<?php echo G5_BBS_URL; ?>/content.php?co_id=<?php echo $row['co_id']; ?>"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span> 보기</a>
<a href="./contentformupdate.php?w=d&amp;co_id=<?php echo $row['co_id']; ?>" onclick="return delete_confirm();"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span>삭제</a>
<td class="td_left"><?php echo htmlspecialchars2($row['co_subject']); ?></td>
<td class="td_mng td_mng_l">
<a href="./contentform.php?w=u&amp;co_id=<?php echo $row['co_id']; ?>" class="btn btn_03"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span>수정</a>
<a href="<?php echo get_pretty_url('content', $row['co_id']); ?>" class="btn btn_02"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span> 보기</a>
<a href="./contentformupdate.php?w=d&amp;co_id=<?php echo $row['co_id']; ?>" onclick="return delete_confirm(this);" class="btn btn_02"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span>삭제</a>
</td>
</tr>
<?php
@@ -91,8 +91,7 @@ $result = sql_query($sql);
</table>
</div>
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['PHP_SELF']}?$qstr&amp;page="); ?>
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;page="); ?>
<?php
include_once (G5_ADMIN_PATH.'/admin.tail.php');
?>
include_once (G5_ADMIN_PATH.'/admin.tail.php');
+496 -392
View File
File diff suppressed because it is too large Load Diff
+8
View File
@@ -0,0 +1,8 @@
@charset "utf-8";
#preview_item{height:50px}
#preview_item ul{margin:0;padding:0;top:0;width:100%;margin:0 auto;text-align:center;background:#000;position:fixed;top:0;z-index:999999}
#preview_item ul li{list-style:none;display:inline-block;height:50px;line-height:50px;padding:0 2px;*display:inline; zoom:1;}
#preview_item ul li a{color:#ccc;padding:0 8px;height:32px;line-height:30px;background:none;font-weight:bold;border-radius:5px;display:inline-block;vertical-align:middle;border:1px solid #aaa;}
#preview_item ul li a:hover{background:#fff;text-decoration:none;border:1px solid #ccc;color:#333}
#preview_item ul li button{color:#fff;padding:0 8px;background:#FF5191;border-radius:3px;height:26px;line-height:24px;vertical-align:middle;border:none}
#preview_item ul li button:hover{background:#e40d5c;color:#fff;text-decoration:none;}
+192
View File
@@ -0,0 +1,192 @@
<?php
$sub_menu = '100410';
include_once('./_common.php');
auth_check_menu($auth, $sub_menu, 'r');
$g5['title'] = 'DB 업그레이드';
include_once('./admin.head.php');
$is_check = false;
//소셜 로그인 관련 필드 및 구글 리챕챠 필드 추가
if(!isset($config['cf_social_login_use'])) {
sql_query("ALTER TABLE `{$g5['config_table']}`
ADD `cf_social_login_use` tinyint(4) NOT NULL DEFAULT '0' AFTER `cf_googl_shorturl_apikey`,
ADD `cf_google_clientid` varchar(100) NOT NULL DEFAULT '' AFTER `cf_twitter_secret`,
ADD `cf_google_secret` varchar(100) NOT NULL DEFAULT '' AFTER `cf_google_clientid`,
ADD `cf_naver_clientid` varchar(100) NOT NULL DEFAULT '' AFTER `cf_google_secret`,
ADD `cf_naver_secret` varchar(100) NOT NULL DEFAULT '' AFTER `cf_naver_clientid`,
ADD `cf_kakao_rest_key` varchar(100) NOT NULL DEFAULT '' AFTER `cf_naver_secret`,
ADD `cf_social_servicelist` varchar(255) NOT NULL DEFAULT '' AFTER `cf_social_login_use`,
ADD `cf_payco_clientid` varchar(100) NOT NULL DEFAULT '' AFTER `cf_social_servicelist`,
ADD `cf_payco_secret` varchar(100) NOT NULL DEFAULT '' AFTER `cf_payco_clientid`,
ADD `cf_captcha` varchar(100) NOT NULL DEFAULT '' AFTER `cf_kakao_js_apikey`,
ADD `cf_recaptcha_site_key` varchar(100) NOT NULL DEFAULT '' AFTER `cf_captcha`,
ADD `cf_recaptcha_secret_key` varchar(100) NOT NULL DEFAULT '' AFTER `cf_recaptcha_site_key`
", true);
$is_check = true;
}
//소셜 로그인 관련 필드 카카오 클라이언트 시크릿 추가
if(!isset($config['cf_kakao_client_secret'])) {
sql_query("ALTER TABLE `{$g5['config_table']}`
ADD `cf_kakao_client_secret` varchar(100) NOT NULL DEFAULT '' AFTER `cf_kakao_rest_key`
", true);
$is_check = true;
}
// 회원 이미지 관련 필드 추가
if(!isset($config['cf_member_img_size'])) {
sql_query("ALTER TABLE `{$g5['config_table']}`
ADD `cf_member_img_size` int(11) NOT NULL DEFAULT '0' AFTER `cf_member_icon_height`,
ADD `cf_member_img_width` int(11) NOT NULL DEFAULT '0' AFTER `cf_member_img_size`,
ADD `cf_member_img_height` int(11) NOT NULL DEFAULT '0' AFTER `cf_member_img_width`
", true);
$sql = " update {$g5['config_table']} set cf_member_img_size = 50000, cf_member_img_width = 60, cf_member_img_height = 60 ";
sql_query($sql, false);
$is_check = true;
}
// 소셜 로그인 관리 테이블 없을 경우 생성
if( isset($g5['social_profile_table']) && !sql_query(" DESC {$g5['social_profile_table']} ", false)) {
sql_query(" CREATE TABLE IF NOT EXISTS `{$g5['social_profile_table']}` (
`mp_no` int(11) NOT NULL AUTO_INCREMENT,
`mb_id` varchar(255) NOT NULL DEFAULT '',
`provider` varchar(50) NOT NULL DEFAULT '',
`object_sha` varchar(45) NOT NULL DEFAULT '',
`identifier` varchar(255) NOT NULL DEFAULT '',
`profileurl` varchar(255) NOT NULL DEFAULT '',
`photourl` varchar(255) NOT NULL DEFAULT '',
`displayname` varchar(150) NOT NULL DEFAULT '',
`description` varchar(255) NOT NULL DEFAULT '',
`mp_register_day` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`mp_latest_day` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
UNIQUE KEY `mp_no` (`mp_no`),
KEY `mb_id` (`mb_id`),
KEY `provider` (`provider`)
) ", true);
$is_check = true;
}
// 게시판 짧은 주소
$sql = " select bo_table from {$g5['board_table']} ";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
$write_table = $g5['write_prefix'] . $row['bo_table']; // 게시판 테이블 전체이름
$sql = " SHOW COLUMNS FROM {$write_table} LIKE 'wr_seo_title' ";
$row = sql_fetch($sql);
if( !$row ){
sql_query("ALTER TABLE `{$write_table}`
ADD `wr_seo_title` varchar(200) NOT NULL DEFAULT '' AFTER `wr_content`,
ADD INDEX `wr_seo_title` (`wr_seo_title`);
", false);
$is_check = true;
}
}
// 내용 관리 짧은 주소
$sql = " SHOW COLUMNS FROM `{$g5['content_table']}` LIKE 'co_seo_title' ";
$row = sql_fetch($sql);
if( !$row ){
sql_query("ALTER TABLE `{$g5['content_table']}`
ADD `co_seo_title` varchar(200) NOT NULL DEFAULT '' AFTER `co_content`,
ADD INDEX `co_seo_title` (`co_seo_title`);
", false);
$is_check = true;
}
$sql = "select * from {$g5['content_table']} limit 100 ";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
if( ! $row['co_seo_title']){
$co_seo_title = exist_seo_title_recursive('content', generate_seo_title($row['co_subject']), $g5['content_table'], $row['co_id']);
$sql = " update {$g5['content_table']}
set co_seo_title = '$co_seo_title'
where co_id = '{$row['co_id']}' ";
sql_query($sql);
}
}
// 메모 테이블
$sql = " SHOW COLUMNS FROM `{$g5['memo_table']}` LIKE 'me_send_id' ";
$row = sql_fetch($sql);
if( !$row ){
sql_query("ALTER TABLE `{$g5['memo_table']}`
ADD `me_send_id` INT(11) NOT NULL DEFAULT '0',
ADD `me_type` ENUM('send','recv') NOT NULL DEFAULT 'recv',
ADD `me_send_ip` VARCHAR(100) NOT NULL DEFAULT '',
CHANGE COLUMN `me_id` `me_id` INT(11) NOT NULL AUTO_INCREMENT;
", false);
$is_check = true;
}
// 읽지 않은 메모 수 칼럼
if(!isset($member['mb_memo_cnt'])) {
sql_query(" ALTER TABLE `{$g5['member_table']}`
ADD `mb_memo_cnt` int(11) NOT NULL DEFAULT '0' AFTER `mb_memo_call`", true);
$is_check = true;
}
// 스크랩 읽은 수 추가
if(!isset($member['mb_scrap_cnt'])) {
sql_query(" ALTER TABLE `{$g5['member_table']}`
ADD `mb_scrap_cnt` int(11) NOT NULL DEFAULT '0' AFTER `mb_memo_cnt`", true);
$is_check = true;
}
// 짧은 URL 주소를 사용 여부 필드 추가
if (!isset($config['cf_bbs_rewrite'])) {
sql_query(" ALTER TABLE `{$g5['config_table']}`
ADD `cf_bbs_rewrite` tinyint(4) NOT NULL DEFAULT '0' AFTER `cf_link_target` ", true);
$is_check = true;
}
// 파일테이블에 추가 칼럼
$sql = " SHOW COLUMNS FROM `{$g5['board_file_table']}` LIKE 'bf_fileurl' ";
$row = sql_fetch($sql);
if( !$row ) {
sql_query(" ALTER TABLE `{$g5['board_file_table']}`
ADD COLUMN `bf_fileurl` VARCHAR(255) NOT NULL DEFAULT '' AFTER `bf_content`,
ADD COLUMN `bf_thumburl` VARCHAR(255) NOT NULL DEFAULT '' AFTER `bf_fileurl`,
ADD COLUMN `bf_storage` VARCHAR(50) NOT NULL DEFAULT '' AFTER `bf_thumburl`", true);
$is_check = true;
}
$is_check = run_replace('admin_dbupgrade', $is_check);
$db_upgrade_msg = $is_check ? 'DB 업그레이드가 완료되었습니다.' : '더 이상 업그레이드 할 내용이 없습니다.<br>현재 DB 업그레이드가 완료된 상태입니다.';
?>
<div class="local_desc01 local_desc">
<p>
<?php echo $db_upgrade_msg; ?>
</p>
</div>
<?php
include_once ('./admin.tail.php');
+16 -13
View File
@@ -3,13 +3,17 @@ $sub_menu = '300700';
include_once('./_common.php');
include_once(G5_EDITOR_LIB);
auth_check($auth[$sub_menu], "w");
auth_check_menu($auth, $sub_menu, "w");
$fm_id = isset($_GET['fm_id']) ? (int) $_GET['fm_id'] : 0;
$fa_id = isset($_GET['fa_id']) ? (int) $_GET['fa_id'] : 0;
$sql = " select * from {$g5['faq_master_table']} where fm_id = '$fm_id' ";
$fm = sql_fetch($sql);
$html_title = 'FAQ '.$fm['fm_subject'];;
$g5['title'] = $html_title.' 관리';
$html_title = 'FAQ '.$fm['fm_subject'];
$fa = array('fa_id'=>0, 'fm_id'=>0, 'fa_subject'=>'', 'fa_content'=>'', 'fa_order'=>0);
if ($w == "u")
{
@@ -19,13 +23,12 @@ if ($w == "u")
$sql = " select * from {$g5['faq_table']} where fa_id = '$fa_id' ";
$fa = sql_fetch($sql);
if (!$fa['fa_id']) alert("등록된 자료가 없습니다.");
$fa['fa_subject'] = htmlspecialchars2($fa['fa_subject']);
$fa['fa_content'] = htmlspecialchars2($fa['fa_content']);
}
else
$html_title .= ' 항목 입력';
$g5['title'] = $html_title.' 관리';
include_once (G5_ADMIN_PATH.'/admin.head.php');
?>
@@ -33,6 +36,7 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
<input type="hidden" name="w" value="<?php echo $w; ?>">
<input type="hidden" name="fm_id" value="<?php echo $fm_id; ?>">
<input type="hidden" name="fa_id" value="<?php echo $fa_id; ?>">
<input type="hidden" name="token" value="">
<div class="tbl_frm01 tbl_wrap">
<table>
@@ -52,19 +56,19 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
</tr>
<tr>
<th scope="row">질문</th>
<td><?php echo editor_html('fa_subject', $fa['fa_subject']); ?></td>
<td><?php echo editor_html('fa_subject', get_text(html_purifier($fa['fa_subject']), 0)); ?></td>
</tr>
<tr>
<th scope="row">답변</th>
<td><?php echo editor_html('fa_content', $fa['fa_content']); ?></td>
<td><?php echo editor_html('fa_content', get_text(html_purifier($fa['fa_content']), 0)); ?></td>
</tr>
</tbody>
</table>
</div>
<div class="btn_confirm01 btn_confirm">
<input type="submit" value="확인" class="btn_submit" accesskey="s">
<a href="./faqlist.php?fm_id=<?php echo $fm_id; ?>">목록</a>
<div class="btn_fixed_top">
<input type="submit" value="확인" class="btn_submit btn" accesskey="s">
<a href="./faqlist.php?fm_id=<?php echo $fm_id; ?>" class="btn btn_02">목록</a>
</div>
</form>
@@ -95,5 +99,4 @@ function frmfaqform_check(f)
</script>
<?php
include_once (G5_ADMIN_PATH.'/admin.tail.php');
?>
include_once (G5_ADMIN_PATH.'/admin.tail.php');
+13 -6
View File
@@ -5,10 +5,18 @@ include_once('./_common.php');
if ($w == "u" || $w == "d")
check_demo();
if ($W == 'd')
auth_check($auth[$sub_menu], "d");
if ($w == 'd')
auth_check_menu($auth, $sub_menu, "d");
else
auth_check($auth[$sub_menu], "w");
auth_check_menu($auth, $sub_menu, "w");
check_admin_token();
$fm_id = isset($_REQUEST['fm_id']) ? (int) $_REQUEST['fm_id'] : 0;
$fa_id = isset($_REQUEST['fa_id']) ? (int) $_REQUEST['fa_id'] : 0;
$fa_subject = isset($_POST['fa_subject']) ? $_POST['fa_subject'] : '';
$fa_content = isset($_POST['fa_content']) ? $_POST['fa_content'] : '';
$fa_order = isset($_POST['fa_order']) ? (int) $_POST['fa_order'] : 0;
$sql_common = " fa_subject = '$fa_subject',
fa_content = '$fa_content',
@@ -21,7 +29,7 @@ if ($w == "")
$sql_common ";
sql_query($sql);
$fa_id = mysql_insert_id();
$fa_id = sql_insert_id();
}
else if ($w == "u")
{
@@ -39,5 +47,4 @@ else if ($w == "d")
if ($w == 'd')
goto_url("./faqlist.php?fm_id=$fm_id");
else
goto_url("./faqform.php?w=u&amp;fm_id=$fm_id&amp;fa_id=$fa_id");
?>
goto_url("./faqform.php?w=u&amp;fm_id=$fm_id&amp;fa_id=$fa_id");
+21 -17
View File
@@ -2,10 +2,16 @@
$sub_menu = '300700';
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check_menu($auth, $sub_menu, "r");
$g5['title'] = 'FAQ 상세관리';
if ($fm_subject) $g5['title'] .= ' : '.$fm_subject;
if (isset($_REQUEST['fm_subject'])){
$fm_subject = clean_xss_tags($_REQUEST['fm_subject'], 1, 1, 255);
$g5['title'] .= ' : '.$fm_subject;
}
$fm_id = (int) $fm_id;
include_once (G5_ADMIN_PATH.'/admin.head.php');
$sql = " select * from {$g5['faq_master_table']} where fm_id = '$fm_id' ";
@@ -16,14 +22,14 @@ $sql_common = " from {$g5['faq_table']} where fm_id = '$fm_id' ";
// 테이블의 전체 레코드수만 얻음
$sql = " select count(*) as cnt " . $sql_common;
$row = sql_fetch($sql);
$total_count = $row[cnt];
$total_count = $row['cnt'];
$sql = "select * $sql_common order by fa_order , fa_id ";
$result = sql_query($sql);
?>
<div class="local_ov01 local_ov">
등록된 FAQ 상세내용 <?php echo $total_count; ?>건
<span class="btn_ov01"><span class="ov_txt"> 등록된 FAQ 상세내용</span><span class="ov_num"> <?php echo $total_count; ?>건</span></span>
</div>
<div class="local_desc01 local_desc">
@@ -33,8 +39,9 @@ $result = sql_query($sql);
</ol>
</div>
<div class="btn_add01 btn_add">
<a href="./faqform.php?fm_id=<?php echo $fm['fm_id']; ?>">FAQ 상세내용 추가</a>
<div class="btn_fixed_top">
<a href="./faqmasterlist.php" class="btn btn_02">FAQ 관리</a>
<a href="./faqform.php?fm_id=<?php echo $fm['fm_id']; ?>" class="btn btn_01">FAQ 상세내용 추가</a>
</div>
<div class="tbl_head01 tbl_wrap">
@@ -53,7 +60,7 @@ $result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$row1 = sql_fetch(" select COUNT(*) as cnt from {$g5['faq_table']} where fm_id = '{$row['fm_id']}' ");
$cnt = $row1[cnt];
$cnt = $row1['cnt'];
$s_mod = icon("수정", "");
$s_del = icon("삭제", "");
@@ -61,15 +68,17 @@ $result = sql_query($sql);
$num = $i + 1;
$bg = 'bg'.($i%2);
$fa_subject = conv_content($row['fa_subject'], 1);
?>
<tr class="<?php echo $bg; ?>">
<td class="td_num"><?php echo $num; ?></td>
<td><?php echo stripslashes($row['fa_subject']); ?></td>
<td class="td_left"><?php echo $fa_subject; ?></td>
<td class="td_num"><?php echo $row['fa_order']; ?></td>
<td class="td_mngsmall">
<a href="./faqform.php?w=u&amp;fm_id=<?php echo $row['fm_id']; ?>&amp;fa_id=<?php echo $row['fa_id']; ?>"><span class="sound_only"><?php echo stripslashes($row['fa_subject']); ?> </span>수정</a>
<a href="javascript:del('./faqformupdate.php?w=d&amp;fm_id=<?php echo $row['fm_id']; ?>&amp;fa_id=<?php echo $row['fa_id']; ?>');"><span class="sound_only"><?php echo stripslashes($row['fa_subject']); ?> </span>삭제</a>
<td class="td_mng td_mng_m">
<a href="./faqform.php?w=u&amp;fm_id=<?php echo $row['fm_id']; ?>&amp;fa_id=<?php echo $row['fa_id']; ?>" class="btn btn_03"><span class="sound_only"><?php echo $fa_subject; ?> </span>수정</a>
<a href="./faqformupdate.php?w=d&amp;fm_id=<?php echo $row['fm_id']; ?>&amp;fa_id=<?php echo $row['fa_id']; ?>" onclick="return delete_confirm(this);" class="btn btn_02"><span class="sound_only"><?php echo $fa_subject; ?> </span>삭제</a>
</td>
</tr>
@@ -85,11 +94,6 @@ $result = sql_query($sql);
</div>
<div class="btn_confirm01 btn_confirm">
<a href="./faqmasterlist.php">FAQ 관리</a>
</div>
<?php
include_once (G5_ADMIN_PATH.'/admin.tail.php');
?>
include_once (G5_ADMIN_PATH.'/admin.tail.php');
+17 -11
View File
@@ -3,10 +3,11 @@ $sub_menu = '300700';
include_once('./_common.php');
include_once(G5_EDITOR_LIB);
auth_check($auth[$sub_menu], "w");
auth_check_menu($auth, $sub_menu, "w");
$html_title = 'FAQ';
$g5['title'] = $html_title.' 관리';
$fm_id = isset($_GET['fm_id']) ? preg_replace('/[^0-9]/', '', $_GET['fm_id']) : 0;
if ($w == "u")
{
@@ -20,8 +21,11 @@ if ($w == "u")
else
{
$html_title .= ' 입력';
$fm = array('fm_order'=>'', 'fm_subject'=>'', 'fm_id'=>0, 'fm_head_html'=> '', 'fm_tail_html'=> '', 'fm_mobile_head_html' => '', 'fm_mobile_tail_html' => '');
}
$g5['title'] = $html_title.' 관리';
// 모바일 상하단 내용 필드추가
if(!sql_query(" select fm_mobile_head_html from {$g5['faq_master_table']} limit 1 ", false)) {
sql_query(" ALTER TABLE `{$g5['faq_master_table']}`
@@ -35,6 +39,7 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
<form name="frmfaqmasterform" action="./faqmasterformupdate.php" onsubmit="return frmfaqmasterform_check(this);" method="post" enctype="MULTIPART/FORM-DATA">
<input type="hidden" name="w" value="<?php echo $w; ?>">
<input type="hidden" name="fm_id" value="<?php echo $fm_id; ?>">
<input type="hidden" name="token" value="">
<div class="tbl_frm01 tbl_wrap">
<table>
@@ -67,6 +72,7 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
<input type="file" name="fm_himg" id="fm_himg">
<?php
$himg = G5_DATA_PATH.'/faq/'.$fm['fm_id'].'_h';
$himg_str = '';
if (file_exists($himg)) {
$size = @getimagesize($himg);
if($size[0] && $size[0] > 750)
@@ -91,6 +97,7 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
<input type="file" name="fm_timg" id="fm_timg">
<?php
$timg = G5_DATA_PATH.'/faq/'.$fm['fm_id'].'_t';
$timg_str = '';
if (file_exists($timg)) {
$size = @getimagesize($timg);
if($size[0] && $size[0] > 750)
@@ -112,34 +119,34 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
<tr>
<th scope="row">상단 내용</th>
<td>
<?php echo editor_html('fm_head_html', $fm['fm_head_html']); ?>
<?php echo editor_html('fm_head_html', get_text(html_purifier($fm['fm_head_html']), 0)); ?>
</td>
</tr>
<tr>
<th scope="row">하단 내용</th>
<td>
<?php echo editor_html('fm_tail_html', $fm['fm_tail_html']); ?>
<?php echo editor_html('fm_tail_html', get_text(html_purifier($fm['fm_tail_html']), 0)); ?>
</td>
</tr>
<tr>
<th scope="row">모바일상단 내용</th>
<td>
<?php echo editor_html('fm_mobile_head_html', $fm['fm_mobile_head_html']); ?>
<?php echo editor_html('fm_mobile_head_html', get_text(html_purifier($fm['fm_mobile_head_html']), 0)); ?>
</td>
</tr>
<tr>
<th scope="row">모바일하단 내용</th>
<td>
<?php echo editor_html('fm_mobile_tail_html', $fm['fm_mobile_tail_html']); ?>
<?php echo editor_html('fm_mobile_tail_html', get_text(html_purifier($fm['fm_mobile_tail_html']), 0)); ?>
</td>
</tr>
</tbody>
</table>
</div>
<div class="btn_confirm01 btn_confirm">
<input type="submit" value="확인" class="btn_submit" accesskey="s">
<a href="./faqmasterlist.php">목록</a>
<div class="btn_fixed_top">
<a href="./faqmasterlist.php" class="btn btn_02">목록</a>
<input type="submit" value="확인" class="btn_submit btn" accesskey="s">
</div>
</form>
@@ -157,5 +164,4 @@ function frmfaqmasterform_check(f)
</script>
<?php
include_once (G5_ADMIN_PATH.'/admin.tail.php');
?>
include_once (G5_ADMIN_PATH.'/admin.tail.php');
+17 -6
View File
@@ -5,14 +5,26 @@ include_once('./_common.php');
if ($w == "u" || $w == "d")
check_demo();
if ($W == 'd')
auth_check($auth[$sub_menu], "d");
if ($w == 'd')
auth_check_menu($auth, $sub_menu, "d");
else
auth_check($auth[$sub_menu], "w");
auth_check_menu($auth, $sub_menu, "w");
check_admin_token();
@mkdir(G5_DATA_PATH."/faq", G5_DIR_PERMISSION);
@chmod(G5_DATA_PATH."/faq", G5_DIR_PERMISSION);
$fm_id = isset($_REQUEST['fm_id']) ? (int) $_REQUEST['fm_id'] : 0;
$fm_himg_del = isset($_POST['fm_himg_del']) ? (int) $_POST['fm_himg_del'] : 0;
$fm_timg_del = isset($_POST['fm_timg_del']) ? (int) $_POST['fm_timg_del'] : 0;
$fm_subject = isset($_POST['fm_subject']) ? strip_tags(clean_xss_attributes($_POST['fm_subject'])) : '';
$fm_head_html = isset($_POST['fm_head_html']) ? $_POST['fm_head_html'] : '';
$fm_tail_html = isset($_POST['fm_tail_html']) ? $_POST['fm_tail_html'] : '';
$fm_mobile_head_html = isset($_POST['fm_mobile_head_html']) ? $_POST['fm_mobile_head_html'] : '';
$fm_mobile_tail_html = isset($_POST['fm_mobile_tail_html']) ? $_POST['fm_mobile_tail_html'] : '';
$fm_order = isset($_POST['fm_order']) ? (int) $_POST['fm_order'] : 0;
if ($fm_himg_del) @unlink(G5_DATA_PATH."/faq/{$fm_id}_h");
if ($fm_timg_del) @unlink(G5_DATA_PATH."/faq/{$fm_id}_t");
@@ -31,7 +43,7 @@ if ($w == "")
$sql = " insert {$g5['faq_master_table']} $sql_common ";
sql_query($sql);
$fm_id = mysql_insert_id();
$fm_id = sql_insert_id();
}
else if ($w == "u")
{
@@ -68,5 +80,4 @@ if ($w == "" || $w == "u")
goto_url("./faqmasterform.php?w=u&amp;fm_id=$fm_id");
}
else
goto_url("./faqmasterlist.php");
?>
goto_url("./faqmasterlist.php");
+13 -14
View File
@@ -2,7 +2,7 @@
$sub_menu = '300700';
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check_menu($auth, $sub_menu, "r");
//dbconfig파일에 $g5['faq_table'] , $g5['faq_master_table'] 배열변수가 있는지 체크
if( !isset($g5['faq_table']) || !isset($g5['faq_master_table']) ){
@@ -64,8 +64,8 @@ $result = sql_query($sql);
?>
<div class="local_ov01 local_ov">
<?php if ($page > 1) {?><a href="<?php echo $_SERVER['PHP_SELF']; ?>">처음으로</a><?php } ?>
<span>전체 FAQ <?php echo $total_count; ?>건</span>
<?php if ($page > 1) {?><a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>">처음으로</a><?php } ?>
<span class="btn_ov01"><span class="ov_txt"> 전체 FAQ </span><span class="ov_num"> <?php echo $total_count; ?>건</span></span>
</div>
<div class="local_desc01 local_desc">
@@ -76,8 +76,8 @@ $result = sql_query($sql);
</ol>
</div>
<div class="btn_add01 btn_add">
<a href="./faqmasterform.php">FAQ추가</a>
<div class="btn_fixed_top">
<a href="./faqmasterform.php" class="btn_01 btn">FAQ추가</a>
</div>
<div class="tbl_head01 tbl_wrap">
@@ -93,7 +93,7 @@ $result = sql_query($sql);
</tr>
</thead>
<tbody>
<?php for ($i=0; $row=mysql_fetch_array($result); $i++) {
<?php for ($i=0; $row=sql_fetch_array($result); $i++) {
$sql1 = " select COUNT(*) as cnt from {$g5['faq_table']} where fm_id = '{$row['fm_id']}' ";
$row1 = sql_fetch($sql1);
$cnt = $row1['cnt'];
@@ -101,13 +101,13 @@ $result = sql_query($sql);
?>
<tr class="<?php echo $bg; ?>">
<td class="td_num"><?php echo $row['fm_id']; ?></td>
<td><a href="./faqlist.php?fm_id=<?php echo $row['fm_id']; ?>&amp;fm_subject=<?php echo $row['fm_subject']; ?>"><?php echo stripslashes($row['fm_subject']); ?></a></td>
<td class="td_left"><a href="./faqlist.php?fm_id=<?php echo $row['fm_id']; ?>&amp;fm_subject=<?php echo $row['fm_subject']; ?>"><?php echo stripslashes($row['fm_subject']); ?></a></td>
<td class="td_num"><?php echo $cnt; ?></td>
<td class="td_num"><?php echo $row['fm_order']?></td>
<td class="td_mng">
<a href="./faqmasterform.php?w=u&amp;fm_id=<?php echo $row['fm_id']; ?>"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>수정</a>
<a href="<?php echo G5_BBS_URL; ?>/faq.php?fm_id=<?php echo $row['fm_id']; ?>"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>보기</a>
<a href="./faqmasterformupdate.php?w=d&amp;fm_id=<?php echo $row['fm_id']; ?>" onclick="return delete_confirm();"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>삭제</a>
<td class="td_mng td_mng_l">
<a href="./faqmasterform.php?w=u&amp;fm_id=<?php echo $row['fm_id']; ?>" class="btn btn_03"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>수정</a>
<a href="<?php echo G5_BBS_URL; ?>/faq.php?fm_id=<?php echo $row['fm_id']; ?>" class="btn btn_02"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>보기</a>
<a href="./faqmasterformupdate.php?w=d&amp;fm_id=<?php echo $row['fm_id']; ?>" onclick="return delete_confirm(this);" class="btn btn_02"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>삭제</a>
</td>
</tr>
<?php
@@ -121,8 +121,7 @@ $result = sql_query($sql);
</table>
</div>
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['PHP_SELF']}?$qstr&amp;page="); ?>
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;page="); ?>
<?php
include_once (G5_ADMIN_PATH.'/admin.tail.php');
?>
include_once (G5_ADMIN_PATH.'/admin.tail.php');
Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 B

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 957 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 962 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 972 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Some files were not shown because too many files have changed in this diff Show More