Compare commits

..
174 Commits
Author SHA1 Message Date
thisgun ff0bfd168b Merge branch 'g54' of github.com:gnuboard/g5 into 54 2019-10-01 17:39:58 +09:00
thisgun 355ddc5c57 5.4.0.2 버전 수정 2019-10-01 16:16:04 +09:00
thisgun 3979ac6dbb 게시판 order by 지정시 오류 수정 2019-10-01 16:04:37 +09:00
thisgun e3c68f982b 일부 css 수정 2019-10-01 12:03:09 +09:00
thisgun f98eba0a9d 충돌 수정 2019-09-30 18:16:28 +09:00
thisgun 5b25e110c4 일부 훅 추가 2019-09-30 15:52:19 +09:00
thisgun 6157fe8b3b hook 구문을 더 추가 2019-09-30 11:01:24 +09:00
thisgun 91df653dfb hook 코드 추가 2019-09-20 11:03:48 +09:00
thisgun 0bc4ca7b47 일부 후킹 추가 2019-09-18 15:50:59 +09:00
thisgun 9a68f86230 게시글 수정시 글 제목을 수정했을때 나타나는 오류 수정 2019-09-17 19:08:26 +09:00
thisgun a0a2ca2a9f 5.3.3.3 버전 merge 2019-09-17 18:24:39 +09:00
thisgun 0042ab0144 5.3 버전 merge 2019-09-17 18:24:02 +09:00
thisgun 545d081f2d 잘못된 코드 수정 2019-09-10 10:54:34 +09:00
thisgun a0b9cd39cb hook 추가 및 여러 코드 수정 2019-08-09 09:24:08 +09:00
thisgun 35ca744794 충돌수정 2019-08-07 17:12:51 +09:00
thisgun 75328dff71 Merge branch 'g54' of github.com:gnuboard/g5 into 54 2019-07-19 20:22:44 +09:00
thisgun 7163838706 회원찾기 form 오류 수정 2019-07-19 20:15:39 +09:00
thisgun 31e98a85b8 Merge branch 'master' of github.com:gnuboard/g5 into g54 2019-07-19 20:03:30 +09:00
thisgun 05981661e7 5.4.0.1 2019-07-19 17:52:30 +09:00
thisgun e0cb64e0a7 Merge branch 'g54' of github.com:gnuboard/g5 into 54 2019-07-19 10:50:52 +09:00
thisgun d663ca90d3 충돌 수정 2019-07-19 10:49:10 +09:00
thisgun 0eea266500 잘못된 링크 코드 변경 2019-07-19 10:48:01 +09:00
thisgun b8ba893090 Merge branch 'g54' of github.com:gnuboard/g5 into 54 2019-06-24 17:30:45 +09:00
thisgun e632542c75 충돌 수정 2019-06-24 12:07:46 +09:00
thisgun 26bbc9829d 최신글 라이브러리 잘못된 코드 수정 2019-06-10 12:14:02 +09:00
thisgun f7c8fa4a8e 잘못된 BBS 폴더 지정 구문 수정 2019-05-31 15:28:51 +09:00
thisgun 12f53f4c3a master 충돌 수정 2019-05-30 16:34:46 +09:00
thisgun 3a8e3a4654 글 제목 체크 추가 2019-05-29 17:54:45 +09:00
thisgun 2bd6a639d4 충돌 수정 2019-05-08 14:13:50 +09:00
thisgun 78dc1a91d3 잘못된 코드 수정 2019-05-08 14:10:38 +09:00
thisgun f8f33e3439 5.4 베타버전 추가 및 시작 2019-05-03 21:30:42 +09:00
thisgun 85fcbbbdb7 패스워드 호환 코드 수정 2019-05-03 20:55:09 +09:00
thisgun 15c73972de 이전 패스워드 호환 2019-05-03 20:38:06 +09:00
thisgun e8730704c1 테마 이미지 수정 2019-05-03 17:08:21 +09:00
thisgun 934e944fad 잘못된 코드 수정 2019-05-03 11:07:58 +09:00
thisgun 66e0880ebb 잘못된 코드 수정2 2019-04-24 18:18:35 +09:00
thisgun 99f09a5bf1 잘못된 로그인 스킨 코드 수정 2019-04-24 15:44:48 +09:00
thisgun 96dd706456 잘못된 코드 수정 2019-04-22 17:54:35 +09:00
thisgun dc27423fe6 rewrite 설정 다시 수정 2019-03-21 12:26:30 +09:00
thisgun c086efa040 rewrite 표시 코드 수정 2019-03-21 12:06:06 +09:00
thisgun 41ff66d35c Merge branch 'g54' of github.com:gnuboard/g5 into g54 2019-03-21 11:20:09 +09:00
thisgun 1ad87b3e6c rewrite 설정 수정 2019-03-21 11:09:37 +09:00
thisgun d26ee21322 Merge branch 'g54' of github.com:gnuboard/g5 into g54 2019-03-20 16:43:41 +09:00
thisgun e19e856c53 5.4 버전 테마 수정중 2019-03-20 16:19:17 +09:00
thisgun 75a1289b1a 5.4 버전 추가수정 2019-03-20 15:39:55 +09:00
thisgun 9f26c993a1 5.4 버전 수정중 2019-03-20 15:39:43 +09:00
thisgun eb803ae9c9 hook 함수명 수정 2019-03-18 16:19:11 +09:00
thisgun 9af0d855b3 Merge branch 'master' of https://github.com/gnuboard/g5 into g54_theme2 2019-03-14 12:07:59 +09:00
thisgun 352856759d Merge branch 'master' of https://github.com/gnuboard/g5 into g54_theme2 2019-02-18 15:14:45 +09:00
thisgun 0d968a52fa Merge branch 'g54_theme2' of https://github.com/gnuboard/g5 into g54_theme2 2019-01-21 14:10:53 +09:00
thisgun 172b3dba98 테마 메뉴 관련 코드 수정 2019-01-21 14:09:52 +09:00
thisgun 63f4d7973c 충돌 수정 2019-01-18 18:15:18 +09:00
thisgun dc21287913 master 충돌 수정 2019-01-18 17:53:17 +09:00
thisgun c5593c56be 최신글 코드 수정 2019-01-15 15:32:48 +09:00
thisgun 29c4330e7a Merge branch 'master' of github.com:gnuboard/g5 into g54_theme2 2019-01-15 15:31:02 +09:00
leebokyung 579190c786 공지가 없습니다 추가 2019-01-11 16:08:07 +09:00
leebokyung 266772d6dc 포인트 팝업 색상 변경 2019-01-11 15:51:59 +09:00
leebokyung 61c784eb57 오류검사 2019-01-11 15:33:44 +09:00
leebokyung 2a8a283a77 갤러리 글자크기 2019-01-11 14:57:42 +09:00
thisgun 6a1f6c89f6 오브젝트명 수정 2019-01-04 18:45:56 +09:00
thisgun 85cd83ecf1 Merge branch 'g54_theme2' of https://github.com/gnuboard/g5 into g54_theme2 2019-01-04 17:46:53 +09:00
thisgun 95c5b5ecd8 코드 수정 2019-01-04 17:46:42 +09:00
thisgun bfdb44324f 일부 코드 수정 2019-01-04 17:46:02 +09:00
thisgun 2e84d5fbf4 필요없는 구문 수정 2019-01-04 15:30:05 +09:00
thisgun 7539f2517c Merge branch 'g54_theme2' of https://github.com/gnuboard/g5 into g54_theme2 2019-01-04 11:55:44 +09:00
thisgun e43fc63e42 Merge branch 'g54_theme2' of https://github.com/gnuboard/g5 into g54_theme2 2019-01-04 11:44:23 +09:00
thisgun 371788ee9f Merge branch 'g54' of https://github.com/gnuboard/g5 into g54 2019-01-04 11:43:56 +09:00
thisgun 7c01ae4619 일부 틀린 구문 수정 2019-01-04 11:36:46 +09:00
thisgun 6766ef2e1f 5.4 버전 테마 수정중 2018-12-31 19:30:49 +09:00
thisgun bf7d907ae7 모바일 슬라이더 적용중 2018-12-28 17:33:50 +09:00
thisgun b83f82b3d7 master 와 merge 2018-12-26 16:05:22 +09:00
thisgun 7f62fffca4 버전 5.4 에 적용코드 2018-12-26 16:01:46 +09:00
thisgun d38a44ba62 rss 주소 수정 2018-12-13 11:34:42 +09:00
thisgun 641ede57ef 쪽지관련 수정중 2018-12-13 11:32:14 +09:00
thisgun 39f944e684 Merge branch 'master' of github.com:gnuboard/g5 into g54 2018-12-06 09:46:23 +09:00
leebokyung b71274a429 모바일qa 2018-12-04 17:09:08 +09:00
leebokyung 11dc38b883 모바일 qa input 전체 수정 2018-12-04 15:48:44 +09:00
leebokyung ce50abd4b5 안쓰는 이미지 삭제2 2018-12-04 15:03:14 +09:00
leebokyung ea478310d9 안쓰는 이미지 삭제, 웹표준 검사 pc 2018-12-04 14:51:59 +09:00
leebokyung e1a510b013 갤러리 리스트 아이콘 2018-12-04 14:04:05 +09:00
leebokyung 8aad35f416 모바일 테스트 2018-12-04 12:09:20 +09:00
leebokyung d57372907d 모바일 팝업 여백 2018-12-04 11:37:01 +09:00
leebokyung ee6948e580 모바일 테스트중 2018-12-04 11:30:37 +09:00
leebokyung 8b0c24b8c3 비회원 댓글쓰기 2018-12-04 11:17:14 +09:00
leebokyung 6a4ac064c0 투표하기 클라스 추가 2018-12-04 11:05:36 +09:00
leebokyung 09be21e31f 회원가입 폼 input 2018-12-04 10:03:15 +09:00
leebokyung 038087546a IE 수정 2018-12-04 09:58:09 +09:00
leebokyung e8f233c280 모바일 파일첨부 틀어짐 2018-12-03 17:59:23 +09:00
leebokyung dc5adce95f 모바일 테스트중 2018-12-03 17:51:37 +09:00
leebokyung 8d14c95e5c 최신글 모바일 링크 변경 2018-12-03 17:46:26 +09:00
leebokyung 546424a045 모바일 게시판 뒤로가기 추가 2018-12-03 17:24:31 +09:00
leebokyung cd2deb541f 최신글 basic 글자크기 조절 2018-12-03 17:07:48 +09:00
leebokyung 2acac99875 최신댓글 수정 2018-12-03 17:04:40 +09:00
leebokyung b08204d5a8 투표 input radio 색상 변경, 피씨 테스트 수정중 2018-12-03 16:44:06 +09:00
leebokyung 6ee46fd0c9 설문조사 팝업 여백 2018-12-03 16:34:28 +09:00
leebokyung 95234c0da5 공유하기 틀어진것 잡음 2018-12-03 16:30:19 +09:00
leebokyung fb7fd98b77 버튼목록 팝업처리 백그라운드 이미지2 2018-12-03 16:27:36 +09:00
leebokyung da14696e0c 버튼목록 팝업처리 백그라운드 이미지 2018-12-03 16:26:48 +09:00
leebokyung b8f5356c93 댓글 비밀글 2018-12-03 16:12:15 +09:00
leebokyung 304984db63 댓글창 수정 2018-12-03 15:41:30 +09:00
leebokyung e7e0649173 게시판 글쓰기 랙 2018-12-03 15:27:55 +09:00
leebokyung cfe9003154 테스트중 오류 정리중 2018-12-03 15:01:50 +09:00
leebokyung f4b30a878e 테마 테스트중 2018-12-03 13:21:30 +09:00
leebokyung 1eb10c9367 모바일 완료, PC+모바일 테스트중 2018-11-30 17:58:20 +09:00
leebokyung 4b6f94fe8c 모바일 정리중 2018-11-29 18:01:14 +09:00
thisgun 669770c1f1 Merge branch 'master' of https://github.com/gnuboard/g5 into g54 2018-11-28 19:12:15 +09:00
leebokyung 37737d5554 게 시 판 2018-11-28 17:25:16 +09:00
leebokyung fe0f35a59c 모바일 게시판 회원가입 2018-11-28 12:04:34 +09:00
leebokyung 7414fed364 모바일 퍼블리싱 / 금요일 오후 작업 포함 2018-11-27 11:51:27 +09:00
thisgun c43dc3ee9e Merge branch 'master' of github.com:gnuboard/g5 into g54 2018-11-22 18:16:52 +09:00
leebokyung 71f6c8e852 모바일 사이드메뉴, 검색창, 인기검색어, 접속자집계, 최신글 수정중 2018-11-22 17:45:36 +09:00
leebokyung d23eda245f faq, 포인트, 아웃로그인 2018-11-22 12:18:01 +09:00
leebokyung 4922c46e7b ¸ð¹ÙÀÏ »õ±Û, ¹湮ÀÚ, °˻ö, ¼³¹®Á¶»ç 2018-11-21 17:58:50 +09:00
leebokyung a382a049c6 PC 정리 완료~ 2018-11-20 16:44:30 +09:00
leebokyung db813d69bd qa, write, view, comment 2018-11-19 17:46:12 +09:00
leebokyung 9dacee38d3 팝업창 정리중, 게시판뷰 수정, 갤러리, 쪽지 2018-11-16 17:44:54 +09:00
leebokyung 6510d79217 faq 2018-11-15 17:48:59 +09:00
leebokyung 579e9ba598 로그인, 투표결과, 새글, 포인트, 스크랩 2018-11-15 17:00:34 +09:00
leebokyung 6877f818e1 검색창 옵션 or&and 2018-11-14 18:00:09 +09:00
leebokyung 0913dba0ee 검색, 방문자, 게시판 수정중 2018-11-14 16:57:32 +09:00
leebokyung 961d45b607 게시판 옵션 수정중 2018-11-14 12:14:27 +09:00
leebokyung d11010e6d4 회원가입,소셜,쪽지 수정중 2018-11-13 17:52:50 +09:00
leebokyung 17d10c3c37 아이콘 전체 수정, 최신글 코드 변경, tnb 2018-11-13 12:21:05 +09:00
leebokyung aad3eca303 메인 정리, 게시판 작업중 2018-11-12 17:58:58 +09:00
leebokyung 5f766ae06b 최신글, header, 접속자집계, gnb 푸터 수정중 2018-11-12 12:20:17 +09:00
leebokyung 8ba8b87690 로그인, 최신글, 설문조사, 헤더 수정중 2018-11-09 17:55:41 +09:00
leebokyung 3faf265c46 메인화면 정리중 2018-11-09 12:28:09 +09:00
leebokyung 7c01ab8f32 5.4버전 테마폴더 생성 2018-11-08 09:42:42 +09:00
thisgun 4376f39504 아이디 암호화 복호화 함수 원래대로 수정 2018-11-02 14:36:16 +09:00
thisgun 8b76de6650 잘못된 인스톨 코드 수정 2018-11-02 10:42:17 +09:00
thisgun 575a54b766 url 설정 설명문 수정 2018-11-02 10:35:49 +09:00
thisgun 517ce64fda 잘못된 취소 링크 수정 2018-11-02 09:36:43 +09:00
thisgun e1c071a596 게시판 비밀번호 저장 방식 및 여러가지 문제점 수정 2018-11-02 09:02:37 +09:00
thisgun 704ae9863f 쪽지 및 게시판 회원 코드 수정 2018-11-01 09:46:26 +09:00
thisgun fd1d53931a 충돌 수정 2018-10-31 12:28:29 +09:00
thisgun 8fcfc3a7ed Merge branch 'master' of https://github.com/gnuboard/g5 into g54 2018-10-31 12:26:20 +09:00
thisgun c55a0e4600 틀린 코드 수정 2018-10-31 11:38:46 +09:00
thisgun 73fa80fc52 hook 코드 및 회원 조회 함수명 변경 2018-10-30 18:08:57 +09:00
thisgun 0954bd8b5f 잘못된 rewrite 규칙 수정 2018-10-24 18:32:54 +09:00
thisgun cf566e3512 URL 타이틀 지정 코드 수정 2018-10-24 13:53:44 +09:00
thisgun eca24d196e url 관련 코드 수정 2018-10-24 11:05:48 +09:00
thisgun 7f22566ecd 잘못된 구문 수정 2018-10-22 19:07:50 +09:00
thisgun c84efa72a4 Merge branch 'master' of https://github.com/gnuboard/g5 into g54 2018-10-22 17:55:29 +09:00
thisgun 866f49ec47 pbkdf2 암호화 적용 2018-10-22 17:53:38 +09:00
thisgun e40344fe96 Merge branch 'master' of https://github.com/gnuboard/g5 into g54 2018-10-18 11:43:40 +09:00
thisgun ffdbaa5680 Merge branch 'g54' of https://github.com/gnuboard/g5 into g54 2018-10-12 18:01:48 +09:00
thisgun 6f19c8141a Merge branch 'master' of https://github.com/gnuboard/g5 into g54 2018-10-12 17:57:45 +09:00
thisgun 082f0c43ee seo_title 저장 코드 수정 2018-10-12 17:57:34 +09:00
thisgun c8a9576d63 패스워드 체크 과정 빠진 부분 추가 2018-10-11 11:27:18 +09:00
thisgun a5bd3841dd Merge branch 'master' of github.com:gnuboard/g5 into pbkdf2 2018-10-11 11:07:30 +09:00
thisgun 352cf06944 pbkdf2 암호화 함수 적용 2018-10-11 09:59:42 +09:00
thisgun c4a326cd48 Merge branch 'g54' of github.com:gnuboard/g5 into g54 2018-10-04 10:58:34 +09:00
thisgun c742b3fff8 권한 문구 수정 2018-10-04 10:58:20 +09:00
thisgun 100328a031 일부 리라이트 규칙 수정 2018-10-04 10:52:24 +09:00
thisgun e21429167b 리라이트 규칙 수정 2018-10-02 17:04:54 +09:00
thisgun 8d7c0005e4 틀린 구문 수정 2018-10-02 11:47:29 +09:00
thisgun f5155c4fed 충돌 수정 2018-10-01 18:47:09 +09:00
thisgun f6d994d810 리라이트 규칙 수정 2018-10-01 18:35:08 +09:00
thisgun 2757fb46f1 Merge branch 'g54' of github.com:gnuboard/g5 into g54 2018-10-01 14:23:55 +09:00
thisgun e17e4dc869 KVE-2018-0732 취약점 수정 2018-10-01 11:49:08 +09:00
thisgun 75b6116057 짧은 주소 적용 2018-09-21 18:16:54 +09:00
thisgun cbeef0e453 짧은 주소 url 수정 2018-09-20 09:29:08 +09:00
thisgun 7547b6e0ab Merge branch 'master' of github.com:gnuboard/g5 into g54 2018-09-18 09:18:47 +09:00
thisgun e61dc3534f rewrite 수정 2018-09-18 09:18:39 +09:00
thisgun 92a27cb64a 충돌 수정 2018-09-14 16:16:56 +09:00
thisgun db2b8a2f9b Merge branch 'g54' of https://github.com/gnuboard/g5 into g54 2018-09-14 09:41:58 +09:00
thisgun 561d2ffd52 rewrite 수정 2018-09-14 09:41:35 +09:00
thisgun 6b9cbb9612 버그 수정 2018-09-13 13:47:47 +09:00
thisgun 27e0a541c7 잘못된 구문 수정 2018-09-13 12:22:02 +09:00
thisgun 16907801b7 짧은 주소 작업중 2018-09-13 10:42:56 +09:00
thisgun 7c1e1e6240 짧은 URL 적용중 2018-09-11 09:32:08 +09:00
thisgun 58b86e556a 짧은 URL 적용 수정중 2018-09-07 18:00:46 +09:00
thisgun f66300a394 짧은주소 수정중 2018-09-06 18:34:14 +09:00
thisgun 25bd7430fc 일부 코드 수정 2018-09-06 17:21:27 +09:00
240 changed files with 1187 additions and 6827 deletions

No files matched your search

+1 -1
View File
@@ -101,7 +101,7 @@ function imageview(id, w, h)
<h1><?php echo $config['cf_title'] ?></h1> <h1><?php echo $config['cf_title'] ?></h1>
<div id="hd_top"> <div id="hd_top">
<button type="button" id="btn_gnb" class="btn_gnb_close <?php echo $adm_menu_cookie['btn_gnb'];?>">메뉴</button> <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 correct_goto_url(G5_ADMIN_URL); ?>"><img src="<?php echo G5_ADMIN_URL ?>/img/logo.png" alt="<?php echo $config['cf_title'] ?> 관리자"></a></div>
<div id="tnb"> <div id="tnb">
<ul> <ul>
+1 -1
View File
@@ -108,7 +108,7 @@ function get_ajax_token()
} }
$(function() { $(function() {
$(document).on("click", "form input:submit, form button:submit", function() { $(document).on("click", "form input:submit", function() {
var f = this.form; var f = this.form;
var token = get_ajax_token(); var token = get_ajax_token();
+2 -2
View File
@@ -477,8 +477,8 @@ function admin_check_xss_params($params){
if( is_array($value) ){ if( is_array($value) ){
admin_check_xss_params($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)) ){ } else if ( preg_match('/<\s?[^\>]*\/?\s?>/i', $value) && (preg_match('/script.*?\/script/ius', $value) || preg_match('/[onload|onerror]=.*/ius', $value)) ){
alert('요청 쿼리에 잘못된 스크립트문장이 있습니다.\\nXSS 공격일수도 있습니다.', G5_URL); alert('요청 쿼리에 잘못된 스크립트문장이 있습니다.\\nXSS 공격일수도 있습니다.');
die(); die();
} }
} }
+1 -19
View File
@@ -160,7 +160,7 @@ $pagelist = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_w
echo $pagelist; echo $pagelist;
?> ?>
<form name="fauthlist2" id="fauthlist2" action="./auth_update.php" method="post" autocomplete="off" onsubmit="return fauth_add_submit(this);"> <form name="fauthlist2" id="fauthlist2" action="./auth_update.php" method="post" autocomplete="off">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
@@ -218,17 +218,6 @@ echo $pagelist;
<label for="d">d (삭제)</label> <label for="d">d (삭제)</label>
</td> </td>
</tr> </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> </tbody>
</table> </table>
</div> </div>
@@ -241,13 +230,6 @@ echo $pagelist;
</form> </form>
<script> <script>
function fauth_add_submit(f){
<?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?>
return true;
}
function fauthlist_submit(f) function fauthlist_submit(f)
{ {
if (!is_checked("chk[]")) { if (!is_checked("chk[]")) {
-2
View File
@@ -28,8 +28,6 @@ for ($i=0; $i<$count; $i++)
$sql = " delete from {$g5['auth_table']} where mb_id = '".$mb_id."' and au_menu = '".$au_menu."' "; $sql = " delete from {$g5['auth_table']} where mb_id = '".$mb_id."' and au_menu = '".$au_menu."' ";
sql_query($sql); 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);
-19
View File
@@ -1,7 +1,6 @@
<?php <?php
$sub_menu = "100200"; $sub_menu = "100200";
include_once('./_common.php'); include_once('./_common.php');
include_once(G5_LIB_PATH.'/mailer.lib.php');
if ($is_admin != 'super') if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.'); alert('최고관리자만 접근 가능합니다.');
@@ -12,12 +11,6 @@ if (!$mb['mb_id'])
check_admin_token(); check_admin_token();
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php');
if (!chk_captcha()) {
alert('자동등록방지 숫자가 틀렸습니다.');
}
$sql = " insert into {$g5['auth_table']} $sql = " insert into {$g5['auth_table']}
set mb_id = '{$_POST['mb_id']}', set mb_id = '{$_POST['mb_id']}',
au_menu = '{$_POST['au_menu']}', au_menu = '{$_POST['au_menu']}',
@@ -33,17 +26,5 @@ if (!$result) {
//sql_query(" OPTIMIZE TABLE `$g5['auth_table']` "); //sql_query(" OPTIMIZE TABLE `$g5['auth_table']` ");
// 세션을 체크하여 하루에 한번만 메일알림이 가게 합니다.
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); goto_url('./auth_list.php?'.$qstr);
?> ?>
+1 -14
View File
@@ -31,7 +31,7 @@ include_once(G5_PATH.'/head.sub.php');
</tr> </tr>
<tr> <tr>
<th scope="col"><label for="target_subject">게시판 제목<strong class="sound_only">필수</strong></label></th> <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> <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>
<tr> <tr>
<th scope="col">복사 유형</th> <th scope="col">복사 유형</th>
@@ -58,19 +58,6 @@ include_once(G5_PATH.'/head.sub.php');
<script> <script>
function fboardcopy_check(f) 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) { if (f.bo_table.value == f.target_table.value) {
alert("원본 테이블명과 복사할 테이블명이 달라야 합니다."); alert("원본 테이블명과 복사할 테이블명이 달라야 합니다.");
return false; return false;
-7
View File
@@ -11,17 +11,10 @@ check_admin_token();
$target_table = trim($_POST['target_table']); $target_table = trim($_POST['target_table']);
$target_subject = trim($_POST['target_subject']); $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)) { if (!preg_match('/[A-Za-z0-9_]{1,20}/', $target_table)) {
alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)'); 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' "); $row = sql_fetch(" select count(*) as cnt from {$g5['board_table']} where bo_table = '$target_table' ");
if ($row['cnt']) if ($row['cnt'])
alert($target_table.'은(는) 이미 존재하는 게시판 테이블명 입니다.\\n복사할 테이블명으로 사용할 수 없습니다.'); alert($target_table.'은(는) 이미 존재하는 게시판 테이블명 입니다.\\n복사할 테이블명으로 사용할 수 없습니다.');
-3
View File
@@ -26,9 +26,6 @@ sql_query(" delete from {$g5['board_file_table']} where bo_table = '{$tmp_bo_tab
// 게시판 테이블 DROP // 게시판 테이블 DROP
sql_query(" drop table {$g5['write_prefix']}{$tmp_bo_table} ", FALSE); 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); delete_cache_latest($tmp_bo_table);
// 게시판 폴더 전체 삭제 // 게시판 폴더 전체 삭제
+1 -42
View File
@@ -77,18 +77,11 @@ if (!isset($board['bo_mobile_subject'])) {
} }
if (!isset($board['bo_use_captcha'])) { 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); sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_use_captcha` TINYINT NOT NULL DEFAULT '0' AFTER `bo_use_sns` ");
} }
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);
}
run_event('adm_board_form_before', $board, $w);
$required = ""; $required = "";
$readonly = ""; $readonly = "";
$sound_only = "";
if ($w == '') { if ($w == '') {
$html_title .= ' 생성'; $html_title .= ' 생성';
@@ -488,27 +481,6 @@ $pg_anchor = '<ul class="anchor">
<label for="chk_all_use_dhtml_editor">전체적용</label> <label for="chk_all_use_dhtml_editor">전체적용</label>
</td> </td>
</tr> </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> <tr>
<th scope="row"><label for="bo_use_rss_view">RSS 보이기 사용</label></th> <th scope="row"><label for="bo_use_rss_view">RSS 보이기 사용</label></th>
<td> <td>
@@ -1400,19 +1372,6 @@ jQuery(function($){
function fboardform_submit(f) 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_head"); ?>
<?php echo get_editor_js("bo_content_tail"); ?> <?php echo get_editor_js("bo_content_tail"); ?>
<?php echo get_editor_js("bo_mobile_content_head"); ?> <?php echo get_editor_js("bo_mobile_content_head"); ?>
+7 -20
View File
@@ -17,11 +17,6 @@ if (!$bo_table) { alert('게시판 TABLE명은 반드시 입력하세요.'); }
if (!preg_match("/^([A-Za-z0-9_]{1,20})$/", $bo_table)) { alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)'); } if (!preg_match("/^([A-Za-z0-9_]{1,20})$/", $bo_table)) { alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)'); }
if (!$_POST['bo_subject']) { alert('게시판 제목을 입력하세요.'); } if (!$_POST['bo_subject']) { alert('게시판 제목을 입력하세요.'); }
// 게시판명이 금지된 단어로 되어 있으면
if ( $w == '' && in_array($bo_table, get_bo_table_banned_word()) ){
alert('입력한 게시판 TABLE명을 사용할수 없습니다. 다른 이름으로 입력해 주세요.');
}
$bo_include_head = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($bo_include_head, 0, 255)); $bo_include_head = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($bo_include_head, 0, 255));
$bo_include_tail = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($bo_include_tail, 0, 255)); $bo_include_tail = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($bo_include_tail, 0, 255));
@@ -60,11 +55,6 @@ if(!is_include_path_check($bo_include_tail, 1)) {
alert('하단 파일 경로에 포함시킬수 없는 문자열이 있습니다.'); 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; $board_path = G5_DATA_PATH.'/file/'.$bo_table;
// 게시판 디렉토리 생성 // 게시판 디렉토리 생성
@@ -81,12 +71,12 @@ $f = @fopen($file, 'w');
// 분류에 & 나 = 는 사용이 불가하므로 2바이트로 바꾼다. // 분류에 & 나 = 는 사용이 불가하므로 2바이트로 바꾼다.
$src_char = array('&', '='); $src_char = array('&', '=');
$dst_char = array('&', '〓'); $dst_char = array('&', '〓');
$bo_category_list = isset($_POST['bo_category_list']) ? str_replace($src_char, $dst_char, $_POST['bo_category_list']) : ''; $bo_category_list = str_replace($src_char, $dst_char, $bo_category_list);
//https://github.com/gnuboard/gnuboard5/commit/f5f4925d4eb28ba1af728e1065fc2bdd9ce1da58 에 따른 조치 //https://github.com/gnuboard/gnuboard5/commit/f5f4925d4eb28ba1af728e1065fc2bdd9ce1da58 에 따른 조치
$str_bo_category_list = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\/\^\*]/", "", $bo_category_list); $str_bo_category_list = isset($_POST['bo_category_list']) ? preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\/\^\*]/", "", $_POST['bo_category_list']) : '';
$_POST['bo_subject'] = strip_tags(clean_xss_attributes($_POST['bo_subject'])); $_POST['bo_subject'] = strip_tags($_POST['bo_subject']);
$_POST['bo_mobile_subject'] = strip_tags(clean_xss_attributes($_POST['bo_mobile_subject'])); $_POST['bo_mobile_subject'] = strip_tags($_POST['bo_mobile_subject']);
$sql_common = " gr_id = '{$gr_id}', $sql_common = " gr_id = '{$gr_id}',
bo_subject = '{$_POST['bo_subject']}', bo_subject = '{$_POST['bo_subject']}',
@@ -114,7 +104,6 @@ $sql_common = " gr_id = '{$gr_id}',
bo_use_file_content = '{$_POST['bo_use_file_content']}', bo_use_file_content = '{$_POST['bo_use_file_content']}',
bo_use_secret = '{$_POST['bo_use_secret']}', bo_use_secret = '{$_POST['bo_use_secret']}',
bo_use_dhtml_editor = '{$_POST['bo_use_dhtml_editor']}', bo_use_dhtml_editor = '{$_POST['bo_use_dhtml_editor']}',
bo_select_editor = '{$_POST['bo_select_editor']}',
bo_use_rss_view = '{$_POST['bo_use_rss_view']}', bo_use_rss_view = '{$_POST['bo_use_rss_view']}',
bo_use_good = '{$_POST['bo_use_good']}', bo_use_good = '{$_POST['bo_use_good']}',
bo_use_nogood = '{$_POST['bo_use_nogood']}', bo_use_nogood = '{$_POST['bo_use_nogood']}',
@@ -205,7 +194,7 @@ if ($w == '') {
$file = file('./sql_write.sql'); $file = file('./sql_write.sql');
$file = get_db_create_replace($file); $file = get_db_create_replace($file);
$sql = implode("\n", $file); $sql = implode($file, "\n");
$create_table = $g5['write_prefix'] . $bo_table; $create_table = $g5['write_prefix'] . $bo_table;
@@ -295,14 +284,13 @@ 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_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_download_point')) $grp_fields .= " , bo_download_point = '{$bo_download_point}' ";
if (is_checked('chk_grp_category_list')) { if (is_checked('chk_grp_category_list')) {
$grp_fields .= " , bo_category_list = '{$str_bo_category_list}' "; $grp_fields .= " , bo_category_list = '{$bo_category_list}' ";
$grp_fields .= " , bo_use_category = '{$bo_use_category}' "; $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_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_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_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_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_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_good')) $grp_fields .= " , bo_use_good = '{$bo_use_good}' ";
if (is_checked('chk_grp_use_nogood')) $grp_fields .= " , bo_use_nogood = '{$bo_use_nogood}' "; if (is_checked('chk_grp_use_nogood')) $grp_fields .= " , bo_use_nogood = '{$bo_use_nogood}' ";
@@ -385,14 +373,13 @@ 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_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_download_point')) $all_fields .= " , bo_download_point = '{$bo_download_point}' ";
if (is_checked('chk_all_category_list')) { if (is_checked('chk_all_category_list')) {
$all_fields .= " , bo_category_list = '{$str_bo_category_list}' "; $all_fields .= " , bo_category_list = '{$bo_category_list}' ";
$all_fields .= " , bo_use_category = '{$bo_use_category}' "; $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_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_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_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_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_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_good')) $all_fields .= " , bo_use_good = '{$bo_use_good}' ";
if (is_checked('chk_all_use_nogood')) $all_fields .= " , bo_use_nogood = '{$bo_use_nogood}' "; if (is_checked('chk_all_use_nogood')) $all_fields .= " , bo_use_nogood = '{$bo_use_nogood}' ";
+1 -1
View File
@@ -33,7 +33,7 @@ if ($_POST['act_button'] == "선택수정") {
alert('최고관리자가 아닌 경우 다른 관리자의 게시판('.$board_table[$k].')은 수정이 불가합니다.'); alert('최고관리자가 아닌 경우 다른 관리자의 게시판('.$board_table[$k].')은 수정이 불가합니다.');
} }
$p_bo_subject = is_array($_POST['bo_subject']) ? strip_tags(clean_xss_attributes($_POST['bo_subject'][$k])) : ''; $p_bo_subject = is_array($_POST['bo_subject']) ? strip_tags($_POST['bo_subject'][$k]) : '';
$sql = " update {$g5['board_table']} $sql = " update {$g5['board_table']}
set gr_id = '".sql_real_escape_string(strip_tags($_POST['gr_id'][$k]))."', set gr_id = '".sql_real_escape_string(strip_tags($_POST['gr_id'][$k]))."',
+1 -3
View File
@@ -16,7 +16,7 @@ if (!preg_match("/^([A-Za-z0-9_]{1,10})$/", $_POST['gr_id']))
if (!$gr_subject) alert('그룹 제목을 입력하세요.'); if (!$gr_subject) alert('그룹 제목을 입력하세요.');
$gr_subject = isset($_POST['gr_subject']) ? strip_tags(clean_xss_attributes($_POST['gr_subject'])) : ''; $gr_subject = isset($_POST['gr_subject']) ? strip_tags($_POST['gr_subject']) : '';
$sql_common = " gr_subject = '{$gr_subject}', $sql_common = " gr_subject = '{$gr_subject}',
gr_device = '{$_POST['gr_device']}', gr_device = '{$_POST['gr_device']}',
@@ -69,7 +69,5 @@ if ($w == '') {
alert('제대로 된 값이 넘어오지 않았습니다.'); alert('제대로 된 값이 넘어오지 않았습니다.');
} }
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);
?> ?>
+4 -4
View File
@@ -124,10 +124,10 @@ $colspan = 10;
<tr class="<?php echo $bg; ?>"> <tr class="<?php echo $bg; ?>">
<td class="td_chk"> <td class="td_chk">
<input type="hidden" name="group_id[<?php echo $i ?>]" value="<?php echo $row['gr_id'] ?>"> <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 get_text($row['gr_subject']); ?> 그룹</label> <label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo $row['gr_subject'] ?> 그룹</label>
<input type="checkbox" name="chk[]" value="<?php echo $i ?>" id="chk_<?php echo $i ?>"> <input type="checkbox" name="chk[]" value="<?php echo $i ?>" id="chk_<?php echo $i ?>">
</td> </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_left"><a href="<?php echo get_pretty_url(G5_GROUP_DIR, $row['gr_id']); ?>"><?php echo $row['gr_id'] ?></a></td>
<td class="td_input"> <td class="td_input">
<label for="gr_subject_<?php echo $i; ?>" class="sound_only">그룹제목</label> <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="tbl_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">
@@ -135,9 +135,9 @@ $colspan = 10;
<td class="td_mng td_input"> <td class="td_mng td_input">
<?php if ($is_admin == 'super'){ ?> <?php if ($is_admin == 'super'){ ?>
<label for="gr_admin_<?php echo $i; ?>" class="sound_only">그룹관리자</label> <label for="gr_admin_<?php echo $i; ?>" class="sound_only">그룹관리자</label>
<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"> <input type="text" name="gr_admin[<?php echo $i ?>]" value="<?php echo $row['gr_admin'] ?>" id="gr_admin_<?php echo $i ?>" class="tbl_input" size="10" maxlength="20">
<?php }else{ ?> <?php }else{ ?>
<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']); ?> <input type="hidden" name="gr_admin[<?php echo $i ?>]" value="<?php echo $row['gr_admin'] ?>"><?php echo $row['gr_admin'] ?>
<?php } ?> <?php } ?>
</td> </td>
<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_num"><a href="./board_list.php?sfl=a.gr_id&amp;stx=<?php echo $row['gr_id'] ?>"><?php echo $row2['cnt'] ?></a></td>
+8 -14
View File
@@ -10,23 +10,19 @@ auth_check($auth[$sub_menu], 'w');
check_admin_token(); check_admin_token();
$post_chk = isset($_POST['chk']) ? (array) $_POST['chk'] : array(); $count = count($_POST['chk']);
$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) if(!$count)
alert($act_button.'할 게시판그룹을 1개이상 선택해 주세요.'); alert($_POST['act_button'].'할 게시판그룹을 1개이상 선택해 주세요.');
for ($i=0; $i<$count; $i++) for ($i=0; $i<$count; $i++)
{ {
$k = $post_chk[$i]; $k = $_POST['chk'][$i];
$gr_id = preg_replace('/[^a-z0-9_]/i', '', $post_group_id[$k]); $gr_id = preg_replace('/[^a-z0-9_]/i', '', $_POST['group_id'][$k]);
$gr_subject = is_array($_POST['gr_subject']) ? strip_tags(clean_xss_attributes($_POST['gr_subject'][$k])) : ''; $gr_subject = is_array($_POST['gr_subject']) ? strip_tags($_POST['gr_subject'][$k]) : '';
$gr_admin = is_array($_POST['gr_admin']) ? strip_tags(clean_xss_attributes($_POST['gr_admin'][$k])) : ''; $gr_admin = is_array($_POST['gr_admin']) ? strip_tags($_POST['gr_admin'][$k]) : '';
if($act_button == '선택수정') { if($_POST['act_button'] == '선택수정') {
$sql = " update {$g5['group_table']} $sql = " update {$g5['group_table']}
set gr_subject = '{$gr_subject}', set gr_subject = '{$gr_subject}',
gr_device = '".sql_real_escape_string($_POST['gr_device'][$k])."', gr_device = '".sql_real_escape_string($_POST['gr_device'][$k])."',
@@ -37,7 +33,7 @@ for ($i=0; $i<$count; $i++)
if ($is_admin != 'super') if ($is_admin != 'super')
$sql .= " and gr_admin = '{$gr_admin}' "; $sql .= " and gr_admin = '{$gr_admin}' ";
sql_query($sql); sql_query($sql);
} else if($act_button == '선택삭제') { } else if($_POST['act_button'] == '선택삭제') {
$row = sql_fetch(" select count(*) as cnt from {$g5['board_table']} where gr_id = '$gr_id' "); $row = sql_fetch(" select count(*) as cnt from {$g5['board_table']} where gr_id = '$gr_id' ");
if ($row['cnt']) if ($row['cnt'])
alert("이 그룹에 속한 게시판이 존재하여 게시판 그룹을 삭제할 수 없습니다.\\n\\n이 그룹에 속한 게시판을 먼저 삭제하여 주십시오.", './board_list.php?sfl=gr_id&amp;stx='.$gr_id); alert("이 그룹에 속한 게시판이 존재하여 게시판 그룹을 삭제할 수 없습니다.\\n\\n이 그룹에 속한 게시판을 먼저 삭제하여 주십시오.", './board_list.php?sfl=gr_id&amp;stx='.$gr_id);
@@ -50,7 +46,5 @@ for ($i=0; $i<$count; $i++)
} }
} }
run_event('admin_boardgroup_list_update', $act_button, $chk, $post_group_id, $qstr);
goto_url('./boardgroup_list.php?'.$qstr); goto_url('./boardgroup_list.php?'.$qstr);
?> ?>
+1 -1
View File
@@ -85,7 +85,7 @@ $colspan = 4;
<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 $row['gr_subject'] ?> 그룹</label>
<input type="checkbox" name="chk[]" value="<?php echo $row['gm_id'] ?>" id="chk_<?php echo $i ?>"> <input type="checkbox" name="chk[]" value="<?php echo $row['gm_id'] ?>" id="chk_<?php echo $i ?>">
</td> </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_grid"><a href="<?php echo get_pretty_url(G5_GROUP_DIR, $row['gr_id']); ?>"><?php echo $row['gr_id'] ?></a></td>
<td class="td_category"><?php echo $row['gr_subject'] ?></td> <td class="td_category"><?php echo $row['gr_subject'] ?></td>
<td class="td_datetime"><?php echo $row['gm_datetime'] ?></td> <td class="td_datetime"><?php echo $row['gm_datetime'] ?></td>
</tr> </tr>
+22 -43
View File
@@ -271,13 +271,6 @@ if(!isset($member['mb_scrap_cnt'])) {
ADD `mb_scrap_cnt` int(11) NOT NULL DEFAULT '0' AFTER `mb_memo_cnt`", true); ADD `mb_scrap_cnt` int(11) NOT NULL DEFAULT '0' AFTER `mb_memo_cnt`", true);
} }
// 아이코드 토큰키 추가
if( ! isset($config['cf_icode_token_key']) ){
$sql = "ALTER TABLE `{$g5['config_table']}`
ADD COLUMN `cf_icode_token_key` VARCHAR(100) NOT NULL DEFAULT '' AFTER `cf_icode_server_port`; ";
sql_query($sql, false);
}
if(!$config['cf_faq_skin']) $config['cf_faq_skin'] = "basic"; if(!$config['cf_faq_skin']) $config['cf_faq_skin'] = "basic";
if(!$config['cf_mobile_faq_skin']) $config['cf_mobile_faq_skin'] = "basic"; if(!$config['cf_mobile_faq_skin']) $config['cf_mobile_faq_skin'] = "basic";
@@ -328,7 +321,7 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
<tbody> <tbody>
<tr> <tr>
<th scope="row"><label for="cf_title">홈페이지 제목<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="cf_title">홈페이지 제목<strong class="sound_only">필수</strong></label></th>
<td colspan="3"><input type="text" name="cf_title" value="<?php echo get_sanitize_input($config['cf_title']); ?>" id="cf_title" required class="required frm_input" size="40"></td> <td colspan="3"><input type="text" name="cf_title" value="<?php echo $config['cf_title'] ?>" id="cf_title" required class="required frm_input" size="40"></td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="cf_admin">최고관리자<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="cf_admin">최고관리자<strong class="sound_only">필수</strong></label></th>
@@ -1183,7 +1176,7 @@ include_once('_rewrite_config_form.php');
<tr> <tr>
<th scope="row"><label for="cf_kakao_rest_key">카카오 REST API 키</label></th> <th scope="row"><label for="cf_kakao_rest_key">카카오 REST API 키</label></th>
<td> <td>
<input type="text" name="cf_kakao_rest_key" value="<?php echo $config['cf_kakao_rest_key'] ?>" id="cf_kakao_rest_key" class="frm_input" size="40"> <a href="https://developers.kakao.com/product/kakaoLogin" target="_blank" class="btn_frmline">앱 등록하기</a> <input type="text" name="cf_kakao_rest_key" value="<?php echo $config['cf_kakao_rest_key'] ?>" id="cf_kakao_rest_key" class="frm_input" size="40"> <a href="https://developers.kakao.com/apps/new" target="_blank" class="btn_frmline">앱 등록하기</a>
</td> </td>
<th scope="row"><label for="cf_kakao_client_secret">카카오 Client Secret</label></th> <th scope="row"><label for="cf_kakao_client_secret">카카오 Client Secret</label></th>
<td> <td>
@@ -1264,29 +1257,29 @@ include_once('_rewrite_config_form.php');
<tr> <tr>
<th scope="row"><label for="cf_sms_type">SMS 전송유형</label></th> <th scope="row"><label for="cf_sms_type">SMS 전송유형</label></th>
<td> <td>
<?php echo help("전송유형을 SMS로 선택하시면 최대 80바이트까지 전송하실 수 있으며<br>LMS로 선택하시면 90바이트 이하는 SMS로, 그 이상은 ".G5_ICODE_LMS_MAX_LENGTH."바이트까지 LMS로 전송됩니다.<br>요금은 건당 SMS는 16원, LMS는 48원입니다."); ?> <?php echo help("전송유형을 SMS로 선택하시면 최대 80바이트까지 전송하실 수 있으며<br>LMS로 선택하시면 90바이트 이하는 SMS로, 그 이상은 1500바이트까지 LMS로 전송됩니다.<br>요금은 건당 SMS는 16원, LMS는 48원입니다."); ?>
<select id="cf_sms_type" name="cf_sms_type"> <select id="cf_sms_type" name="cf_sms_type">
<option value="" <?php echo get_selected($config['cf_sms_type'], ''); ?>>SMS</option> <option value="" <?php echo get_selected($config['cf_sms_type'], ''); ?>>SMS</option>
<option value="LMS" <?php echo get_selected($config['cf_sms_type'], 'LMS'); ?>>LMS</option> <option value="LMS" <?php echo get_selected($config['cf_sms_type'], 'LMS'); ?>>LMS</option>
</select> </select>
</td> </td>
</tr> </tr>
<tr class="icode_old_version"> <tr>
<th scope="row"><label for="cf_icode_id">아이코드 회원아이디<br>(구버전)</label></th> <th scope="row"><label for="cf_icode_id">아이코드 회원아이디</label></th>
<td> <td>
<?php echo help("아이코드에서 사용하시는 회원아이디를 입력합니다."); ?> <?php echo help("아이코드에서 사용하시는 회원아이디를 입력합니다."); ?>
<input type="text" name="cf_icode_id" value="<?php echo $config['cf_icode_id']; ?>" id="cf_icode_id" class="frm_input" size="20"> <input type="text" name="cf_icode_id" value="<?php echo $config['cf_icode_id']; ?>" id="cf_icode_id" class="frm_input" size="20">
</td> </td>
</tr> </tr>
<tr class="icode_old_version"> <tr>
<th scope="row"><label for="cf_icode_pw">아이코드 비밀번호<br>(구버전)</label></th> <th scope="row"><label for="cf_icode_pw">아이코드 비밀번호</label></th>
<td> <td>
<?php echo help("아이코드에서 사용하시는 비밀번호를 입력합니다."); ?> <?php echo help("아이코드에서 사용하시는 비밀번호를 입력합니다."); ?>
<input type="password" name="cf_icode_pw" value="<?php echo $config['cf_icode_pw']; ?>" id="cf_icode_pw" class="frm_input"> <input type="password" name="cf_icode_pw" value="<?php echo $config['cf_icode_pw']; ?>" id="cf_icode_pw" class="frm_input">
</td> </td>
</tr> </tr>
<tr class="icode_old_version <?php if(!(isset($userinfo['payment']) && $userinfo['payment'])){ echo 'cf_tr_hide'; } ?>"> <tr>
<th scope="row">요금제<br>(구버전)</th> <th scope="row">요금제</th>
<td> <td>
<input type="hidden" name="cf_icode_server_ip" value="<?php echo $config['cf_icode_server_ip']; ?>"> <input type="hidden" name="cf_icode_server_ip" value="<?php echo $config['cf_icode_server_ip']; ?>">
<?php <?php
@@ -1303,31 +1296,21 @@ include_once('_rewrite_config_form.php');
?> ?>
</td> </td>
</tr> </tr>
<?php if ($userinfo['payment'] == 'A') { ?>
<tr class="icode_old_version">
<th scope="row">충전 잔액<br>(구버전)</th>
<td>
<?php echo number_format($userinfo['coin']); ?> 원.
<a href="http://www.icodekorea.com/smsbiz/credit_card_amt.php?icode_id=<?php echo $config['cf_icode_id']; ?>&amp;icode_passwd=<?php echo $config['cf_icode_pw']; ?>" target="_blank" class="btn_frmline">충전하기</a>
</td>
</tr>
<?php } ?>
<tr class="icode_json_version">
<th scope="row"><label for="cf_icode_token_key">아이코드 토큰키<br>(JSON버전)</label></th>
<td>
<?php echo help("아이코드 JSON 버전의 경우 아이코드 토큰키를 입력시 실행됩니다.<br>SMS 전송유형을 LMS로 설정시 90바이트 이내는 SMS, 90 ~ 2000 바이트는 LMS 그 이상은 절삭 되어 LMS로 발송됩니다."); ?>
<input type="text" name="cf_icode_token_key" value="<?php echo $config['cf_icode_token_key']; ?>" id="cf_icode_token_key" class="frm_input" size="40">
<?php echo help("아이코드 사이트 -> 토큰키관리 메뉴에서 생성한 토큰키를 입력합니다."); ?>
<br>
서버아이피 : <?php echo $_SERVER['SERVER_ADDR']; ?>
</td>
</tr>
<tr> <tr>
<th scope="row">아이코드 SMS 신청<br>회원가입</th> <th scope="row">아이코드 SMS 신청<br>회원가입</th>
<td> <td>
<a href="http://icodekorea.com/res/join_company_fix_a.php?sellid=sir2" target="_blank" class="btn_frmline">아이코드 회원가입</a> <a href="http://icodekorea.com/res/join_company_fix_a.php?sellid=sir2" target="_blank" class="btn_frmline">아이코드 회원가입</a>
</td> </td>
</tr> </tr>
<?php if ($userinfo['payment'] == 'A') { ?>
<tr>
<th scope="row">충전 잔액</th>
<td>
<?php echo number_format($userinfo['coin']); ?> 원.
<a href="http://www.icodekorea.com/smsbiz/credit_card_amt.php?icode_id=<?php echo $config['cf_icode_id']; ?>&amp;icode_passwd=<?php echo $config['cf_icode_pw']; ?>" target="_blank" class="btn_frmline">충전하기</a>
</td>
</tr>
<?php } ?>
</tbody> </tbody>
</table> </table>
</div> </div>
@@ -1466,14 +1449,10 @@ if($config['cf_cert_use']) {
// kcp일 때 // kcp일 때
if($config['cf_cert_hp'] == 'kcp') { if($config['cf_cert_hp'] == 'kcp') {
if(strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') { if(PHP_INT_MAX == 2147483647) // 32-bit
if(PHP_INT_MAX == 2147483647) // 32-bit $exe = G5_KCPCERT_PATH . '/bin/ct_cli';
$exe = G5_KCPCERT_PATH . '/bin/ct_cli'; else
else $exe = G5_KCPCERT_PATH . '/bin/ct_cli_x64';
$exe = G5_KCPCERT_PATH . '/bin/ct_cli_x64';
} else {
$exe = G5_KCPCERT_PATH . '/bin/ct_cli_exe.exe';
}
echo module_exec_check($exe, 'ct_cli'); echo module_exec_check($exe, 'ct_cli');
} }
+1 -4
View File
@@ -26,7 +26,7 @@ if(!$_POST['cf_cert_use']) {
$cf_social_servicelist = !empty($_POST['cf_social_servicelist']) ? implode(',', $_POST['cf_social_servicelist']) : ''; $cf_social_servicelist = !empty($_POST['cf_social_servicelist']) ? implode(',', $_POST['cf_social_servicelist']) : '';
$_POST['cf_title'] = strip_tags(clean_xss_attributes($_POST['cf_title'])); $_POST['cf_title'] = strip_tags($_POST['cf_title']);
$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'); $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');
@@ -36,8 +36,6 @@ foreach( $check_keys as $key ){
} }
} }
$_POST['cf_icode_server_port'] = isset($_POST['cf_icode_server_port']) ? preg_replace('/[^0-9]/', '', $_POST['cf_icode_server_port']) : '7295';
$sql = " update {$g5['config_table']} $sql = " update {$g5['config_table']}
set cf_title = '{$_POST['cf_title']}', set cf_title = '{$_POST['cf_title']}',
cf_admin = '{$_POST['cf_admin']}', cf_admin = '{$_POST['cf_admin']}',
@@ -145,7 +143,6 @@ $sql = " update {$g5['config_table']}
cf_sms_type = '{$_POST['cf_sms_type']}', cf_sms_type = '{$_POST['cf_sms_type']}',
cf_icode_id = '{$_POST['cf_icode_id']}', cf_icode_id = '{$_POST['cf_icode_id']}',
cf_icode_pw = '{$_POST['cf_icode_pw']}', 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_ip = '{$_POST['cf_icode_server_ip']}',
cf_icode_server_port = '{$_POST['cf_icode_server_port']}', cf_icode_server_port = '{$_POST['cf_icode_server_port']}',
cf_googl_shorturl_apikey = '{$_POST['cf_googl_shorturl_apikey']}', cf_googl_shorturl_apikey = '{$_POST['cf_googl_shorturl_apikey']}',
+1 -6
View File
@@ -21,7 +21,7 @@ if ($w == "" || $w == "u")
} }
$co_id = preg_replace('/[^a-z0-9_]/i', '', $co_id); $co_id = preg_replace('/[^a-z0-9_]/i', '', $co_id);
$co_subject = strip_tags(clean_xss_attributes($co_subject)); $co_subject = strip_tags($co_subject);
$co_include_head = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($co_include_head, 0, 255)); $co_include_head = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($co_include_head, 0, 255));
$co_include_tail = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($co_include_tail, 0, 255)); $co_include_tail = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($co_include_tail, 0, 255));
$co_tag_filter_use = isset($_POST['co_tag_filter_use']) ? (int) $_POST['co_tag_filter_use'] : 1; $co_tag_filter_use = isset($_POST['co_tag_filter_use']) ? (int) $_POST['co_tag_filter_use'] : 1;
@@ -71,11 +71,6 @@ if( $co_include_tail && ! is_include_path_check($co_include_tail, 1) ){
$error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 하단 파일 경로에 포함시킬수 없습니다.'; $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); $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', $sql_common = " co_include_head = '$co_include_head',
+42 -48
View File
@@ -13,16 +13,16 @@ legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-inde
label, input, button, select, img {vertical-align:middle} label, input, button, select, img {vertical-align:middle}
input, button {margin:0;padding:0;font-family:'Malgun Gothic',"맑은 고딕",AppleGothic,Dotum,"돋움", sans-serif;font-size:1em} input, button {margin:0;padding:0;font-family:'Malgun Gothic',"맑은 고딕",AppleGothic,Dotum,"돋움", sans-serif;font-size:1em}
button,input[type="submit"] {cursor:pointer} button,input[type="submit"] {cursor:pointer}
textarea, select {font-family:'Malgun Gothic',"맑은 고딕",AppleGothic,Dotum,"돋움", sans-serif;font-size:1em} textarea, select {font-family:'Malgun Gothic',"맑은 고딕",AppleGothic,Dotum,"돋움", sans-serif;;font-size:1em}
select {margin:0} select {margin:0}
p {margin:0;padding:0;word-break:break-all} p {margin:0;padding:0;word-break:break-all}
pre {overflow-x:scroll;font-size:1.1em} pre {overflow-x:scroll;font-size:1.1em}
a:link, a:visited {color:#000;text-decoration:none} a:link, a:visited {color:#000;text-decoration:none}
* { * {
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
-moz-box-sizing: border-box; -moz-box-sizing: border-box;
box-sizing: border-box; box-sizing: border-box;
} }
h2{font-size: 1.083em;font-weight: bold;margin:10px 0} h2{font-size: 1.083em;font-weight: bold;margin:10px 0}
@@ -39,12 +39,12 @@ h2{font-size: 1.083em;font-weight: bold;margin:10px 0}
#tnb{float:right;padding:10px} #tnb{float:right;padding:10px}
#tnb ul:after{display:block;visibility:hidden;clear:both;content:""} #tnb ul:after{display:block;visibility:hidden;clear:both;content:""}
#tnb li{float:left;position:relative;margin-left:3px} #tnb li{float:left;position:relative;margin-left:3px}
#tnb a{color:#fff;padding:0 10px;display:block;line-height:30px;} #tnb a{color:#fff;;padding:0 10px;display:block;line-height:30px;}
#tnb .tnb_service{border-radius:3px;background:#4e5eb7;color:#fff;padding:0 10px;text-align:left;height:30px;line-height:30px;} #tnb .tnb_service{border-radius:3px;background:#4e5eb7;color:#fff;padding:0 10px;text-align:left;height:30px;line-height:30px;}
#tnb .tnb_service:hover{background:#5969c3} #tnb .tnb_service:hover{background:#5969c3}
#tnb button{width:100px;border:0;border-radius:3px;background:#4e5eb7;color:#fff;padding:0 30px 0 10px;text-align:left;height:30px;position:relative;text-overflow: ellipsis;overflow: hidden;white-space: nowrap;} #tnb button{width:100px;;border:0;border-radius:3px;background:#4e5eb7;color:#fff;padding:0 30px 0 10px;text-align:left;height:30px;position:relative;text-overflow: ellipsis;overflow: hidden;white-space: nowrap;}
#tnb button span{display:block;text-indent:-999px;overflow:hidden;width:30px;border-radius:3px;height:30px;position:absolute;top:0;right:0;background:url(../img/op_btn.png) 50% 50% no-repeat #5969c3} #tnb button span{display:block;text-indent:-999px;overflow:hidden;width:30px;border-radius:3px;height:30px;position:absolute;top:0;right:0;background:url(../img/op_btn.png) 50% 50% no-repeat #5969c3}
#tnb button:hover {background:#5969c3} #tnb button:hover {background:#5969c3}
#tnb .tnb_mb_area{display:none;background:#5e6dc2;width:100px;position:absolute;padding:5px;margin-top:1px;} #tnb .tnb_mb_area{display:none;background:#5e6dc2;width:100px;position:absolute;padding:5px;margin-top:1px;}
#tnb .tnb_mb_area a{padding:0} #tnb .tnb_mb_area a{padding:0}
#tnb .tnb_mb_area li{float:none;} #tnb .tnb_mb_area li{float:none;}
@@ -75,9 +75,9 @@ h2{font-size: 1.083em;font-weight: bold;margin:10px 0}
#gnb .on .btn_op.menu-900{background:url(../img/menu-4.png) 50% 50% no-repeat #fff} #gnb .on .btn_op.menu-900{background:url(../img/menu-4.png) 50% 50% no-repeat #fff}
#gnb .gnb_li button:hover{background-color:#f3f3f3} #gnb .gnb_li button:hover{background-color:#f3f3f3}
#gnb .gnb_oparea{display:none;position:absolute;top:0;left:50px;background:#fff;height:100%;width:170px;padding:20px;border-right:1px solid #dbdbdb; #gnb .gnb_oparea{display:none;position:absolute;top:0;left:50px;background:#fff;height:100%;width:170px;padding:20px;border-right:1px solid #dbdbdb;
-webkit-box-shadow: 2px 0 2px rgba(150,150,150,100.1); -webkit-box-shadow: 2px 0 2px rgba(150,150,150,100.1);
-moz-box-shadow: 2px 0 2px rgba(150,150,150,0.1); -moz-box-shadow: 2px 0 2px rgba(150,150,150,0.1);
box-shadow: 2px 0 2px rgba(150,150,150,0.1);} box-shadow: 2px 0 2px rgba(150,150,150,0.1);}
#gnb .on .gnb_oparea{display:block} #gnb .on .gnb_oparea{display:block}
#gnb .gnb_oparea h3{margin-bottom:10px;line-height:18px;font-size:1.17em} #gnb .gnb_oparea h3{margin-bottom:10px;line-height:18px;font-size:1.17em}
#gnb .gnb_oparea li{line-height:28px} #gnb .gnb_oparea li{line-height:28px}
@@ -181,10 +181,10 @@ a.btn_submit{background:#ff4081;color:#fff}
.btn_add01 button {margin:0} .btn_add01 button {margin:0}
.td_mng a.btn, .td_mng a{display:inline-block;height:26px;line-height:26px;border:0;border-radius:3px;padding:0 8px;margin:1px;font-weight:normal} .td_mng a.btn,.td_mng a{display:inline-block;height:26px;line-height:26px;border:0;;border-radius:3px;padding:0 8px;margin:1px;font-weight:normal}
.td_mng button, .td_mng button.btn{height:26px;border:0;border-radius:3px;padding:0 8px;margin:1px;font-weight:normal} .td_mng button,.td_mng button.btn{height:26px;border:0;border-radius:3px;padding:0 8px;margin:1px;border:0;;font-weight:normal}
.btn{height:30px;border:0;border-radius:5px;padding:0 10px;font-weight:bold;font-size:1.09em;vertical-align:middle} .btn{height:30px;border:0;;border-radius:5px;padding:0 10px;font-weight:bold;font-size:1.09em;vertical-align:middle}
a.btn{display:inline-block;height:30px;line-height:30px;border:0;border-radius:5px;padding:0 10px;font-weight:bold;font-size:1.09em;vertical-align:middle} a.btn{display:inline-block;height:30px;line-height:30px;border:0;;border-radius:5px;padding:0 10px;font-weight:bold;font-size:1.09em;;vertical-align:middle}
.btn_submit{background:#ff4081;color:#fff} .btn_submit{background:#ff4081;color:#fff}
a.btn_submit{background:#ff4081;color:#fff} a.btn_submit{background:#ff4081;color:#fff}
.btn_submit:hover{background:#ff1464} .btn_submit:hover{background:#ff1464}
@@ -195,21 +195,19 @@ a.btn_submit{background:#ff4081;color:#fff}
.btn_03,a.btn_03{background:#3f51b5;color:#fff;} .btn_03,a.btn_03{background:#3f51b5;color:#fff;}
.btn_frmline{display:inline-block;background:#9eacc6;color:#fff;height:35px;border:0;border-radius:5px;padding:0 10px} .btn_frmline{display:inline-block;background:#9eacc6;color:#fff;height:35px;border:0;border-radius:5px;padding:0 10px}
a.btn_frmline{display:inline-block;background:#9eacc6;color:#fff;height:35px;line-height:33px;border-radius:5px;padding:0 10px;text-decoration:none !important} a.btn_frmline{display:inline-block;background:#9eacc6;color:#fff;height:35px;line-height:33px;border-radius:5px;padding:0 10px;text-decoration:none !important}
.btn_ov01{display:inline-block;line-height:30px;height:30px;font-size:0.92em;vertical-align:top} .btn_ov01{display:inline-block;line-height:30px;height:30px;font-size:0.92em;vertical-align:top}
.btn_ov01:after{display:block;visibility:hidden;clear :both;content:""}
.btn_ov01 .ov_txt{float:left;background:#9eacc6;color:#fff;border-radius:5px 0 0 5px;padding:0 5px} .btn_ov01 .ov_txt{float:left;background:#9eacc6;color:#fff;border-radius:5px 0 0 5px;padding:0 5px}
.btn_ov01 .ov_num{float:left;background:#ededed;color:#666;border-radius:0 5px 5px 0;padding:0 5px} .btn_ov01 .ov_num{float:left;background:#ededed;color:#666;border-radius:0 5px 5px 0;padding:0 5px}
a.btn_ov02,a.ov_listall{display:inline-block;line-height:30px;height:30px;font-size:0.92em;background:#565e8c;color:#fff;vertical-align:top;border-radius:5px;padding:0 7px } a.btn_ov02,a.ov_listall{display:inline-block;line-height:30px;height:30px;font-size:0.92em;background:#565e8c;color:#fff;vertical-align:top;border-radius:5px;padding:0 7px }
a.btn_ov02:hover,a.ov_listall:hover{background:#3f51b5} a.btn_ov02:hover,a.ov_listall:hover{background:#3f51b5}
.local_ov01.local_ov [data-tooltip-text]:hover {position:relative}
.local_ov01.local_ov [data-tooltip-text]:hover:after{line-height:20px;background-color:#000;background-color:rgba(0,0,0,0.8);-webkit-box-shadow:0 0 3px 1px rgba(50,50,50,0.4);-moz-box-shadow:0 0 3px 1px rgba(50,50,50,0.4);box-shadow:0 0 3px 1px rgba(50,50,50,0.4);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;color:#FFF;font-size:11px;content:attr(data-tooltip-text);white-space: pre;margin-bottom:10px;top:130%;left:0;padding:7px 12px;position:absolute;max-width:500px;word-wrap:break-word;z-index:9999}
/*form*/ /*form*/
.sound_only {display:inline-block !important;position:absolute;top:0;left:0;margin:0 !important;padding:0 !important;width:1px !important;height:1px !important;font-size:0;line-height:0;border:0 !important;overflow:hidden !important} .sound_only {display:inline-block !important;position:absolute;top:0;left:0;margin:0 !important;padding:0 !important;width:1px !important;height:1px !important;font-size:0;line-height:0;border:0 !important;overflow:hidden !important}
.frm_input{height:35px;line-height:32px;border:1px solid #d5d5d5;} .frm_input{height:35px;line-height:32px;border:1px solid #d5d5d5;}
.frm_input_full{width:100%} .frm_input_full{width:100%}
.required{background:url('../img/wrest.gif') top right no-repeat #fff !important} .required{background:url('../img/wrest.gif') top right no-repeat #fff !important}
select{height:35px;line-height:32px;border:1px solid #d5d5d5;} select{height:35px;line-height:32px;border:1px solid #d5d5d5;}
textarea{width:100%;border:1px solid #d5d5d5;min-height:80px} textarea{width:100%;border:1px solid #d5d5d5;min-height:80px}
legend {position:absolute;width:0;height:0;font-size:0;line-height:0;text-indent:-9999em;border:0;overflow:hidden} legend {position:absolute;width:0;height:0;font-size:0;line-height:0;text-indent:-9999em;border:0;overflow:hidden}
@@ -234,7 +232,7 @@ legend {position:absolute;width:0;height:0;font-size:0;line-height:0;text-indent
.color_st03{background:#b668d0;color:#fff;display:inline-block;padding:0 3px;font-size:0.92em;line-height:18px} .color_st03{background:#b668d0;color:#fff;display:inline-block;padding:0 3px;font-size:0.92em;line-height:18px}
.color_st04{background:#ffa700;color:#fff;display:inline-block;padding:0 3px;font-size:0.92em;line-height:18px} .color_st04{background:#ffa700;color:#fff;display:inline-block;padding:0 3px;font-size:0.92em;line-height:18px}
.color_st05{background:#688fef;color:#fff;display:inline-block;padding:0 3px;font-size:0.92em;line-height:18px} .color_st05{background:#688fef;color:#fff;display:inline-block;padding:0 3px;font-size:0.92em;line-height:18px}
.color_st06{color:#ff0000;border:1px solid #ff0000;display:inline-block;padding:0 3px;font-size:0.92em;line-height:18px} .color_st06{;color:#ff0000;border:1px solid #ff0000;display:inline-block;padding:0 3px;font-size:0.92em;line-height:18px}
/* 폼 안내글 */ /* 폼 안내글 */
.frm_info {display:block;padding:0 0 5px;color:#5b747e} .frm_info {display:block;padding:0 0 5px;color:#5b747e}
@@ -244,7 +242,7 @@ legend {position:absolute;width:0;height:0;font-size:0;line-height:0;text-indent
.anchor:after {display:block;visibility:hidden;clear:both;content:""} .anchor:after {display:block;visibility:hidden;clear:both;content:""}
.anchor li{float:left;margin-left:-1px;list-style:none} .anchor li{float:left;margin-left:-1px;list-style:none}
.anchor a {display:inline-block;padding:5px 10px;border:1px solid #c8ced1;background:#d6dde1;text-decoration:none} .anchor a {display:inline-block;padding:5px 10px;border:1px solid #c8ced1;background:#d6dde1;text-decoration:none}
.anchor .selected{background:#3f51b5} .anchor .selected{background:#3f51b5}
@@ -263,22 +261,22 @@ border-bottom: 5px solid black;}
/* 페이지 내 검색 */ /* 페이지 내 검색 */
.local_sch{} .local_sch{}
.local_sch:after, .local_sch div:after{display:block;visibility:hidden;clear:both;content:""} .local_sch:after ,.local_sch div:after{display:block;visibility:hidden;clear:both;content:""}
.local_sch .btn_sch{width:30px;height:30px;border:1px solid #dcdcdc;border-left:0;padding:0;float:left;background:url(../img/sch_btn.png) no-repeat 50% 50%;text-indent:-999px;overflow:hidden} .local_sch .btn_sch{width:30px;height:30px;border:0;padding:0;float:left;background:url(../img/sch_btn.png) no-repeat 50% 50%;border:1px solid #dcdcdc;border-left:0;text-indent:-999px;overflow:hidden}
.local_sch .btn_sch2{width:35px;height:35px;border:1px solid #dcdcdc;padding:0;background:url(../img/sch_btn.png) no-repeat 50% 50% #eee;text-indent:-999px;overflow:hidden} .local_sch .btn_sch2{width:35px;height:35px;border:0;padding:0;background:url(../img/sch_btn.png) no-repeat 50% 50% #eee;border:1px solid #dcdcdc;text-indent:-999px;overflow:hidden}
.local_sch .sch_input{height:30px;border:1px solid #dcdcdc;border-right:0;padding:0 5px;float:left;} .local_sch .sch_input{height:30px;border:1px solid #dcdcdc;border-right:0;;padding:0 5px;float:left;}
.local_sch select{height:30px;margin-right:3px;border:1px solid #dcdcdc} .local_sch select{height:30px;margin-right:3px;border:1px solid #dcdcdc}
.local_sch01{margin: 10px 0;} .local_sch01{margin: 10px 0;}
.local_sch02{} .local_sch02{}
.local_sch01 .frm_input{height:30px;border:1px solid #dcdcdc;padding:0 5px;} .local_sch01 .frm_input{height:30px;border:1px solid #dcdcdc;padding:0 5px;}
.local_sch01 .btn_submit{width:30px;height:30px;padding:0;background:url(../img/sch_btn.png) no-repeat 50% 50% #eee;border:1px solid #dcdcdc;text-indent:-999px;overflow:hidden} .local_sch01 .btn_submit{width:30px;height:30px;border:0;padding:0;background:url(../img/sch_btn.png) no-repeat 50% 50% #eee;border:1px solid #dcdcdc;text-indent:-999px;overflow:hidden}
.local_sch03{padding:5px 15px;background:#e9ebf9;margin:10px 0} .local_sch03{;padding:5px 15px;background:#e9ebf9;margin:10px 0}
.local_sch div{margin:5px 0;} .local_sch div{margin:5px 0;}
.local_sch03 strong{display:inline-block;width:70px;} .local_sch03 strong{display:inline-block;width:70px;}
.local_sch03 label{margin-right:5px;display:inline-block} .local_sch03 label{margin-right:5px;display:inline-block}
.local_sch03 button{height:30px;padding:0 5px;border:0;background:#9eacc6;color:#fff;} .local_sch03 button{height:30px;padding:0 5px;border:0;background:#9eacc6;color:#fff;}
.local_sch03 .btn_submit{height:30px;padding:0 5px;border:0;color:#fff;} .local_sch03 .btn_submit{height:30px;padding:0 5px;border:0;;color:#fff;}
.local_sch03 .frm_input{height:30px;border:1px solid #dcdcdc;padding:0 5px;} .local_sch03 .frm_input{height:30px;border:1px solid #dcdcdc;padding:0 5px;}
/* 페이지 내 실행 */ /* 페이지 내 실행 */
.local_cmd {min-width:960px} .local_cmd {min-width:960px}
@@ -305,7 +303,7 @@ border-bottom: 5px solid black;}
/* 페이지 내 카운트 */ /* 페이지 내 카운트 */
.local_ov {min-width:960px} .local_ov {min-width:960px}
.local_ov01 {position:relative;margin: 10px 0;} .local_ov01 {position:relative;;margin: 10px 0;}
.local_ov01 .ov_a {display:inline-block;margin:0 0 0 5px;padding:0 0 0 10px;border-left:1px solid #ccc;color:#ff3061} .local_ov01 .ov_a {display:inline-block;margin:0 0 0 5px;padding:0 0 0 10px;border-left:1px solid #ccc;color:#ff3061}
@@ -530,10 +528,6 @@ td.td_grpset {width:160px;border-left:1px solid #e9ecee;text-align:center}
.is_rewrite .info-success{color:#155724} .is_rewrite .info-success{color:#155724}
.is_rewrite .info-warning{color:#856404} .is_rewrite .info-warning{color:#856404}
.icode_old_version th{background-color:#FFFCED}
.icode_json_version th{background-color:#F6F1FF}
.cf_tr_hide {display:none}
/* 관리권한설정 */ /* 관리권한설정 */
#add_admin fieldset {margin-top:20px;overflow:auto;padding:2px 6px;line-height:1.4;resize:vertical} #add_admin fieldset {margin-top:20px;overflow:auto;padding:2px 6px;line-height:1.4;resize:vertical}
@@ -626,7 +620,7 @@ td.td_grpset {width:160px;border-left:1px solid #e9ecee;text-align:center}
-moz-box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2); -moz-box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2);
box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2);} box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2);}
.sv_wrap .sv:before{content: "";position: absolute;top: -6px;left: 15px;width: 0;height: 0;border-style: solid;border-width: 0 6px 6px 6px;border-color: transparent transparent #333 transparent;} .sv_wrap .sv:before{content: "";position: absolute;top: -6px;left: 15px;width: 0;height: 0;border-style: solid;border-width: 0 6px 6px 6px;border-color: transparent transparent #333 transparent;}
.sv_wrap .sv a {display:inline-block;margin:0;padding:0 10px;line-height:30px;width:100px;font-weight:normal;color:#bbb } .sv_wrap .sv a {display:inline-block;margin:0;padding:0 10px;line-height:30px;width:100px;font-weight:normal;color:#bbb }
.sv_wrap .sv a:hover{background:#000;color:#fff} .sv_wrap .sv a:hover{background:#000;color:#fff}
.sv_member{color:#333} .sv_member{color:#333}
.sv_on {display:block !important;position:absolute;top:23px;left:0px;width:auto;height:auto} .sv_on {display:block !important;position:absolute;top:23px;left:0px;width:auto;height:auto}
@@ -710,15 +704,15 @@ box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2);}
/* 캡챠 */ /* 캡챠 */
#captcha {display:inline-block;position:relative} #captcha {display:inline-block;position:relative}
#captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;} #captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;}
#captcha #captcha_img {height:40px;border:1px solid #898989;vertical-align:top;padding:0;margin:0} #captcha #captcha_img {;height:40px;border:1px solid #898989;vertical-align:top;padding:0;margin:0}
#captcha #captcha_mp3 {margin:0;padding:0;width:40px;height:40px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../../img/captcha2.png') no-repeat;text-indent:-999px;border-radius:3px} #captcha #captcha_mp3 {;margin:0;padding:0;width:40px;height:40px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../../img/captcha2.png') no-repeat;text-indent:-999px;border-radius:3px}
#captcha #captcha_reload {margin:0;padding:0;width:40px;height:40px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../../img/captcha2.png') no-repeat 0 -40px;text-indent:-999px;border-radius:3px} #captcha #captcha_reload {margin:0;padding:0;width:40px;height:40px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../../img/captcha2.png') no-repeat 0 -40px;text-indent:-999px;border-radius:3px}
#captcha #captcha_key {margin:0 0 0 3px;padding:0 5px;width:90px;height:40px;border:1px solid #ccc;background:#fff;font-size:1.333em;font-weight:bold;text-align:center;border-radius:3px;vertical-align:top} #captcha #captcha_key {margin:0 0 0 3px;padding:0 5px;width:90px;height:40px;border:1px solid #ccc;background:#fff;font-size:1.333em;font-weight:bold;text-align:center;border-radius:3px;vertical-align:top}
#captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} #captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em}
/*테마*/ /*테마*/
.theme_p{margin:0 0 10px } .theme_p{margin:0 0 10px }
#theme_list{padding:0;margin:0;list-style:none; width: 1000px;position:relative} #theme_list{padding:0;margin:0;list-style:none; width: 1000px;position:relative}
#theme_list:after{display:block;visibility:hidden;clear:both;content:""} #theme_list:after{display:block;visibility:hidden;clear:both;content:""}
#theme_list li{margin:10px 10px 10px 0;float:left} #theme_list li{margin:10px 10px 10px 0;float:left}
#theme_list li:after{display:block;visibility:hidden;clear:both;content:""} #theme_list li:after{display:block;visibility:hidden;clear:both;content:""}
@@ -726,34 +720,34 @@ box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2);}
#theme_list li .tmli_if>img{width:300px;height:225px;} #theme_list li .tmli_if>img{width:300px;height:225px;}
#theme_list li .tmli_if:hover>img{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";filter: alpha(opacity=50);-moz-opacity:0.5;-khtml-opacity: 0.5;opacity: 0.5;} #theme_list li .tmli_if:hover>img{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";filter: alpha(opacity=50);-moz-opacity:0.5;-khtml-opacity: 0.5;opacity: 0.5;}
#theme_list li .tmli_tit{position:relative; border-top: 1px solid #d1dee2; background: #e5ecef;} #theme_list li .tmli_tit{position:relative; border-top: 1px solid #d1dee2; background: #e5ecef;}
#theme_list li .tmli_tit p{height:40px;line-height:40px;padding:0 10px 0;font-weight:bold;text-overflow: ellipsis; overflow: hidden; white-space: nowrap;} #theme_list li .tmli_tit p{height:40px;line-height:40px;padding:0 10px 0;font-weight:bold;text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}
#theme_list li .tmli_tit button.tmli_dt{position:absolute;top:8px;right:10px;padding:5px;background:#111;color:#fff;display:none;border:none} #theme_list li .tmli_tit button.tmli_dt{position:absolute;top:8px;right:10px;padding:5px;background:#111;color:#fff;display:none;border:none}
#theme_list li .tmli_if:hover button.tmli_dt{display:block} #theme_list li .tmli_if:hover button.tmli_dt{display:block}
#theme_list li .theme_sl{float:left;border:none;margin-top:5px;padding:0 5px;height:26px;background:#999;color:#fff} #theme_list li .theme_sl{float:left;border:none;margin-top:5px;padding:0 5px;height:26px;background:#999;color:#fff}
#theme_list li .theme_sl:hover{background:#ff3061} #theme_list li .theme_sl:hover{background:#ff3061}
#theme_list li .theme_deactive{margin-left:4px} #theme_list li .theme_deactive{margin-left:4px}
#theme_list li .theme_sl_use{background:#ff3061;line-height:26px} #theme_list li .theme_sl_use{background:#ff3061;line-height:26px}
#theme_list li .theme_pr{float:right;margin-top:5px;padding:0 5px;height:26px;line-height:24px; border: 1px solid #ccc; background: #fafafa; } #theme_list li .theme_pr{float:right;margin-top:5px;padding:0 5px;height:26px;line-height:24px; border: 1px solid #ccc; background: #fafafa; }
#theme_list li .theme_preview{ float: right; margin-top: 5px; padding:0 5px;height:26px; border: 1px solid #ccc; background: #fafafa; margin-right:3px} #theme_list li .theme_preview{ float: right; margin-top: 5px; padding:0 5px;height:26px; border: 1px solid #ccc; background: #fafafa; margin-right:3px}
#theme_detail{position:fixed;top:50%;height:540px;width:900px;margin-top:-271px;background:#fff;background:#f3f3f3;border:1px solid #000; #theme_detail{position:fixed;top:50%;height:540px;width:900px;margin-top:-271px;background:#fff;background:#f3f3f3;border:1px solid #000;
-webkit-box-shadow: 1px 2px 5px rgba(150,150,150,100.5); -webkit-box-shadow: 1px 2px 5px rgba(150,150,150,100.5);
-moz-box-shadow: 1px 2px 5px rgba(150,150,150,0.5); -moz-box-shadow: 1px 2px 5px rgba(150,150,150,0.5);
box-shadow: 1px 2px 5px rgba(150,150,150,0.5);z-index:1000} box-shadow: 1px 2px 5px rgba(150,150,150,0.5);z-index:1000}
#theme_detail:after{display:block;visibility:hidden;clear:both;content:""} #theme_detail:after{display:block;visibility:hidden;clear:both;content:""}
#theme_detail h2{font-size:1.25em;background:#fff;padding:0 15px;line-height:40px;border-bottom:1px solid #d8d8d8;margin:0} #theme_detail h2{font-size:1.25em;background:#fff;padding:0 15px;line-height:40px;border-bottom:1px solid #d8d8d8;margin:0}
.theme_dt_img{float:left;padding:20px} .theme_dt_img{float:left;padding:20px}
.theme_dt_img img{border:1px solid #aaa;} .theme_dt_img img{border:1px solid #aaa;}
.theme_dt_if{float:left;width:235px;padding:20px 0} .theme_dt_if{float:left;width:235px;padding:20px 0}
.theme_dt_if table{width:100%;border-collapse:collapse;margin:15px 0 0 ;font-size:0.92em} .theme_dt_if table{width:100%;border-collapse:collapse;;margin:15px 0 0 ;font-size:0.92em}
.theme_dt_if table th{padding:5px;background:#fff;border-bottom:1px solid #f3f3f3;vertical-align:top;color:#3f51b5} .theme_dt_if table th{padding:5px;background:#fff;border-bottom:1px solid #f3f3f3;vertical-align:top;color:#3f51b5}
.theme_dt_if table td{padding:5px;background:#fff;border-bottom:1px solid #f3f3f3;line-height:1.56em} .theme_dt_if table td{padding:5px;background:#fff;border-bottom:1px solid #f3f3f3;line-height:1.56em}
.theme_dt_if table td a{text-decoration:underline} .theme_dt_if table td a{text-decoration:underline}
.theme_dt_if p{line-height:1.5em} .theme_dt_if p{line-height:1.5em}
.if_p_bg{display:inline-block;width:20px;height:1px ;background:#000;margin:30px 0 10px} .if_p_bg{display:inline-block;width:20px;height:1px ;background:#000;margin:30px 0 10px}
#theme_detail .theme_dt_btn{position:absolute;top:0px;right:0px;background:#fff;} #theme_detail .theme_dt_btn{position:absolute;top:0px;right:0px;background:#fff;}
#theme_detail .theme_dt_btn .close_btn{border:0;border-left:1px solid #d8d8d8;background:url('../img/close.png') 50% 50% no-repeat;width:40px;height:40px;overflow:hidden;text-indent:-99999px} #theme_detail .theme_dt_btn .close_btn{background:url('../img/close.png') 50% 50% no-repeat;width:40px;height:40px;overflow:hidden;border:0;text-indent:-99999px;border-left:1px solid #d8d8d8}
#theme_detail .theme_dt_btn .close_btn:hover{background-color:#eceffc} #theme_detail .theme_dt_btn .close_btn:hover{background-color:#eceffc}
#theme_detail .theme_dt_btn .btn_03{line-height:28px;display:inline-block;vertical-align:top;margin-top:6px;padding:0 6px;border-radius:5px} #theme_detail .theme_dt_btn .btn_03{line-height:28px;display:inline-block;vertical-align:top;margin-top:6px;padding:0 6px;border-radius:5px}
-16
View File
@@ -147,22 +147,6 @@ if(!isset($member['mb_memo_cnt'])) {
$is_check = 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' "; $sql = " SHOW COLUMNS FROM `{$g5['board_file_table']}` LIKE 'bf_fileurl' ";
+3 -5
View File
@@ -68,17 +68,15 @@ $result = sql_query($sql);
$num = $i + 1; $num = $i + 1;
$bg = 'bg'.($i%2); $bg = 'bg'.($i%2);
$fa_subject = conv_content($row['fa_subject'], 1);
?> ?>
<tr class="<?php echo $bg; ?>"> <tr class="<?php echo $bg; ?>">
<td class="td_num"><?php echo $num; ?></td> <td class="td_num"><?php echo $num; ?></td>
<td class="td_left"><?php echo $fa_subject; ?></td> <td class="td_left"><?php echo stripslashes($row['fa_subject']); ?></td>
<td class="td_num"><?php echo $row['fa_order']; ?></td> <td class="td_num"><?php echo $row['fa_order']; ?></td>
<td class="td_mng td_mng_m"> <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="./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 stripslashes($row['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> <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 stripslashes($row['fa_subject']); ?> </span>삭제</a>
</td> </td>
</tr> </tr>
+1 -1
View File
@@ -18,7 +18,7 @@ check_admin_token();
if ($fm_himg_del) @unlink(G5_DATA_PATH."/faq/{$fm_id}_h"); if ($fm_himg_del) @unlink(G5_DATA_PATH."/faq/{$fm_id}_h");
if ($fm_timg_del) @unlink(G5_DATA_PATH."/faq/{$fm_id}_t"); if ($fm_timg_del) @unlink(G5_DATA_PATH."/faq/{$fm_id}_t");
$fm_subject = strip_tags(clean_xss_attributes($fm_subject)); $fm_subject = strip_tags($fm_subject);
$sql_common = " set fm_subject = '$fm_subject', $sql_common = " set fm_subject = '$fm_subject',
fm_head_html = '$fm_head_html', fm_head_html = '$fm_head_html',
+1 -1
View File
@@ -42,7 +42,7 @@ include_once('./admin.head.php');
<tbody> <tbody>
<tr> <tr>
<th scope="row"><label for="ma_subject">메일 제목<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="ma_subject">메일 제목<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="ma_subject" value="<?php echo get_sanitize_input($ma['ma_subject']); ?>" id="ma_subject" required class="required frm_input" size="100"></td> <td><input type="text" name="ma_subject" value="<?php echo $ma['ma_subject'] ?>" id="ma_subject" required class="required frm_input" size="100"></td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="ma_content">메일 내용<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="ma_content">메일 내용<strong class="sound_only">필수</strong></label></th>
+1 -1
View File
@@ -10,7 +10,7 @@ auth_check($auth[$sub_menu], 'w');
check_admin_token(); check_admin_token();
$ma_id = isset($_POST['ma_id']) ? (int) $_POST['ma_id'] : 0; $ma_id = isset($_POST['ma_id']) ? (int) $_POST['ma_id'] : 0;
$ma_subject = isset($_POST['ma_subject']) ? strip_tags(clean_xss_attributes($_POST['ma_subject'])) : ''; $ma_subject = isset($_POST['ma_subject']) ? strip_tags($_POST['ma_subject']) : '';
if ($w == '') if ($w == '')
{ {
+2 -2
View File
@@ -70,8 +70,8 @@ $colspan = 16;
<div class="local_ov01 local_ov"> <div class="local_ov01 local_ov">
<?php echo $listall ?> <?php echo $listall ?>
<span class="btn_ov01"><span class="ov_txt">총회원수 </span><span class="ov_num"> <?php echo number_format($total_count) ?>명 </span></span> <span class="btn_ov01"><span class="ov_txt">총회원수 </span><span class="ov_num"> <?php echo number_format($total_count) ?>명 </span></span>
<a href="?sst=mb_intercept_date&amp;sod=desc&amp;sfl=<?php echo $sfl ?>&amp;stx=<?php echo $stx ?>" class="btn_ov01" data-tooltip-text="차단된 순으로 정렬합니다.&#xa;전체 데이터를 출력합니다."> <span class="ov_txt">차단 </span><span class="ov_num"><?php echo number_format($intercept_count) ?>명</span></a> <a href="?sst=mb_intercept_date&amp;sod=desc&amp;sfl=<?php echo $sfl ?>&amp;stx=<?php echo $stx ?>" class="btn_ov01"> <span class="ov_txt">차단 </span><span class="ov_num"><?php echo number_format($intercept_count) ?>명</span></a>
<a href="?sst=mb_leave_date&amp;sod=desc&amp;sfl=<?php echo $sfl ?>&amp;stx=<?php echo $stx ?>" class="btn_ov01" data-tooltip-text="탈퇴된 순으로 정렬합니다.&#xa;전체 데이터를 출력합니다."> <span class="ov_txt">탈퇴 </span><span class="ov_num"><?php echo number_format($leave_count) ?>명</span></a> <a href="?sst=mb_leave_date&amp;sod=desc&amp;sfl=<?php echo $sfl ?>&amp;stx=<?php echo $stx ?>" class="btn_ov01"> <span class="ov_txt">탈퇴 </span><span class="ov_num"><?php echo number_format($leave_count) ?>명</span></a>
</div> </div>
<form id="fsearch" name="fsearch" class="local_sch01 local_sch" method="get"> <form id="fsearch" name="fsearch" class="local_sch01 local_sch" method="get">
+3 -3
View File
@@ -159,11 +159,11 @@ function add_menu_list(name, link, code)
list += "<option value=\"0\">사용안함</option>"; list += "<option value=\"0\">사용안함</option>";
list += "</select>"; list += "</select>";
list += "</td>"; list += "</td>";
list += "<td class=\"td_mng\">"; list += "<td class=\"td_mngsmall\">";
<?php if($new == 'new') { ?> <?php if($new == 'new') { ?>
list += "<button type=\"button\" class=\"btn_add_submenu btn_03\">추가</button>\n"; list += "<button type=\"button\" class=\"btn_add_submenu btn\">추가</button>";
<?php } ?> <?php } ?>
list += "<button type=\"button\" class=\"btn_del_menu btn_02\">삭제</button>"; list += "<button type=\"button\" class=\"btn_del_menu btn\">삭제</button>";
list += "</td>"; list += "</td>";
list += "</tr>"; list += "</tr>";
+1 -1
View File
@@ -52,7 +52,7 @@ if($sql) {
<?php } <?php }
switch($type) { switch($type) {
case 'group': case 'group':
$link = G5_BBS_URL.'/group.php?gr_id='.$row['id']; $link = get_pretty_url(G5_GROUP_DIR, $row['id']);
break; break;
case 'board': case 'board':
$link = get_pretty_url($row['id']); $link = get_pretty_url($row['id']);
+2 -4
View File
@@ -21,11 +21,11 @@ for ($i=0; $i<$count; $i++)
{ {
$_POST = array_map_deep('trim', $_POST); $_POST = array_map_deep('trim', $_POST);
$_POST['me_link'][$i] = is_array($_POST['me_link']) ? clean_xss_tags(clean_xss_attributes($_POST['me_link'][$i], 1)) : ''; $_POST['me_link'][$i] = is_array($_POST['me_link']) ? clean_xss_tags($_POST['me_link'][$i], 1) : '';
$code = is_array($_POST['code']) ? strip_tags($_POST['code'][$i]) : ''; $code = is_array($_POST['code']) ? strip_tags($_POST['code'][$i]) : '';
$me_name = is_array($_POST['me_name']) ? strip_tags($_POST['me_name'][$i]) : ''; $me_name = is_array($_POST['me_name']) ? strip_tags($_POST['me_name'][$i]) : '';
$me_link = (preg_match('/^javascript/i', $_POST['me_link'][$i]) || preg_match('/script:/i', $_POST['me_link'][$i])) ? G5_URL : strip_tags(clean_xss_attributes($_POST['me_link'][$i])); $me_link = (preg_match('/^javascript/i', $_POST['me_link'][$i]) || preg_match('/script:/i', $_POST['me_link'][$i])) ? G5_URL : strip_tags($_POST['me_link'][$i]);
if(!$code || !$me_name || !$me_link) if(!$code || !$me_name || !$me_link)
continue; continue;
@@ -68,7 +68,5 @@ for ($i=0; $i<$count; $i++)
sql_query($sql); sql_query($sql);
} }
run_event('admin_menu_list_update');
goto_url('./menu_list.php'); goto_url('./menu_list.php');
?> ?>
+1 -1
View File
@@ -12,7 +12,7 @@ else
check_admin_token(); check_admin_token();
$nw_subject = isset($_POST['nw_subject']) ? strip_tags(clean_xss_attributes($_POST['nw_subject'])) : ''; $nw_subject = isset($_POST['nw_subject']) ? strip_tags($_POST['nw_subject']) : '';
$sql_common = " nw_device = '{$_POST['nw_device']}', $sql_common = " nw_device = '{$_POST['nw_device']}',
nw_begin_time = '{$_POST['nw_begin_time']}', nw_begin_time = '{$_POST['nw_begin_time']}',
+3 -3
View File
@@ -6,9 +6,9 @@ auth_check($auth[$sub_menu], 'w');
check_admin_token(); check_admin_token();
$mb_id = strip_tags(clean_xss_attributes($_POST['mb_id'])); $mb_id = strip_tags($_POST['mb_id']);
$po_point = strip_tags(clean_xss_attributes($_POST['po_point'])); $po_point = strip_tags($_POST['po_point']);
$po_content = strip_tags(clean_xss_attributes($_POST['po_content'])); $po_content = strip_tags($_POST['po_content']);
$expire = preg_replace('/[^0-9]/', '', $_POST['po_expire_term']); $expire = preg_replace('/[^0-9]/', '', $_POST['po_expire_term']);
$mb = get_member($mb_id); $mb = get_member($mb_id);
+1 -1
View File
@@ -37,7 +37,7 @@ include_once('./admin.head.php');
<tbody> <tbody>
<tr> <tr>
<th scope="row"><label for="po_subject">투표 제목<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="po_subject">투표 제목<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="po_subject" value="<?php echo get_sanitize_input($po['po_subject']); ?>" id="po_subject" required class="required frm_input" size="80" maxlength="125"></td> <td><input type="text" name="po_subject" value="<?php echo $po['po_subject'] ?>" id="po_subject" required class="required frm_input" size="80" maxlength="125"></td>
</tr> </tr>
<?php <?php
+1 -1
View File
@@ -40,7 +40,7 @@ foreach( $_POST as $key=>$value ){
if( empty($value) ) continue; if( empty($value) ) continue;
if( in_array($key, $check_keys) ) { if( in_array($key, $check_keys) ) {
$_POST[$key] = strip_tags(clean_xss_attributes($value)); $_POST[$key] = strip_tags($value);
} }
} }
+5 -5
View File
@@ -133,7 +133,7 @@ if(!isset($qaconfig['qa_include_head'])) {
<tr> <tr>
<th scope="row"><label for="qa_title">타이틀<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="qa_title">타이틀<strong class="sound_only">필수</strong></label></th>
<td> <td>
<input type="text" name="qa_title" value="<?php echo get_sanitize_input($qaconfig['qa_title']); ?>" id="qa_title" required class="required frm_input" size="40"> <input type="text" name="qa_title" value="<?php echo $qaconfig['qa_title'] ?>" id="qa_title" required class="required frm_input" size="40">
<a href="<?php echo G5_BBS_URL; ?>/qalist.php" class="btn_frmline">1:1문의 바로가기</a> <a href="<?php echo G5_BBS_URL; ?>/qalist.php" class="btn_frmline">1:1문의 바로가기</a>
</td> </td>
</tr> </tr>
@@ -141,7 +141,7 @@ if(!isset($qaconfig['qa_include_head'])) {
<th scope="row"><label for="qa_category">분류<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="qa_category">분류<strong class="sound_only">필수</strong></label></th>
<td> <td>
<?php echo help('분류와 분류 사이는 | 로 구분하세요. (예: 질문|답변) 첫자로 #은 입력하지 마세요. (예: #질문|#답변 [X])') ?> <?php echo help('분류와 분류 사이는 | 로 구분하세요. (예: 질문|답변) 첫자로 #은 입력하지 마세요. (예: #질문|#답변 [X])') ?>
<input type="text" name="qa_category" value="<?php echo get_sanitize_input($qaconfig['qa_category']); ?>" id="qa_category" required class="required frm_input" size="70"> <input type="text" name="qa_category" value="<?php echo $qaconfig['qa_category'] ?>" id="qa_category" required class="required frm_input" size="70">
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -184,21 +184,21 @@ if(!isset($qaconfig['qa_include_head'])) {
<th scope="row"><label for="qa_send_number">SMS 발신번호</label></th> <th scope="row"><label for="qa_send_number">SMS 발신번호</label></th>
<td> <td>
<?php echo help('SMS 알림 전송시 발신번호로 사용됩니다.'); ?> <?php echo help('SMS 알림 전송시 발신번호로 사용됩니다.'); ?>
<input type="text" name="qa_send_number" value="<?php echo get_sanitize_input($qaconfig['qa_send_number']); ?>" id="qa_send_number" class="frm_input" size="30"> <input type="text" name="qa_send_number" value="<?php echo $qaconfig['qa_send_number'] ?>" id="qa_send_number" class="frm_input" size="30">
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_admin_hp">관리자 휴대폰번호</label></th> <th scope="row"><label for="qa_admin_hp">관리자 휴대폰번호</label></th>
<td> <td>
<?php echo help('관리자 휴대폰번호를 입력하시면 문의글 등록시 등록하신 번호로 SMS 알림이 전송됩니다.<br>SMS 알림을 사용하지 않으시면 알림이 전송되지 않습니다.'); ?> <?php echo help('관리자 휴대폰번호를 입력하시면 문의글 등록시 등록하신 번호로 SMS 알림이 전송됩니다.<br>SMS 알림을 사용하지 않으시면 알림이 전송되지 않습니다.'); ?>
<input type="text" name="qa_admin_hp" value="<?php echo get_sanitize_input($qaconfig['qa_admin_hp']); ?>" id="qa_admin_hp" class="frm_input" size="30"> <input type="text" name="qa_admin_hp" value="<?php echo $qaconfig['qa_admin_hp'] ?>" id="qa_admin_hp" class="frm_input" size="30">
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_admin_email">관리자 이메일</label></th> <th scope="row"><label for="qa_admin_email">관리자 이메일</label></th>
<td> <td>
<?php echo help('관리자 이메일을 입력하시면 문의글 등록시 등록하신 이메일로 알림이 전송됩니다.'); ?> <?php echo help('관리자 이메일을 입력하시면 문의글 등록시 등록하신 이메일로 알림이 전송됩니다.'); ?>
<input type="text" name="qa_admin_email" value="<?php echo get_sanitize_input($qaconfig['qa_admin_email']); ?>" id="qa_admin_email" class="frm_input" size="50"> <input type="text" name="qa_admin_email" value="<?php echo $qaconfig['qa_admin_email'] ?>" id="qa_admin_email" class="frm_input" size="50">
</td> </td>
</tr> </tr>
<tr> <tr>
+1 -10
View File
@@ -12,12 +12,6 @@ $error_msg = '';
$qaconfig = get_qa_config(); $qaconfig = get_qa_config();
$check_keys = array('qa_title', 'qa_category', 'qa_skin', 'qa_mobile_skin', 'qa_use_email', 'qa_req_email', 'qa_use_hp', 'qa_req_hp', 'qa_use_sms', 'qa_send_number', 'qa_admin_hp', 'qa_admin_email', 'qa_subject_len', 'qa_mobile_subject_len', 'qa_page_rows', 'qa_mobile_page_rows', 'qa_image_width', 'qa_upload_size');
foreach($check_keys as $key){
$$key = $_POST[$key] = isset($_POST[$key]) ? strip_tags(clean_xss_attributes($_POST[$key])) : '';
}
$qa_include_head = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($qa_include_head, 0, 255)); $qa_include_head = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($qa_include_head, 0, 255));
$qa_include_tail = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($qa_include_tail, 0, 255)); $qa_include_tail = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($qa_include_tail, 0, 255));
@@ -56,10 +50,7 @@ if( $qa_include_tail && ! is_include_path_check($qa_include_tail, 1) ){
$error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 하단 파일 경로에 포함시킬수 없습니다.'; $error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 하단 파일 경로에 포함시킬수 없습니다.';
} }
if( function_exists('filter_input_include_path') ){ $_POST['qa_title'] = strip_tags($_POST['qa_title']);
$qa_include_head = filter_input_include_path($qa_include_head);
$qa_include_tail = filter_input_include_path($qa_include_tail);
}
$sql = " update {$g5['qa_config_table']} $sql = " update {$g5['qa_config_table']}
set qa_title = '{$_POST['qa_title']}', set qa_title = '{$_POST['qa_title']}',
+12 -38
View File
@@ -9,14 +9,6 @@ $g5['title'] = "SMS 기본설정";
if (!$config['cf_icode_server_ip']) $config['cf_icode_server_ip'] = '211.172.232.124'; if (!$config['cf_icode_server_ip']) $config['cf_icode_server_ip'] = '211.172.232.124';
if (!$config['cf_icode_server_port']) $config['cf_icode_server_port'] = '7295'; if (!$config['cf_icode_server_port']) $config['cf_icode_server_port'] = '7295';
// 아이코드 토큰키 추가
if( ! isset($config['cf_icode_token_key']) ){
$sql = "ALTER TABLE `{$g5['config_table']}`
ADD COLUMN `cf_icode_token_key` VARCHAR(100) NOT NULL DEFAULT '' AFTER `cf_icode_server_port`; ";
sql_query($sql, false);
$config['cf_icode_token_key'] = '';
}
if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw'])
{ {
$userinfo = get_icode_userinfo($config['cf_icode_id'], $config['cf_icode_pw']); $userinfo = get_icode_userinfo($config['cf_icode_id'], $config['cf_icode_pw']);
@@ -31,7 +23,7 @@ if (!$sms5['cf_skin'])
include_once(G5_ADMIN_PATH.'/admin.head.php'); include_once(G5_ADMIN_PATH.'/admin.head.php');
?> ?>
<?php if (!($config['cf_icode_pw'] || $config['cf_icode_token_key'])) { ?> <?php if (!$config['cf_icode_pw']) { ?>
<div class="local_desc01 local_desc"> <div class="local_desc01 local_desc">
<p> <p>
SMS 기능을 사용하시려면 먼저 아이코드에 서비스 신청을 하셔야 합니다.<br> SMS 기능을 사용하시려면 먼저 아이코드에 서비스 신청을 하셔야 합니다.<br>
@@ -55,31 +47,22 @@ if ($config['cf_sms_use'] == 'icode') { // 아이코드 사용
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
<th scope="row"><label for="cf_sms_type">SMS 전송유형</label></th> <th scope="row"><label for="cf_icode_id">아이코드 회원아이디<strong class="sound_only"> 필수</strong></label></th>
<td>
<?php echo help("전송유형을 SMS로 선택하시면 최대 80바이트까지 전송하실 수 있으며<br>LMS로 선택하시면 90바이트 이하는 SMS로, 그 이상은 ".G5_ICODE_LMS_MAX_LENGTH."바이트까지 LMS로 전송됩니다.<br>요금은 건당 SMS는 16원, LMS는 48원입니다."); ?>
<select id="cf_sms_type" name="cf_sms_type">
<option value="" <?php echo get_selected($config['cf_sms_type'], ''); ?>>SMS</option>
<option value="LMS" <?php echo get_selected($config['cf_sms_type'], 'LMS'); ?>>LMS</option>
</select>
</td>
</tr>
<tr class="icode_old_version">
<th scope="row"><label for="cf_icode_id">아이코드 회원아이디<br>(구버전)<strong class="sound_only"> 필수</strong></label></th>
<td> <td>
<?php echo help("아이코드에서 사용하시는 회원아이디를 입력합니다."); ?> <?php echo help("아이코드에서 사용하시는 회원아이디를 입력합니다."); ?>
<input type="text" name="cf_icode_id" value="<?php echo $config['cf_icode_id']; ?>" id="cf_icode_id" class="frm_input"> <input type="text" name="cf_icode_id" value="<?php echo $config['cf_icode_id']; ?>" id="cf_icode_id" required class="frm_input required">
</td> </td>
</tr> </tr>
<tr class="icode_old_version"> <tr>
<th scope="row"><label for="cf_icode_pw">아이코드 비밀번호<br>(구버전)<strong class="sound_only"> 필수</strong></label></th> <th scope="row"><label for="cf_icode_pw">아이코드 비밀번호<strong class="sound_only"> 필수</strong></label></th>
<td> <td>
<?php echo help("아이코드에서 사용하시는 비밀번호를 입력합니다."); ?> <?php echo help("아이코드에서 사용하시는 비밀번호를 입력합니다."); ?>
<input type="password" name="cf_icode_pw" value="<?php echo $config['cf_icode_pw']; ?>" id="cf_icode_pw" class="frm_input"> <input type="password" name="cf_icode_pw" value="<?php echo $config['cf_icode_pw']; ?>" id="cf_icode_pw" required class="frm_input required">
<?php if (!$config['cf_icode_pw']) { ?>현재 비밀번호가 입력되어 있지 않습니다.<?php } ?>
</td> </td>
</tr> </tr>
<tr class="icode_old_version <?php if(!(isset($userinfo['payment']) && $userinfo['payment'])){ echo 'cf_tr_hide'; } ?>"> <tr>
<th scope="row">요금제<br>(구버전)</th> <th scope="row">요금제</th>
<td> <td>
<?php <?php
if ($userinfo['payment'] == 'A') { if ($userinfo['payment'] == 'A') {
@@ -89,30 +72,21 @@ if ($config['cf_sms_use'] == 'icode') { // 아이코드 사용
echo '정액제'; echo '정액제';
echo '<input type="hidden" name="cf_icode_server_port" value="7296">'; echo '<input type="hidden" name="cf_icode_server_port" value="7296">';
} else { } else {
echo '가입해주세요.';
echo '<input type="hidden" name="cf_icode_server_port" value="7295">'; echo '<input type="hidden" name="cf_icode_server_port" value="7295">';
} }
?> ?>
</td> </td>
</tr> </tr>
<?php if ($userinfo['payment'] == 'A') { ?> <?php if ($userinfo['payment'] == 'A') { ?>
<tr class="icode_old_version"> <tr>
<th scope="row">충전 잔액<br>(구버전)</th> <th scope="row">충전 잔액</th>
<td> <td>
<?php echo number_format($userinfo['coin'])?> 원 <?php echo number_format($userinfo['coin'])?> 원
<a href="http://www.icodekorea.com/smsbiz/credit_card_amt.php?icode_id=<?php echo $config['cf_icode_id']; ?>&amp;icode_passwd=<?php echo $config['cf_icode_pw']; ?>" target="_blank" class="btn_frmline">충전하기</a> <a href="http://www.icodekorea.com/smsbiz/credit_card_amt.php?icode_id=<?php echo $config['cf_icode_id']; ?>&amp;icode_passwd=<?php echo $config['cf_icode_pw']; ?>" target="_blank" class="btn_frmline">충전하기</a>
</td> </td>
</tr> </tr>
<?php } ?> <?php } ?>
<tr class="icode_json_version">
<th scope="row"><label for="cf_icode_token_key">아이코드 토큰키<br>(JSON버전)</label></th>
<td>
<?php echo help("아이코드 JSON 버전의 경우 아이코드 토큰키를 입력시 실행됩니다.<br>SMS 전송유형을 LMS로 설정시 90바이트 이내는 SMS, 90 ~ 2000 바이트는 LMS 그 이상은 절삭 되어 LMS로 발송됩니다."); ?>
<input type="text" name="cf_icode_token_key" value="<?php echo $config['cf_icode_token_key']; ?>" id="cf_icode_token_key" class="frm_input" size="40">
<?php echo help("아이코드 사이트 -> 토큰키관리 메뉴에서 생성한 토큰키를 입력합니다."); ?>
<br>
서버아이피 : <?php echo $_SERVER['SERVER_ADDR']; ?>
</td>
</tr>
<tr> <tr>
<th scope="row"><label for="cf_phone">회신번호<strong class="sound_only"> 필수</strong></label></th> <th scope="row"><label for="cf_phone">회신번호<strong class="sound_only"> 필수</strong></label></th>
<td> <td>
+1 -4
View File
@@ -15,7 +15,6 @@ if(!check_vaild_callback($cf_phone))
alert('회신번호가 올바르지 않습니다.'); alert('회신번호가 올바르지 않습니다.');
$userinfo = get_icode_userinfo($cf_icode_id, $cf_icode_pw); $userinfo = get_icode_userinfo($cf_icode_id, $cf_icode_pw);
$cf_icode_server_port = isset($cf_icode_server_port) ? preg_replace('/[^0-9]/', '', $cf_icode_server_port) : '7295';
if ($userinfo['code'] == '202') if ($userinfo['code'] == '202')
alert('아이코드 아이디와 패스워드가 맞지 않습니다.'); alert('아이코드 아이디와 패스워드가 맞지 않습니다.');
@@ -34,12 +33,10 @@ sql_query($sql);
// 아이코드 설정 // 아이코드 설정
$sql = " update {$g5['config_table']} $sql = " update {$g5['config_table']}
set cf_sms_use = '$cf_sms_use', set cf_sms_use = '$cf_sms_use',
cf_sms_type = '$cf_sms_type',
cf_icode_id = '$cf_icode_id', cf_icode_id = '$cf_icode_id',
cf_icode_pw = '$cf_icode_pw', cf_icode_pw = '$cf_icode_pw',
cf_icode_server_ip = '$cf_icode_server_ip', cf_icode_server_ip = '$cf_icode_server_ip',
cf_icode_server_port = '$cf_icode_server_port', cf_icode_server_port = '$cf_icode_server_port' ";
cf_icode_token_key = '$cf_icode_token_key'";
sql_query($sql); sql_query($sql);
goto_url("./config.php"); goto_url("./config.php");
-1
View File
@@ -22,7 +22,6 @@
.sms5_box {position:relative;padding:10px;border-radius:5px;background:#fbec99} .sms5_box {position:relative;padding:10px;border-radius:5px;background:#fbec99}
.sms5_box .box_ico {position:absolute;top:20px;left:-7px;width:7px;height:13px;background:url('../img/box_ico.gif') no-repeat} .sms5_box .box_ico {position:absolute;top:20px;left:-7px;width:7px;height:13px;background:url('../img/box_ico.gif') no-repeat}
.sms5_box .box_txt {border:0;background:transparent;word-break:break-all;resize:none;overflow:hidden} .sms5_box .box_txt {border:0;background:transparent;word-break:break-all;resize:none;overflow:hidden}
.sms5_box textarea.box_txt.is_overview{overflow:visible;min-height:130px}
.sms5_box .box_square {width:100px;height:90px} .sms5_box .box_square {width:100px;height:90px}
#write_wrap {z-index:9} #write_wrap {z-index:9}
+2 -2
View File
@@ -4,8 +4,8 @@ include_once("./_common.php");
auth_check($auth[$sub_menu], "w"); auth_check($auth[$sub_menu], "w");
$fo_name = isset($fo_name) ? strip_tags(clean_xss_attributes($fo_name)) : ''; $fo_name = isset($fo_name) ? strip_tags($fo_name) : '';
$fo_content = isset($fo_content) ? strip_tags(clean_xss_attributes($fo_content)) : ''; $fo_content = isset($fo_content) ? strip_tags($fo_content) : '';
$g5['title'] = "이모티콘 업데이트"; $g5['title'] = "이모티콘 업데이트";
+1 -3
View File
@@ -6,8 +6,6 @@ auth_check($auth[$sub_menu], "w");
$g5['title'] = "이모티콘 "; $g5['title'] = "이모티콘 ";
$fg_no = isset($fg_no) ? (int) $fg_no : '';
if ($w == 'u' && is_numeric($fo_no)) { if ($w == 'u' && is_numeric($fo_no)) {
$write = sql_fetch("select * from {$g5['sms5_form_table']} where fo_no='$fo_no'"); $write = sql_fetch("select * from {$g5['sms5_form_table']} where fo_no='$fo_no'");
$g5['title'] .= '수정'; $g5['title'] .= '수정';
@@ -50,7 +48,7 @@ include_once(G5_ADMIN_PATH.'/admin.head.php');
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="fo_name">제목<strong class="sound_only"> 필수</strong></label></th> <th scope="row"><label for="fo_name">제목<strong class="sound_only"> 필수</strong></label></th>
<td><input type="text" name="fo_name" id="fo_name" required value="<?php echo get_sanitize_input($write['fo_name']); ?>" class="frm_input required" size="70"></td> <td><input type="text" name="fo_name" id="fo_name" required value="<?php echo $write['fo_name']?>" class="frm_input required" size="70"></td>
</tr> </tr>
<tr> <tr>
<th scope="row">메세지</th> <th scope="row">메세지</th>
+2 -2
View File
@@ -224,8 +224,8 @@ if($config['cf_sms_type'] == 'LMS') {
?> ?>
<script> <script>
//act = window.open('sms_ing.php', 'act', 'width=300, height=200'); act = window.open('sms_ing.php', 'act', 'width=300, height=200');
//act.close(); act.close();
location.href = 'history_view.php?wr_no=<?php echo $wr_no?>&wr_renum=<?php echo $new_wr_renum?>'; location.href = 'history_view.php?wr_no=<?php echo $wr_no?>&wr_renum=<?php echo $new_wr_renum?>';
</script> </script>
<?php <?php
+3 -4
View File
@@ -4,7 +4,6 @@ include_once("./_common.php");
$spage_size = 20; $spage_size = 20;
$colspan = 10; $colspan = 10;
$re_text = '';
$st = isset($st) ? strip_tags($st) : ''; $st = isset($st) ? strip_tags($st) : '';
$ssv = isset($ssv) ? strip_tags($ssv) : ''; $ssv = isset($ssv) ? strip_tags($ssv) : '';
@@ -61,8 +60,8 @@ function re_send()
if (!confirm('전송에 실패한 SMS 를 재전송 하시겠습니까?')) if (!confirm('전송에 실패한 SMS 를 재전송 하시겠습니까?'))
return; return;
//act = window.open('sms_ing.php', 'act', 'width=300, height=200'); act = window.open('sms_ing.php', 'act', 'width=300, height=200');
//act.focus(); act.focus();
location.href = './history_send.php?w=f&page=<?php echo $page?>&st=<?php echo $st?>&sv=<?php echo $sv?>&wr_no=<?php echo $wr_no?>&wr_renum=<?php echo $wr_renum?>'; location.href = './history_send.php?w=f&page=<?php echo $page?>&st=<?php echo $st?>&sv=<?php echo $sv?>&wr_no=<?php echo $wr_no?>&wr_renum=<?php echo $wr_renum?>';
<?php } ?> <?php } ?>
@@ -105,7 +104,7 @@ function all_send()
<div id="con_sms" class="sms5_box"> <div id="con_sms" class="sms5_box">
<span class="box_ico"></span> <span class="box_ico"></span>
<textarea class="box_txt is_overview" readonly><?php echo $write['wr_message'];?></textarea> <textarea class="box_txt" readonly><?php echo $write['wr_message'];?></textarea>
</div> </div>
<?php if ($write['wr_re_total'] && !$wr_renum) { ?> <?php if ($write['wr_re_total'] && !$wr_renum) { ?>
-1
View File
@@ -53,7 +53,6 @@ eval("\$file = \"$file\";");
$f = explode(";", $file); $f = explode(";", $file);
for ($i=0; $i<count($f); $i++) { for ($i=0; $i<count($f); $i++) {
if (trim($f[$i]) == "") continue; if (trim($f[$i]) == "") continue;
$f[$i] = get_db_create_replace($f[$i]);
sql_query($f[$i]) or die(mysqli_error()); sql_query($f[$i]) or die(mysqli_error());
} }
// 테이블 생성 ------------------------------------ // 테이블 생성 ------------------------------------
+4 -6
View File
@@ -13,12 +13,10 @@ $g5['title'] = "휴대폰번호 관리";
if ($page < 1) $page = 1; if ($page < 1) $page = 1;
$bg_no = isset($bg_no) ? preg_replace('/[^0-9]/i', '', $bg_no) : ''; $bg_no = isset($bg_no) ? (int) $bg_no : 0;
$st = isset($st) ? preg_replace('/[^a-z0-9]/i', '', $st) : ''; $st = isset($st) ? preg_replace('/[^a-z0-9]/i', '', $st) : '';
$sql_korean = $sql_group = $sql_search = $sql_no_hp = ''; if (is_numeric($bg_no))
if (is_numeric($bg_no) && $bg_no)
$sql_group = " and bg_no='$bg_no' "; $sql_group = " and bg_no='$bg_no' ";
else else
$sql_group = ""; $sql_group = "";
@@ -129,9 +127,9 @@ function no_hp_click(val)
<label for="bg_no" class="sound_only">그룹명</label> <label for="bg_no" class="sound_only">그룹명</label>
<select name="bg_no" id="bg_no" onchange="location.href='<?php echo $_SERVER['SCRIPT_NAME']?>?bg_no='+this.value;"> <select name="bg_no" id="bg_no" onchange="location.href='<?php echo $_SERVER['SCRIPT_NAME']?>?bg_no='+this.value;">
<option value=""<?php echo get_selected('', $bg_no); ?>> 전체 </option> <option value=""<?php echo get_selected('', $bg_no); ?>> 전체 </option>
<option value="<?php echo $no_group['bg_no']?>"<?php echo get_selected($no_group['bg_no'], $bg_no); ?>> <?php echo $no_group['bg_name']?> (<?php echo number_format($no_group['bg_count'])?> 명) </option> <option value="<?php echo $no_group['bg_no']?>"<?php echo get_selected($bg_no, $no_group['bg_no']); ?>> <?php echo $no_group['bg_name']?> (<?php echo number_format($no_group['bg_count'])?> 명) </option>
<?php for($i=0; $i<count($group); $i++) {?> <?php for($i=0; $i<count($group); $i++) {?>
<option value="<?php echo $group[$i]['bg_no']?>"<?php echo get_selected($group[$i]['bg_no'], $bg_no);?>> <?php echo $group[$i]['bg_name']?> (<?php echo number_format($group[$i]['bg_count'])?> 명) </option> <option value="<?php echo $group[$i]['bg_no']?>"<?php echo get_selected($bg_no, $group[$i]['bg_no']);?>> <?php echo $group[$i]['bg_name']?> (<?php echo number_format($group[$i]['bg_count'])?> 명) </option>
<?php } ?> <?php } ?>
</select> </select>
<input type="checkbox" name="no_hp" id="no_hp" <?php echo $no_hp_checked?> onclick="no_hp_click(this.checked)"> <input type="checkbox" name="no_hp" id="no_hp" <?php echo $no_hp_checked?> onclick="no_hp_click(this.checked)">
+2 -2
View File
@@ -129,7 +129,7 @@ function num_group_submit(f)
<select name="select_bg_no_999" id="select_bg_no_999" onchange="move(<?php echo $no_group['bg_no']?>, '<?php echo $no_group['bg_name']?>', this);" > <select name="select_bg_no_999" id="select_bg_no_999" onchange="move(<?php echo $no_group['bg_no']?>, '<?php echo $no_group['bg_name']?>', this);" >
<option value=""></option> <option value=""></option>
<?php for ($i=0; $i<count($group); $i++) { ?> <?php for ($i=0; $i<count($group); $i++) { ?>
<option value="<?php echo $group[$i]['bg_no']?>"> <?php echo get_sanitize_input($group[$i]['bg_name']); ?> </option> <option value="<?php echo $group[$i]['bg_no']?>"> <?php echo $group[$i]['bg_name']?> </option>
<?php } ?> <?php } ?>
</select> </select>
</td> </td>
@@ -150,7 +150,7 @@ function num_group_submit(f)
</td> </td>
<td> <td>
<label for="bg_name_<?php echo $i; ?>" class="sound_only">그룹명</label> <label for="bg_name_<?php echo $i; ?>" class="sound_only">그룹명</label>
<input type="text" name="bg_name[<?php echo $i; ?>]" value="<?php echo get_sanitize_input($group[$i]['bg_name']); ?>" id="bg_name_<?php echo $i; ?>" class="frm_input"> <input type="text" name="bg_name[<?php echo $i; ?>]" value="<?php echo $group[$i]['bg_name']?>" id="bg_name_<?php echo $i; ?>" class="frm_input">
</td> </td>
<td class="td_num"><?php echo number_format($group[$i]['bg_count'])?></td> <td class="td_num"><?php echo number_format($group[$i]['bg_count'])?></td>
<td class="td_num"><?php echo number_format($group[$i]['bg_member'])?></td> <td class="td_num"><?php echo number_format($group[$i]['bg_member'])?></td>
+5 -5
View File
@@ -11,7 +11,7 @@ if ($w == 'u') // 업데이트
// 실제 번호를 넘김 // 실제 번호를 넘김
$k = $_POST['chk'][$i]; $k = $_POST['chk'][$i];
$bg_no = (int) $_POST['bg_no'][$k]; $bg_no = (int) $_POST['bg_no'][$k];
$bg_name = strip_tags(clean_xss_attributes($_POST['bg_name'][$k])); $bg_name = strip_tags($_POST['bg_name'][$k]);
if (!is_numeric($bg_no)) if (!is_numeric($bg_no))
alert('그룹 고유번호가 없습니다.'); alert('그룹 고유번호가 없습니다.');
@@ -23,11 +23,11 @@ if ($w == 'u') // 업데이트
if (!strlen(trim($bg_name))) if (!strlen(trim($bg_name)))
alert('그룹명을 입력해주세요'); alert('그룹명을 입력해주세요');
$res = sql_fetch("select bg_name from {$g5['sms5_book_group_table']} where bg_no<>'$bg_no' and bg_name='".sql_real_escape_string($bg_name)."'"); $res = sql_fetch("select bg_name from {$g5['sms5_book_group_table']} where bg_no<>'$bg_no' and bg_name='$bg_name'");
if ($res) if ($res)
alert('같은 그룹명이 존재합니다.'); alert('같은 그룹명이 존재합니다.');
sql_query("update {$g5['sms5_book_group_table']} set bg_name='".sql_real_escape_string($bg_name)."' where bg_no='$bg_no'"); sql_query("update {$g5['sms5_book_group_table']} set bg_name='".addslashes($bg_name)."' where bg_no='$bg_no'");
} }
} }
else if ($w == 'de') // 그룹삭제 else if ($w == 'de') // 그룹삭제
@@ -63,7 +63,7 @@ else if ($w == 'em') // 비우기
} }
else // 등록 else // 등록
{ {
$bg_name = strip_tags(clean_xss_attributes($bg_name)); $bg_name = strip_tags($bg_name);
if (!strlen(trim($bg_name))) if (!strlen(trim($bg_name)))
alert('그룹명을 입력해주세요'); alert('그룹명을 입력해주세요');
@@ -72,7 +72,7 @@ else // 등록
if ($res) if ($res)
alert('같은 그룹명이 존재합니다.'); alert('같은 그룹명이 존재합니다.');
sql_query("insert into {$g5['sms5_book_group_table']} set bg_name='$bg_name'"); sql_query("insert into {$g5['sms5_book_group_table']} set bg_name='".addslashes($bg_name)."'");
} }
goto_url('./num_group.php'); goto_url('./num_group.php');
+1 -1
View File
@@ -149,7 +149,7 @@ CREATE TABLE `{$g5['sms5_write_table']}` (
`wr_no` int(11) NOT NULL default '1', `wr_no` int(11) NOT NULL default '1',
`wr_renum` int(11) NOT NULL default '0', `wr_renum` int(11) NOT NULL default '0',
`wr_reply` varchar(255) NOT NULL default '', `wr_reply` varchar(255) NOT NULL default '',
`wr_message` text NOT NULL, `wr_message` varchar(255) NOT NULL default '',
`wr_booking` datetime NOT NULL default '0000-00-00 00:00:00', `wr_booking` datetime NOT NULL default '0000-00-00 00:00:00',
`wr_total` int(11) NOT NULL default '0', `wr_total` int(11) NOT NULL default '0',
`wr_re_total` int(11) NOT NULL default '0', `wr_re_total` int(11) NOT NULL default '0',
+7 -8
View File
@@ -266,8 +266,8 @@ function sms5_chk_send(f)
w = document.body.clientWidth/2 - 200; w = document.body.clientWidth/2 - 200;
h = document.body.clientHeight/2 - 100; h = document.body.clientHeight/2 - 100;
//act = window.open('sms_ing.php', 'act', 'width=300, height=200, left=' + w + ', top=' + h); act = window.open('sms_ing.php', 'act', 'width=300, height=200, left=' + w + ', top=' + h);
//act.focus(); act.focus();
f.send_list.value = list; f.send_list.value = list;
return true; return true;
@@ -407,7 +407,6 @@ function byte_check(wr_message, sms_bytes)
var conts = document.getElementById(wr_message); var conts = document.getElementById(wr_message);
var bytes = document.getElementById(sms_bytes); var bytes = document.getElementById(sms_bytes);
var max_bytes = document.getElementById("sms_max_bytes"); var max_bytes = document.getElementById("sms_max_bytes");
var lms_max_length = <?php echo G5_ICODE_LMS_MAX_LENGTH;?>
var i = 0; var i = 0;
var cnt = 0; var cnt = 0;
@@ -428,14 +427,14 @@ function byte_check(wr_message, sms_bytes)
<?php if($config['cf_sms_type'] == 'LMS') { ?> <?php if($config['cf_sms_type'] == 'LMS') { ?>
if(cnt > 90) if(cnt > 90)
max_bytes.innerHTML = lms_max_length; max_bytes.innerHTML = 1500;
else else
max_bytes.innerHTML = 90; max_bytes.innerHTML = 90;
if (cnt > lms_max_length) if (cnt > 1500)
{ {
exceed = cnt - lms_max_length; exceed = cnt - 1500;
alert('메시지 내용은 '+ lms_max_length +'바이트를 넘을수 없습니다.\n\n작성하신 메세지 내용은 '+ exceed +'byte가 초과되었습니다.\n\n초과된 부분은 자동으로 삭제됩니다.'); alert('메시지 내용은 1500바이트를 넘을수 없습니다.\n\n작성하신 메세지 내용은 '+ exceed +'byte가 초과되었습니다.\n\n초과된 부분은 자동으로 삭제됩니다.');
var tcnt = 0; var tcnt = 0;
var xcnt = 0; var xcnt = 0;
var tmp = conts.value; var tmp = conts.value;
@@ -448,7 +447,7 @@ function byte_check(wr_message, sms_bytes)
tcnt += 1; tcnt += 1;
} }
if (tcnt > lms_max_length) { if (tcnt > 1500) {
tmp = tmp.substring(0,i); tmp = tmp.substring(0,i);
break; break;
} else { } else {
-2
View File
@@ -7,8 +7,6 @@ while ($res = sql_fetch_array($qry)) array_push($group, $res);
$res = sql_fetch("select count(*) as cnt from `{$g5['sms5_form_table']}` where fg_no=0"); $res = sql_fetch("select count(*) as cnt from `{$g5['sms5_form_table']}` where fg_no=0");
$no_count = $res['cnt']; $no_count = $res['cnt'];
$fg_no = isset($fg_no) ? (int) $fg_no : '';
?> ?>
<form name="emo_frm"> <form name="emo_frm">
+18 -36
View File
@@ -6,24 +6,8 @@ auth_check($auth[$sub_menu], "w");
check_admin_token(); check_admin_token();
$result = sql_query("describe `{$g5['sms5_write_table']}`");
while ($row = sql_fetch_array($result)){
if( $row['Field'] === 'wr_message' && $row['Type'] === 'varchar(255)' ){
sql_query("ALTER TABLE `{$g5['sms5_write_table']}` MODIFY wr_message TEXT NOT NULL;", false);
break;
}
}
$g5['title'] = "문자전송중"; $g5['title'] = "문자전송중";
if ($config['cf_sms_use'] != 'icode') {
alert('기본환경설정에서 icode sms 사용이 비활성화 되어 있습니다.');
}
if ( ! (($config['cf_icode_id'] && $config['cf_icode_pw']) || $config['cf_icode_token_key']) ) {
alert('아이코드 설정값이 존재하지 않습니다.');
}
$wr_reply = preg_replace('#[^0-9\-]#', '', trim($wr_reply)); $wr_reply = preg_replace('#[^0-9\-]#', '', trim($wr_reply));
$wr_message = clean_xss_tags(trim($wr_message)); $wr_message = clean_xss_tags(trim($wr_message));
@@ -110,12 +94,12 @@ while ($row = array_shift($send_list))
$hp = get_hp($item[$i][1], 0); $hp = get_hp($item[$i][1], 0);
$name = $item[$i][0]; $name = $item[$i][0];
if(!$hp) continue 2; if(!$hp) continue;
if ($wr_overlap && array_overlap($hps, $hp)) { if ($wr_overlap && array_overlap($hps, $hp)) {
$overlap++; $overlap++;
array_push( $duplicate_data['hp'], $row['bk_hp'] ); array_push( $duplicate_data['hp'], $row['bk_hp'] );
continue 2; continue;
} }
array_push($list, array('bk_hp' => $hp, 'bk_name' => $name)); array_push($list, array('bk_hp' => $hp, 'bk_name' => $name));
@@ -127,12 +111,12 @@ while ($row = array_shift($send_list))
$row = sql_fetch("select * from {$g5['sms5_book_table']} where bk_no='$item[$i]'"); $row = sql_fetch("select * from {$g5['sms5_book_table']} where bk_no='$item[$i]'");
$row['bk_hp'] = get_hp($row['bk_hp'], 0); $row['bk_hp'] = get_hp($row['bk_hp'], 0);
if(!$row['bk_hp']) continue 2; if(!$row['bk_hp']) continue;
if ($wr_overlap && array_overlap($hps, $row['bk_hp'])) { if ($wr_overlap && array_overlap($hps, $row['bk_hp'])) {
$overlap++; $overlap++;
array_push( $duplicate_data['hp'], $row['bk_hp'] ); array_push( $duplicate_data['hp'], $row['bk_hp'] );
continue 2; continue;
} }
array_push($list, $row); array_push($list, $row);
array_push($hps, $row['bk_hp']); array_push($hps, $row['bk_hp']);
@@ -157,11 +141,14 @@ if ($wr_by && $wr_bm && $wr_bd && $wr_bh && $wr_bi) {
$booking = ''; $booking = '';
} }
if ($config['cf_sms_use'] != 'icode') {
alert('기본환경설정에서 icode sms 사용이 비활성화 되어 있습니다.');
}
include_once(G5_ADMIN_PATH.'/admin.head.php'); include_once(G5_ADMIN_PATH.'/admin.head.php');
$reply = str_replace('-', '', trim($wr_reply)); $reply = str_replace('-', '', trim($wr_reply));
$db_wr_message = conv_unescape_nl($wr_message); $wr_message = conv_unescape_nl($wr_message);
$wr_message = conv_unescape_nl(stripslashes($wr_message));
$SMS = new SMS5; $SMS = new SMS5;
@@ -255,7 +242,7 @@ if($config['cf_sms_type'] == 'LMS') {
} }
} }
sql_query("insert into {$g5['sms5_write_table']} set wr_no='$wr_no', wr_renum=0, wr_reply='$wr_reply', wr_message='$db_wr_message', wr_success='$wr_success', wr_failure='$wr_failure', wr_memo='$str_serialize', wr_booking='$wr_booking', wr_total='$wr_total', wr_datetime='".G5_TIME_YMDHIS."'"); sql_query("insert into {$g5['sms5_write_table']} set wr_no='$wr_no', wr_renum=0, wr_reply='$wr_reply', wr_message='$wr_message', wr_success='$wr_success', wr_failure='$wr_failure', wr_memo='$str_serialize', wr_booking='$wr_booking', wr_total='$wr_total', wr_datetime='".G5_TIME_YMDHIS."'");
} }
} else { } else {
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']); $SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
@@ -273,7 +260,7 @@ if($config['cf_sms_type'] == 'LMS') {
else else
$wr_no = 1; $wr_no = 1;
sql_query("insert into {$g5['sms5_write_table']} set wr_no='$wr_no', wr_renum=0, wr_reply='$wr_reply', wr_message='$db_wr_message', wr_booking='$wr_booking', wr_total='$wr_total', wr_datetime='".G5_TIME_YMDHIS."'"); sql_query("insert into {$g5['sms5_write_table']} set wr_no='$wr_no', wr_renum=0, wr_reply='$wr_reply', wr_message='$wr_message', wr_booking='$wr_booking', wr_total='$wr_total', wr_datetime='".G5_TIME_YMDHIS."'");
$wr_success = 0; $wr_success = 0;
$wr_failure = 0; $wr_failure = 0;
@@ -337,16 +324,11 @@ if($config['cf_sms_type'] == 'LMS') {
function win_close_alert($msg) { function win_close_alert($msg) {
$html = "<script>".PHP_EOL; $html = "<script>
//$html .= "act = window.open('sms_ing.php', 'act', 'width=300, height=200');".PHP_EOL; act = window.open('sms_ing.php', 'act', 'width=300, height=200');
//$html .= "act.close();".PHP_EOL; act.close();
$html .= "alert('$msg'); alert('$msg');
if ('referrer' in document) { history.back();</script>";
window.location = document.referrer;
} else {
window.history.back();
}
</script>";
echo $html; echo $html;
exit; exit;
@@ -354,8 +336,8 @@ function win_close_alert($msg) {
?> ?>
<script> <script>
//act = window.open('sms_ing.php', 'act', 'width=300, height=200'); act = window.open('sms_ing.php', 'act', 'width=300, height=200');
//act.close(); act.close();
location.href = 'history_view.php?wr_no=<?php echo $wr_no?>'; location.href = 'history_view.php?wr_no=<?php echo $wr_no?>';
</script> </script>
<?php <?php
+3 -3
View File
@@ -29,7 +29,7 @@ if(!in_array($type, $arr_type)) {
} }
if($type == 'board') { if($type == 'board') {
$keys = run_replace('theme_config_load_keys', array('bo_gallery_cols', 'bo_gallery_width', 'bo_gallery_height', 'bo_mobile_gallery_width', 'bo_mobile_gallery_height', 'bo_image_width'), $type); $keys = array('bo_gallery_cols', 'bo_gallery_width', 'bo_gallery_height', 'bo_mobile_gallery_width', 'bo_mobile_gallery_height', 'bo_image_width');
$tconfig = get_theme_config_value($config['cf_theme'], implode(',', $keys)); $tconfig = get_theme_config_value($config['cf_theme'], implode(',', $keys));
$i = 0; $i = 0;
@@ -43,7 +43,7 @@ if($type == 'board') {
if($i == 0) if($i == 0)
$data['error'] = '적용할 게시판 이미지 설정이 없습니다.'; $data['error'] = '적용할 게시판 이미지 설정이 없습니다.';
} else if($type == 'conf_skin') { } else if($type == 'conf_skin') {
$keys = run_replace('theme_config_load_keys', array('cf_new_skin', 'cf_mobile_new_skin', 'cf_search_skin', 'cf_mobile_search_skin', 'cf_connect_skin', 'cf_mobile_connect_skin', 'cf_faq_skin', 'cf_mobile_faq_skin'), $type); $keys = array('cf_new_skin', 'cf_mobile_new_skin', 'cf_search_skin', 'cf_mobile_search_skin', 'cf_connect_skin', 'cf_mobile_connect_skin', 'cf_faq_skin', 'cf_mobile_faq_skin');
$tconfig = get_theme_config_value($config['cf_theme'], implode(',', $keys)); $tconfig = get_theme_config_value($config['cf_theme'], implode(',', $keys));
@@ -58,7 +58,7 @@ if($type == 'board') {
if($i == 0) if($i == 0)
$data['error'] = '적용할 기본환경 스킨 설정이 없습니다.'; $data['error'] = '적용할 기본환경 스킨 설정이 없습니다.';
} else if($type == 'conf_member') { } else if($type == 'conf_member') {
$keys = run_replace('theme_config_load_keys', array('cf_member_skin', 'cf_mobile_member_skin'), $type); $keys = array('cf_member_skin', 'cf_mobile_member_skin');
$tconfig = get_theme_config_value($config['cf_theme'], implode(',', $keys)); $tconfig = get_theme_config_value($config['cf_theme'], implode(',', $keys));
+1 -1
View File
@@ -12,13 +12,13 @@ if(!in_array($theme, $theme_dir))
die('선택하신 테마가 설치되어 있지 않습니다.'); die('선택하신 테마가 설치되어 있지 않습니다.');
$info = get_theme_info($theme); $info = get_theme_info($theme);
$name = get_text($info['theme_name']);
if($info['screenshot']) if($info['screenshot'])
$screenshot = '<img src="'.$info['screenshot'].'" alt="'.$name.'">'; $screenshot = '<img src="'.$info['screenshot'].'" alt="'.$name.'">';
else else
$screenshot = '<img src="'.G5_ADMIN_URL.'/img/theme_img.jpg" alt="">'; $screenshot = '<img src="'.G5_ADMIN_URL.'/img/theme_img.jpg" alt="">';
$name = get_text($info['theme_name']);
if($info['theme_uri']) { if($info['theme_uri']) {
$name = '<a href="'.set_http($info['theme_uri']).'" target="_blank" class="thdt_home">'.$name.'</a>'; $name = '<a href="'.set_http($info['theme_uri']).'" target="_blank" class="thdt_home">'.$name.'</a>';
} }
-2
View File
@@ -68,7 +68,5 @@ if($_POST['set_default_skin'] == 1) {
} }
} }
run_event('adm_theme_update', $theme, $_POST['set_default_skin']);
die(''); die('');
?> ?>
+1 -9
View File
@@ -3,18 +3,10 @@ include_once('./_common.php');
$call = isset($_REQUEST['call']) ? strtolower(preg_replace('/[^a-z0-9_]/i', '', $_REQUEST['call'])) : ''; $call = isset($_REQUEST['call']) ? strtolower(preg_replace('/[^a-z0-9_]/i', '', $_REQUEST['call'])) : '';
if( ! $call ){ if( ! $call || ! $is_admin ){
return; return;
} }
if( ! $is_admin ){
$sql = " select count(*) as cnt from {$g5['auth_table']} where mb_id = '{$member['mb_id']}' ";
$row = sql_fetch($sql);
if ( ! $row['cnt']) {
return;
}
}
run_event('admin_request_handler_'.$call, $arr_query, $token); run_event('admin_request_handler_'.$call, $arr_query, $token);
$sub_menu = admin_menu_find_by($call, 'sub_menu'); $sub_menu = admin_menu_find_by($call, 'sub_menu');
-5
View File
@@ -11,11 +11,6 @@ include_once(G5_PLUGIN_PATH.'/jquery-ui/datepicker.php');
$colspan = 6; $colspan = 6;
$listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'">처음</a>'; //페이지 처음으로 (초기화용도) $listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'">처음</a>'; //페이지 처음으로 (초기화용도)
$sql_search = '';
if(isset($sfl) && $sfl && !in_array($sfl, array('vi_ip','vi_date','vi_time','vi_referer','vi_agent','vi_browser','vi_os','vi_device')) ) {
$sfl = '';
}
?> ?>
<div class="local_sch local_sch01"> <div class="local_sch local_sch01">
+12 -12
View File
@@ -6,27 +6,27 @@ check_demo();
auth_check($auth[$sub_menu], 'r'); auth_check($auth[$sub_menu], 'r');
$g5['title'] = '글,댓글 현황';
include_once ('./admin.head.php');
// http://www.jqplot.com/ // http://www.jqplot.com/
add_stylesheet('<link rel="stylesheet" href="'.G5_PLUGIN_URL.'/jqplot/jquery.jqplot.css">', 1); add_stylesheet('<link rel="stylesheet" href="'.G5_PLUGIN_URL.'/jqplot/jquery.jqplot.css">', 0);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/jquery.jqplot.js"></script>', 1); add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/jquery.jqplot.js"></script>', 0);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/plugins/jqplot.canvasTextRenderer.min.js"></script>', 1); add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/plugins/jqplot.canvasTextRenderer.min.js"></script>', 0);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/plugins/jqplot.categoryAxisRenderer.min.js"></script>', 1); add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/plugins/jqplot.categoryAxisRenderer.min.js"></script>', 0);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/plugins/jqplot.pointLabels.min.js"></script>', 1); add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/plugins/jqplot.pointLabels.min.js"></script>', 0);
add_javascript('<!--[if lt IE 9]><script src="'.G5_PLUGIN_URL.'/jqplot/excanvas.js"></script><![endif]-->', 1); add_javascript('<!--[if lt IE 9]><script src="'.G5_PLUGIN_URL.'/jqplot/excanvas.js"></script><![endif]-->', 0);
if (!($graph == 'line' || $graph == 'bar')) if (!($graph == 'line' || $graph == 'bar'))
$graph = 'line'; $graph = 'line';
if ($graph == 'bar') { if ($graph == 'bar') {
// 바 타입으로 사용하는 코드입니다. // 바 타입으로 사용하는 코드입니다.
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/jqplot.barRenderer.min.js"></script>', 1); add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/jqplot.barRenderer.min.js"></script>', 0);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/jqplot.categoryAxisRenderer.min.js"></script>', 1); add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/jqplot.categoryAxisRenderer.min.js"></script>', 0);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/jqplot.pointLabels.min.js"></script>', 1); add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/jqplot.pointLabels.min.js"></script>', 0);
} }
$g5['title'] = '글,댓글 현황';
include_once ('./admin.head.php');
$period_array = array( $period_array = array(
'오늘'=>array('시간', 0), '오늘'=>array('시간', 0),
'어제'=>array('시간', 0), '어제'=>array('시간', 0),
+1 -1
View File
@@ -53,7 +53,7 @@ if($config['cf_leave_day'] > 0) {
} }
// 음성 캡챠 파일 삭제 // 음성 캡챠 파일 삭제
$captcha_mp3 = glob(G5_DATA_PATH.'/cache/kcaptcha-*.mp3'); $captcha_mp3 = glob(G5_PATH.'/data/cache/kcaptcha-*.mp3');
if($captcha_mp3 && is_array($captcha_mp3)) { if($captcha_mp3 && is_array($captcha_mp3)) {
foreach ($captcha_mp3 as $file) { foreach ($captcha_mp3 as $file) {
if (filemtime($file) + 86400 < G5_SERVER_TIME) { if (filemtime($file) + 86400 < G5_SERVER_TIME) {
+1 -1
View File
@@ -88,5 +88,5 @@ delete_cache_latest($bo_table);
run_event('bbs_delete_comment', $comment_id, $board); run_event('bbs_delete_comment', $comment_id, $board);
goto_url(short_url_clean(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$write['wr_parent'].'&amp;page='.$page. $qstr)); goto_url(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$write['wr_parent'].'&amp;page='.$page. $qstr);
?> ?>
+5 -7
View File
@@ -100,8 +100,7 @@ if(preg_match("/[\xA1-\xFE][\xA1-\xFE]/", $file['bf_source'])){
} }
*/ */
//$original = urlencode($file['bf_source']); $original = urlencode($file['bf_source']);
$original = rawurlencode($file['bf_source']);
@include_once($board_skin_path.'/download.tail.skin.php'); @include_once($board_skin_path.'/download.tail.skin.php');
@@ -109,18 +108,17 @@ run_event('download_file_header', $file, $file_exist_check);
if(preg_match("/msie/i", $_SERVER['HTTP_USER_AGENT']) && preg_match("/5\.5/", $_SERVER['HTTP_USER_AGENT'])) { if(preg_match("/msie/i", $_SERVER['HTTP_USER_AGENT']) && preg_match("/5\.5/", $_SERVER['HTTP_USER_AGENT'])) {
header("content-type: doesn/matter"); header("content-type: doesn/matter");
header("content-length: ".filesize($filepath)); header("content-length: ".filesize("$filepath"));
header("content-disposition: attachment; filename=\"$original\""); header("content-disposition: attachment; filename=\"$original\"");
header("content-transfer-encoding: binary"); header("content-transfer-encoding: binary");
} else if (preg_match("/Firefox/i", $_SERVER['HTTP_USER_AGENT'])){ } else if (preg_match("/Firefox/i", $_SERVER['HTTP_USER_AGENT'])){
header("content-type: file/unknown"); header("content-type: file/unknown");
header("content-length: ".filesize($filepath)); header("content-length: ".filesize("$filepath"));
//header("content-disposition: attachment; filename=\"".basename($file['bf_source'])."\""); header("content-disposition: attachment; filename=\"".basename($file['bf_source'])."\"");
header("content-disposition: attachment; filename=\"".$original."\"");
header("content-description: php generated data"); header("content-description: php generated data");
} else { } else {
header("content-type: file/unknown"); header("content-type: file/unknown");
header("content-length: ".filesize($filepath)); header("content-length: ".filesize("$filepath"));
header("content-disposition: attachment; filename=\"$original\""); header("content-disposition: attachment; filename=\"$original\"");
header("content-description: php generated data"); header("content-description: php generated data");
} }
+1 -5
View File
@@ -84,8 +84,6 @@ if(isset($_POST['js']) && $_POST['js'] === "on") {
$count = $row['count']; $count = $row['count'];
run_event('bbs_increase_good_json', $bo_table, $wr_id, $good);
print_result($error, $count); print_result($error, $count);
} }
} }
@@ -94,7 +92,7 @@ if(isset($_POST['js']) && $_POST['js'] === "on") {
if (!$is_member) if (!$is_member)
{ {
$href = G5_BBS_URL.'/login.php?'.$qstr.'&amp;url='.urlencode(get_pretty_url($bo_table, $wr_id)); $href = './login.php?'.$qstr.'&amp;url='.urlencode(get_pretty_url($bo_table, $wr_id));
alert('회원만 가능합니다.', $href); alert('회원만 가능합니다.', $href);
} }
@@ -150,8 +148,6 @@ if(isset($_POST['js']) && $_POST['js'] === "on") {
$href = get_pretty_url($bo_table, $wr_id); $href = get_pretty_url($bo_table, $wr_id);
run_event('bbs_increase_good_html', $bo_table, $wr_id, $good, $href);
alert("이 글을 $status 하셨습니다.", '', false); alert("이 글을 $status 하셨습니다.", '', false);
} }
} }
+1 -1
View File
@@ -39,7 +39,7 @@ $sql .= " order by bo_order ";
$result = sql_query($sql); $result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) { for ($i=0; $row=sql_fetch_array($result); $i++) {
$lt_style = ""; $lt_style = "";
if ($i%3 !== 0) $lt_style = "margin-left:2%"; if ($i%2==1) $lt_style = "margin-left:2%";
else $lt_style = ""; else $lt_style = "";
?> ?>
<div style="float:left;<?php echo $lt_style ?>" class="lt_wr"> <div style="float:left;<?php echo $lt_style ?>" class="lt_wr">
+5 -4
View File
@@ -20,7 +20,7 @@ run_event('memo_form_update_before', $recv_list);
for ($i=0; $i<count($recv_list); $i++) { for ($i=0; $i<count($recv_list); $i++) {
$row = sql_fetch(" select mb_id, mb_nick, mb_open, mb_leave_date, mb_intercept_date from {$g5['member_table']} where mb_id = '{$recv_list[$i]}' "); $row = sql_fetch(" select mb_id, mb_nick, mb_open, mb_leave_date, mb_intercept_date from {$g5['member_table']} where mb_id = '{$recv_list[$i]}' ");
if ($row) { if ($row) {
if ($is_admin || ($row['mb_open'] && (!$row['mb_leave_date'] && !$row['mb_intercept_date']))) { if ($is_admin || ($row['mb_open'] && (!$row['mb_leave_date'] || !$row['mb_intercept_date']))) {
$member_list['id'][] = $row['mb_id']; $member_list['id'][] = $row['mb_id'];
$member_list['nick'][] = $row['mb_nick']; $member_list['nick'][] = $row['mb_nick'];
} else { } else {
@@ -77,7 +77,6 @@ for ($i=0; $i<count($member_list['id']); $i++) {
$sql = " insert into {$g5['memo_table']} ( me_recv_mb_id, me_send_mb_id, me_send_datetime, me_memo, me_read_datetime, me_send_id, me_type , me_send_ip ) values ( '$recv_mb_id', '{$member['mb_id']}', '".G5_TIME_YMDHIS."', '{$_POST['me_memo']}', '0000-00-00 00:00:00', '$me_id', 'send', '{$_SERVER['REMOTE_ADDR']}' ) "; $sql = " insert into {$g5['memo_table']} ( me_recv_mb_id, me_send_mb_id, me_send_datetime, me_memo, me_read_datetime, me_send_id, me_type , me_send_ip ) values ( '$recv_mb_id', '{$member['mb_id']}', '".G5_TIME_YMDHIS."', '{$_POST['me_memo']}', '0000-00-00 00:00:00', '$me_id', 'send', '{$_SERVER['REMOTE_ADDR']}' ) ";
sql_query($sql); sql_query($sql);
$member_list['me_id'][$i] = $me_id;
} }
// 실시간 쪽지 알림 기능 // 실시간 쪽지 알림 기능
@@ -94,14 +93,16 @@ if ($member_list) {
$redirect_url = G5_HTTP_BBS_URL."/memo.php?kind=send"; $redirect_url = G5_HTTP_BBS_URL."/memo.php?kind=send";
$str_nick_list = implode(',', $member_list['nick']); $str_nick_list = implode(',', $member_list['nick']);
run_event('memo_form_update_after', $member_list, $str_nick_list, $redirect_url, $_POST['me_memo']); run_event('memo_form_update_after', $member_list, $str_nick_list, $redirect_url);
alert($str_nick_list." 님께 쪽지를 전달하였습니다.", $redirect_url, false); alert($str_nick_list." 님께 쪽지를 전달하였습니다.", $redirect_url, false);
} else { } else {
$redirect_url = G5_HTTP_BBS_URL."/memo_form.php"; $redirect_url = G5_HTTP_BBS_URL."/memo_form.php";
run_event('memo_form_update_failed', $member_list, $redirect_url, $_POST['me_memo']); run_event('memo_form_update_failed', $member_list, $redirect_url);
exit;
alert("회원아이디 오류 같습니다.", $redirect_url, false); alert("회원아이디 오류 같습니다.", $redirect_url, false);
} }
+3 -6
View File
@@ -31,17 +31,14 @@ else
alert($kind.' 값을 넘겨주세요.'); alert($kind.' 값을 넘겨주세요.');
} }
$g5['title'] = $t.' 쪽지 보기';
include_once(G5_PATH.'/head.sub.php');
$sql = " select * from {$g5['memo_table']} $sql = " select * from {$g5['memo_table']}
where me_id = '$me_id' where me_id = '$me_id'
and me_{$kind}_mb_id = '{$member['mb_id']}' "; and me_{$kind}_mb_id = '{$member['mb_id']}' ";
$memo = sql_fetch($sql); $memo = sql_fetch($sql);
set_session('ss_memo_delete_token', $token = uniqid(time()));
$del_link = 'memo_delete.php?me_id='.$memo['me_id'].'&amp;token='.$token.'&amp;kind='.$kind;
$g5['title'] = $t.' 쪽지 보기';
include_once(G5_PATH.'/head.sub.php');
// 이전 쪽지 // 이전 쪽지
$sql = " select me.*, a.rownum from `{$g5['memo_table']}` as me inner join ( select me_id , (@rownum:=@rownum+1) as rownum from `{$g5['memo_table']}` as memo, (select @rownum:=0) tmp where me_{$kind}_mb_id = '{$member['mb_id']}' and memo.me_type = '$kind' order by me_id desc ) as a on a.me_id = me.me_id where me.me_id < '$me_id' and me.me_{$kind}_mb_id = '{$member['mb_id']}' and me.me_type = '$kind' order by me.me_id desc limit 1 "; $sql = " select me.*, a.rownum from `{$g5['memo_table']}` as me inner join ( select me_id , (@rownum:=@rownum+1) as rownum from `{$g5['memo_table']}` as memo, (select @rownum:=0) tmp where me_{$kind}_mb_id = '{$member['mb_id']}' and memo.me_type = '$kind' order by me_id desc ) as a on a.me_id = me.me_id where me.me_id < '$me_id' and me.me_{$kind}_mb_id = '{$member['mb_id']}' and me.me_type = '$kind' order by me.me_id desc limit 1 ";
+1 -11
View File
@@ -27,8 +27,6 @@ $sql = " select distinct wr_num from $write_table where wr_id in ({$wr_id_list})
$result = sql_query($sql); $result = sql_query($sql);
while ($row = sql_fetch_array($result)) while ($row = sql_fetch_array($result))
{ {
$save[$cnt]['wr_contents'] = array();
$wr_num = $row['wr_num']; $wr_num = $row['wr_num'];
for ($i=0; $i<count($_POST['chk_bo_table']); $i++) for ($i=0; $i<count($_POST['chk_bo_table']); $i++)
{ {
@@ -54,8 +52,6 @@ while ($row = sql_fetch_array($result))
$result2 = sql_query($sql2); $result2 = sql_query($sql2);
while ($row2 = sql_fetch_array($result2)) while ($row2 = sql_fetch_array($result2))
{ {
$save[$cnt]['wr_contents'][] = $row2['wr_content'];
$nick = cut_str($member['mb_nick'], $config['cf_cut_name']); $nick = cut_str($member['mb_nick'], $config['cf_cut_name']);
if (!$row2['wr_is_comment'] && $config['cf_use_copy_log']) { if (!$row2['wr_is_comment'] && $config['cf_use_copy_log']) {
if(strstr($row2['wr_option'], 'html')) { if(strstr($row2['wr_option'], 'html')) {
@@ -197,8 +193,6 @@ while ($row = sql_fetch_array($result))
sql_query(" update {$g5['board_table']} set bo_count_write = bo_count_write + '$count_write' where bo_table = '$move_bo_table' "); sql_query(" update {$g5['board_table']} set bo_count_write = bo_count_write + '$count_write' where bo_table = '$move_bo_table' ");
sql_query(" update {$g5['board_table']} set bo_count_comment = bo_count_comment + '$count_comment' where bo_table = '$move_bo_table' "); sql_query(" update {$g5['board_table']} set bo_count_comment = bo_count_comment + '$count_comment' where bo_table = '$move_bo_table' ");
run_event('bbs_move_copy', $row2, $move_bo_table, $insert_id, $next_wr_num, $sw);
delete_cache_latest($move_bo_table); delete_cache_latest($move_bo_table);
} }
@@ -214,7 +208,7 @@ if ($sw == 'move')
{ {
if( isset($save[$i]['bf_file']) && $save[$i]['bf_file'] ){ if( isset($save[$i]['bf_file']) && $save[$i]['bf_file'] ){
for ($k=0; $k<count($save[$i]['bf_file']); $k++) { for ($k=0; $k<count($save[$i]['bf_file']); $k++) {
$del_file = run_replace('delete_file_path', clean_relative_paths($save[$i]['bf_file'][$k]), $save[$i]); $del_file = $save[$i]['bf_file'][$k];
if ( is_file($del_file) && file_exists($del_file) ){ if ( is_file($del_file) && file_exists($del_file) ){
@unlink($del_file); @unlink($del_file);
@@ -225,10 +219,6 @@ if ($sw == 'move')
} }
} }
for ($k=0; $k<count($save[$i]['wr_contents']); $k++){
delete_editor_thumbnail($save[$i]['wr_contents'][$k]);
}
sql_query(" delete from $write_table where wr_parent = '{$save[$i]['wr_id']}' "); sql_query(" delete from $write_table where wr_parent = '{$save[$i]['wr_id']}' ");
sql_query(" delete from {$g5['board_new_table']} where bo_table = '$bo_table' and wr_id = '{$save[$i]['wr_id']}' "); sql_query(" delete from {$g5['board_new_table']} where bo_table = '$bo_table' and wr_id = '{$save[$i]['wr_id']}' ");
sql_query(" delete from {$g5['board_file_table']} where bo_table = '$bo_table' and wr_id = '{$save[$i]['wr_id']}' "); sql_query(" delete from {$g5['board_file_table']} where bo_table = '$bo_table' and wr_id = '{$save[$i]['wr_id']}' ");
+7 -7
View File
@@ -8,25 +8,24 @@ if ($is_admin != 'super')
$board = array(); $board = array();
$save_bo_table = array(); $save_bo_table = array();
$save_wr_id = array();
for($i=0;$i<count($_POST['chk_bn_id']);$i++) for($i=0;$i<count($_POST['chk_bn_id']);$i++)
{ {
// 실제 번호를 넘김 // 실제 번호를 넘김
$k = $_POST['chk_bn_id'][$i]; $k = $_POST['chk_bn_id'][$i];
$bo_table = isset($_POST['bo_table'][$k]) ? preg_replace('/[^a-z0-9_]/i', '', $_POST['bo_table'][$k]) : ''; $bo_table = $_POST['bo_table'][$k];
$wr_id = isset($_POST['wr_id'][$k]) ? preg_replace('/[^0-9]/i', '', $_POST['wr_id'][$k]) : 0; $wr_id = $_POST['wr_id'][$k];
$save_bo_table[$i] = $bo_table; $save_bo_table[] = $bo_table;
$save_wr_id[$i] = $wr_id;
$write_table = $g5['write_prefix'].$bo_table; $write_table = $g5['write_prefix'].$bo_table;
if ($board['bo_table'] != $bo_table) if ($board['bo_table'] != $bo_table)
$board = sql_fetch(" select bo_subject, bo_write_point, bo_comment_point, bo_notice from {$g5['board_table']} where bo_table = '$bo_table' "); $board = sql_fetch(" select bo_subject, bo_write_point, bo_comment_point, bo_notice from {$g5['board_table']} where bo_table = '$bo_table' ");
$write = get_write($write_table, $wr_id); $sql = " select * from $write_table where wr_id = '$wr_id' ";
$write = sql_fetch($sql);
if (!$write) continue; if (!$write) continue;
// 원글 삭제 // 원글 삭제
@@ -139,11 +138,12 @@ for($i=0;$i<count($_POST['chk_bn_id']);$i++)
} }
} }
$save_bo_table = array_unique($save_bo_table);
foreach ($save_bo_table as $key=>$value) { foreach ($save_bo_table as $key=>$value) {
delete_cache_latest($value); delete_cache_latest($value);
} }
run_event('bbs_new_delete', $chk_bn_id, $save_bo_table, $save_wr_id); run_event('bbs_new_delete', $chk_bn_id, $save_bo_table);
goto_url("new.php?sfl=$sfl&stx=$stx&page=$page"); goto_url("new.php?sfl=$sfl&stx=$stx&page=$page");
?> ?>
-4
View File
@@ -3,10 +3,6 @@ include_once('./_common.php');
$g5['title'] = '비밀번호 입력'; $g5['title'] = '비밀번호 입력';
if( isset($comment_id) ){
$comment_id = (int) $comment_id;
}
switch ($w) { switch ($w) {
case 'u' : case 'u' :
$action = G5_HTTP_BBS_URL.'/write.php'; $action = G5_HTTP_BBS_URL.'/write.php';
+3 -8
View File
@@ -22,26 +22,21 @@ if($is_guest) {
$filepath = G5_DATA_PATH.'/qa/'.$file['qa_file'.$no]; $filepath = G5_DATA_PATH.'/qa/'.$file['qa_file'.$no];
$filepath = addslashes($filepath); $filepath = addslashes($filepath);
$file_exist_check = (!is_file($filepath) || !file_exists($filepath)) ? false : true; if (!is_file($filepath) || !file_exists($filepath))
if ( false === run_replace('qa_download_file_exist_check', $file_exist_check, $file) ){
alert('파일이 존재하지 않습니다.'); alert('파일이 존재하지 않습니다.');
}
$g5['title'] = '다운로드 &gt; '.conv_subject($file['qa_subject'], 255); $g5['title'] = '다운로드 &gt; '.conv_subject($file['qa_subject'], 255);
run_event('qa_download_file_header', $file, $file_exist_check);
$original = urlencode($file['qa_source'.$no]); $original = urlencode($file['qa_source'.$no]);
if(preg_match("/msie/i", $_SERVER['HTTP_USER_AGENT']) && preg_match("/5\.5/", $_SERVER['HTTP_USER_AGENT'])) { if(preg_match("/msie/i", $_SERVER['HTTP_USER_AGENT']) && preg_match("/5\.5/", $_SERVER['HTTP_USER_AGENT'])) {
header("content-type: doesn/matter"); header("content-type: doesn/matter");
header("content-length: ".filesize($filepath)); header("content-length: ".filesize("$filepath"));
header("content-disposition: attachment; filename=\"$original\""); header("content-disposition: attachment; filename=\"$original\"");
header("content-transfer-encoding: binary"); header("content-transfer-encoding: binary");
} else { } else {
header("content-type: file/unknown"); header("content-type: file/unknown");
header("content-length: ".filesize($filepath)); header("content-length: ".filesize("$filepath"));
header("content-disposition: attachment; filename=\"$original\""); header("content-disposition: attachment; filename=\"$original\"");
header("content-description: php generated data"); header("content-description: php generated data");
} }
+1 -2
View File
@@ -155,8 +155,7 @@ if(is_file($skin_file)) {
for ($i=1; $i<=2; $i++) { for ($i=1; $i<=2; $i++) {
if(preg_match("/\.({$config['cf_image_extension']})$/i", $view['qa_file'.$i])) { if(preg_match("/\.({$config['cf_image_extension']})$/i", $view['qa_file'.$i])) {
$attr_href = run_replace('thumb_view_image_href', G5_BBS_URL.'/view_image.php?fn='.urlencode('/'.G5_DATA_DIR.'/qa/'.$view['qa_file'.$i]), '/'.G5_DATA_DIR.'/qa/'.$view['qa_file'.$i], '', '', '', ''); $view['img_file'][] = '<a href="'.G5_BBS_URL.'/view_image.php?fn='.urlencode('/data/qa/'.$view['qa_file'.$i]).'" target="_blank" class="view_image"><img src="'.G5_DATA_URL.'/qa/'.$view['qa_file'.$i].'"></a>';
$view['img_file'][] = '<a href="'.$attr_href.'" target="_blank" class="view_image"><img src="'.G5_DATA_URL.'/qa/'.$view['qa_file'.$i].'"></a>';
$view['img_count']++; $view['img_count']++;
continue; continue;
} }
-1
View File
@@ -14,7 +14,6 @@ $msg = array();
// 1:1문의 설정값 // 1:1문의 설정값
$qaconfig = get_qa_config(); $qaconfig = get_qa_config();
$qa_id = isset($qa_id) ? (int) $qa_id : 0;
if(trim($qaconfig['qa_category'])) { if(trim($qaconfig['qa_category'])) {
if($w != 'a') { if($w != 'a') {
+1 -10
View File
@@ -12,13 +12,10 @@ set_session("ss_cert_no", "");
set_session("ss_cert_hash", ""); set_session("ss_cert_hash", "");
set_session("ss_cert_type", ""); set_session("ss_cert_type", "");
$is_social_login_modify = false;
if( $provider && function_exists('social_nonce_is_valid') ){ //모바일로 소셜 연결을 했다면 if( $provider && function_exists('social_nonce_is_valid') ){ //모바일로 소셜 연결을 했다면
if( social_nonce_is_valid(get_session("social_link_token"), $provider) ){ //토큰값이 유효한지 체크 if( social_nonce_is_valid(get_session("social_link_token"), $provider) ){ //토큰값이 유효한지 체크
$w = 'u'; //회원 수정으로 처리 $w = 'u'; //회원 수정으로 처리
$_POST['mb_id'] = $member['mb_id']; $_POST['mb_id'] = $member['mb_id'];
$is_social_login_modify = true;
} }
} }
@@ -79,13 +76,7 @@ if ($w == "") {
set_session("ss_tmp_password", $_POST[mb_password]); set_session("ss_tmp_password", $_POST[mb_password]);
*/ */
if($_POST['mb_id'] && ! (isset($_POST['mb_password']) && $_POST['mb_password'])){ if ($_POST['mb_password']) {
if( ! $is_social_login_modify ){
alert('비밀번호를 입력해 주세요.');
}
}
if (isset($_POST['mb_password'])) {
// 수정된 정보를 업데이트후 되돌아 온것이라면 비밀번호가 암호화 된채로 넘어온것임 // 수정된 정보를 업데이트후 되돌아 온것이라면 비밀번호가 암호화 된채로 넘어온것임
if ($_POST['is_update']) { if ($_POST['is_update']) {
$tmp_password = $_POST['mb_password']; $tmp_password = $_POST['mb_password'];
+1 -1
View File
@@ -70,7 +70,7 @@ for ($i=0; $row=sql_fetch_array($result); $i++) {
<item> <item>
<title><?php echo specialchars_replace($row['wr_subject']); ?></title> <title><?php echo specialchars_replace($row['wr_subject']); ?></title>
<link><?php echo specialchars_replace(get_pretty_url($bo_table, $row['wr_id'])); ?></link> <link><?php echo specialchars_replace(get_pretty_url($bo_table, $wr_id)); ?></link>
<description><![CDATA[<?php echo $file ?><?php echo conv_content($row['wr_content'], $html) ?>]]></description> <description><![CDATA[<?php echo $file ?><?php echo conv_content($row['wr_content'], $html) ?>]]></description>
<dc:creator><?php echo specialchars_replace($row['wr_name']) ?></dc:creator> <dc:creator><?php echo specialchars_replace($row['wr_name']) ?></dc:creator>
<?php <?php
-1
View File
@@ -119,7 +119,6 @@ else
} }
$comment_action_url = https_url(G5_BBS_DIR)."/write_comment_update.php"; $comment_action_url = https_url(G5_BBS_DIR)."/write_comment_update.php";
$comment_common_url = short_url_clean(G5_BBS_URL.'/board.php?'.clean_query_string($_SERVER['QUERY_STRING']));
include_once($board_skin_path.'/view_comment.skin.php'); include_once($board_skin_path.'/view_comment.skin.php');
+31 -65
View File
@@ -6,10 +6,6 @@ include_once(G5_PATH.'/head.sub.php');
$filename = preg_replace('/[^A-Za-z0-9 _ .\-\/]/', '', $_GET['fn']); $filename = preg_replace('/[^A-Za-z0-9 _ .\-\/]/', '', $_GET['fn']);
if(function_exists('clean_relative_paths')){
$filename = clean_relative_paths($filename);
}
$extension = pathinfo($filename, PATHINFO_EXTENSION); $extension = pathinfo($filename, PATHINFO_EXTENSION);
if ( ! preg_match('/(jpg|jpeg|png|gif|bmp)$/i', $extension) ){ if ( ! preg_match('/(jpg|jpeg|png|gif|bmp)$/i', $extension) ){
@@ -27,87 +23,57 @@ if(strpos($filename, G5_DATA_DIR.'/editor')) {
$filepath = G5_DATA_PATH.'/file/'.$bo_table.'/'.$filename; $filepath = G5_DATA_PATH.'/file/'.$bo_table.'/'.$filename;
} }
$file_exists = (is_file($filepath) && file_exists($filepath)) ? 1 : 0; if(is_file($filepath)) {
$size = @getimagesize($filepath);
if($file_exists = run_replace('exists_view_image', $file_exists, $filepath, $editor_file)) {
$size = $file_exists ? run_replace('get_view_imagesize', @getimagesize($filepath), $filepath, $editor_file) : array();
if(empty($size)) if(empty($size))
alert_close('이미지 파일이 아닙니다.'); alert_close('이미지 파일이 아닙니다.');
$width = (isset($size[0]) && $size[0]) ? (int) $size[0] : 0; $width = $size[0];
$height = (isset($size[1]) && $size[1]) ? (int) $size[1] : 0; $height = $size[1];
if($editor_file) if($editor_file)
$fileurl = run_replace('get_editor_content_url', G5_DATA_URL.'/'.$editor_file); $fileurl = G5_DATA_URL.'/'.$editor_file;
else else
$fileurl = run_replace('get_file_board_url', G5_DATA_URL.'/file/'.$bo_table.'/'.$filename, $bo_table); $fileurl = G5_DATA_URL.'/file/'.$bo_table.'/'.$filename;
$img_attr = ($width && $height) ? 'width="'.$width.'" height="'.$height.'"' : ''; $img = '<img src="'.$fileurl.'" alt="" width="'.$width.'" height="'.$height.'" class="draggable" style="position:relative;top:0;left:0;cursor:move;">';
$img = '<img src="'.$fileurl.'" alt="" '.$img_attr.' class="draggable" style="position:relative;top:0;left:0;cursor:move;">';
} else { } else {
alert_close('파일이 존재하지 않습니다.'); alert_close('파일이 존재하지 않습니다.');
} }
?> ?>
<div class="bbs-view-image"><?php echo $img ?></div> <div><?php echo $img ?></div>
<script> <script>
var win_w = <?php echo $width ?>;
var win_h = <?php echo $height ?> + 70;
var win_l = (screen.width - win_w) / 2;
var win_t = (screen.height - win_h) / 2;
jQuery(function($){ if(win_w > screen.width) {
win_l = 0;
win_w = screen.width - 20;
$.fn.imgLoad = function(callback) { if(win_h > screen.height) {
return this.each(function() { win_t = 0;
if (callback) { win_h = screen.height - 40;
if (this.complete || /*for IE 10-*/ $(this).height() > 0) { }
callback.apply(this); }
}
else {
$(this).on('load', function(){
callback.apply(this);
});
}
}
});
};
$(".bbs-view-image img").imgLoad(function(){ if(win_h > screen.height) {
win_t = 0;
win_h = screen.height - 40;
var win_w = <?php echo $width ?>; if(win_w > screen.width) {
var win_h = <?php echo $height ?> + 70; win_w = screen.width - 20;
win_l = 0;
}
}
if( !win_w || !win_h ){ window.moveTo(win_l, win_t);
win_w = $(this).width(); window.resizeTo(win_w, win_h);
win_h = $(this).height();
}
var win_l = (screen.width - win_w) / 2;
var win_t = (screen.height - win_h) / 2;
if(win_w > screen.width) {
win_l = 0;
win_w = screen.width - 20;
if(win_h > screen.height) {
win_t = 0;
win_h = screen.height - 40;
}
}
if(win_h > screen.height) {
win_t = 0;
win_h = screen.height - 40;
if(win_w > screen.width) {
win_w = screen.width - 20;
win_l = 0;
}
}
window.moveTo(win_l, win_t);
window.resizeTo(win_w, win_h);
});
$(function() {
var is_draggable = false; var is_draggable = false;
var x = y = 0; var x = y = 0;
var pos_x = pos_y = 0; var pos_x = pos_y = 0;
+3 -3
View File
@@ -42,7 +42,7 @@ if ($w == '') {
if ($member['mb_id']) { if ($member['mb_id']) {
alert('글을 쓸 권한이 없습니다.'); alert('글을 쓸 권한이 없습니다.');
} else { } else {
alert("글을 쓸 권한이 없습니다.\\n회원이시라면 로그인 후 이용해 보십시오.", G5_BBS_URL.'/login.php?'.$qstr.'&amp;url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table)); alert("글을 쓸 권한이 없습니다.\\n회원이시라면 로그인 후 이용해 보십시오.", './login.php?'.$qstr.'&amp;url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table));
} }
} }
@@ -64,7 +64,7 @@ if ($w == '') {
if ($member['mb_id']) { if ($member['mb_id']) {
alert('글을 수정할 권한이 없습니다.'); alert('글을 수정할 권한이 없습니다.');
} else { } else {
alert('글을 수정할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.', G5_BBS_URL.'/login.php?'.$qstr.'&amp;url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table)); alert('글을 수정할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.', './login.php?'.$qstr.'&amp;url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table));
} }
} }
@@ -97,7 +97,7 @@ if ($w == '') {
if ($member['mb_id']) if ($member['mb_id'])
alert('글을 답변할 권한이 없습니다.'); alert('글을 답변할 권한이 없습니다.');
else else
alert('답변글을 작성할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.', G5_BBS_URL.'/login.php?'.$qstr.'&amp;url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table)); alert('답변글을 작성할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.', './login.php?'.$qstr.'&amp;url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table));
} }
$tmp_point = isset($member['mb_point']) ? $member['mb_point'] : 0; $tmp_point = isset($member['mb_point']) ? $member['mb_point'] : 0;
+4 -4
View File
@@ -20,8 +20,6 @@ if (substr_count($wr_content, "&#") > 50) {
$w = $_POST["w"]; $w = $_POST["w"];
$wr_name = trim($_POST['wr_name']); $wr_name = trim($_POST['wr_name']);
$wr_email = ''; $wr_email = '';
$reply_array = array();
if (!empty($_POST['wr_email'])) if (!empty($_POST['wr_email']))
$wr_email = get_email_address(trim($_POST['wr_email'])); $wr_email = get_email_address(trim($_POST['wr_email']));
@@ -87,7 +85,9 @@ if ($w == 'c') // 댓글 입력
// 댓글 답변 // 댓글 답변
if ($comment_id) if ($comment_id)
{ {
$reply_array = get_write($write_table, $comment_id, true); $sql = " select wr_id, wr_parent, wr_comment, wr_comment_reply from $write_table
where wr_id = '$comment_id' ";
$reply_array = sql_fetch($sql);
if (!$reply_array['wr_id']) if (!$reply_array['wr_id'])
alert('답변할 댓글이 없습니다.\\n\\n답변하는 동안 댓글이 삭제되었을 수 있습니다.'); alert('답변할 댓글이 없습니다.\\n\\n답변하는 동안 댓글이 삭제되었을 수 있습니다.');
@@ -341,7 +341,7 @@ delete_cache_latest($bo_table);
$redirect_url = short_url_clean(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr['wr_parent'].'&amp;'.$qstr.'&amp;#c_'.$comment_id); $redirect_url = short_url_clean(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr['wr_parent'].'&amp;'.$qstr.'&amp;#c_'.$comment_id);
run_event('comment_update_after', $board, $wr_id, $w, $qstr, $redirect_url, $comment_id, $reply_array); run_event('comment_update_after', $board, $wr_id, $w, $qstr, $redirect_url);
goto_url($redirect_url); goto_url($redirect_url);
?> ?>
+101 -104
View File
@@ -333,7 +333,7 @@ if ($w == '' || $w == 'r') {
alert('자신의 글이 아니므로 수정할 수 없습니다.', $return_url); alert('자신의 글이 아니므로 수정할 수 없습니다.', $return_url);
} else { } else {
if ($write['mb_id']) if ($write['mb_id'])
alert('로그인 후 수정하세요.', G5_BBS_URL.'/login.php?url='.urlencode($return_url)); alert('로그인 후 수정하세요.', './login.php?url='.urlencode($return_url));
} }
if ($member['mb_id']) { if ($member['mb_id']) {
@@ -436,7 +436,7 @@ if (!$group['gr_use_access'] && $board['bo_read_level'] < 2 && !$secret) {
// 파일개수 체크 // 파일개수 체크
$file_count = 0; $file_count = 0;
$upload_count = (isset($_FILES['bf_file']['name']) && is_array($_FILES['bf_file']['name'])) ? count($_FILES['bf_file']['name']) : 0; $upload_count = count($_FILES['bf_file']['name']);
for ($i=0; $i<$upload_count; $i++) { for ($i=0; $i<$upload_count; $i++) {
if($_FILES['bf_file']['name'][$i] && is_uploaded_file($_FILES['bf_file']['tmp_name'][$i])) if($_FILES['bf_file']['name'][$i] && is_uploaded_file($_FILES['bf_file']['tmp_name'][$i]))
@@ -461,119 +461,116 @@ $chars_array = array_merge(range(0,9), range('a','z'), range('A','Z'));
// 가변 파일 업로드 // 가변 파일 업로드
$file_upload_msg = ''; $file_upload_msg = '';
$upload = array(); $upload = array();
for ($i=0; $i<count($_FILES['bf_file']['name']); $i++) {
$upload[$i]['file'] = '';
$upload[$i]['source'] = '';
$upload[$i]['filesize'] = 0;
$upload[$i]['image'] = array();
$upload[$i]['image'][0] = '';
$upload[$i]['image'][1] = '';
$upload[$i]['image'][2] = '';
$upload[$i]['fileurl'] = '';
$upload[$i]['thumburl'] = '';
$upload[$i]['storage'] = '';
if(isset($_FILES['bf_file']['name']) && is_array($_FILES['bf_file']['name'])) { // 삭제에 체크가 되어있다면 파일을 삭제합니다.
for ($i=0; $i<count($_FILES['bf_file']['name']); $i++) { if (isset($_POST['bf_file_del'][$i]) && $_POST['bf_file_del'][$i]) {
$upload[$i]['file'] = ''; $upload[$i]['del_check'] = true;
$upload[$i]['source'] = '';
$upload[$i]['filesize'] = 0;
$upload[$i]['image'] = array();
$upload[$i]['image'][0] = 0;
$upload[$i]['image'][1] = 0;
$upload[$i]['image'][2] = 0;
$upload[$i]['fileurl'] = '';
$upload[$i]['thumburl'] = '';
$upload[$i]['storage'] = '';
// 삭제에 체크가 되어있다면 파일을 삭제합니다. $row = sql_fetch(" select * from {$g5['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and bf_no = '{$i}' ");
if (isset($_POST['bf_file_del'][$i]) && $_POST['bf_file_del'][$i]) {
$upload[$i]['del_check'] = true;
$row = sql_fetch(" select * from {$g5['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and bf_no = '{$i}' "); $delete_file = run_replace('delete_file_path', G5_DATA_PATH.'/file/'.$bo_table.'/'.str_replace('../', '', $row['bf_file']), $row);
if( file_exists($delete_file) ){
@unlink($delete_file);
}
// 썸네일삭제
if(preg_match("/\.({$config['cf_image_extension']})$/i", $row['bf_file'])) {
delete_board_thumbnail($bo_table, $row['bf_file']);
}
}
else
$upload[$i]['del_check'] = false;
$tmp_file = $_FILES['bf_file']['tmp_name'][$i];
$filesize = $_FILES['bf_file']['size'][$i];
$filename = $_FILES['bf_file']['name'][$i];
$filename = get_safe_filename($filename);
// 서버에 설정된 값보다 큰파일을 업로드 한다면
if ($filename) {
if ($_FILES['bf_file']['error'][$i] == 1) {
$file_upload_msg .= '\"'.$filename.'\" 파일의 용량이 서버에 설정('.$upload_max_filesize.')된 값보다 크므로 업로드 할 수 없습니다.\\n';
continue;
}
else if ($_FILES['bf_file']['error'][$i] != 0) {
$file_upload_msg .= '\"'.$filename.'\" 파일이 정상적으로 업로드 되지 않았습니다.\\n';
continue;
}
}
if (is_uploaded_file($tmp_file)) {
// 관리자가 아니면서 설정한 업로드 사이즈보다 크다면 건너뜀
if (!$is_admin && $filesize > $board['bo_upload_size']) {
$file_upload_msg .= '\"'.$filename.'\" 파일의 용량('.number_format($filesize).' 바이트)이 게시판에 설정('.number_format($board['bo_upload_size']).' 바이트)된 값보다 크므로 업로드 하지 않습니다.\\n';
continue;
}
//=================================================================\
// 090714
// 이미지나 플래시 파일에 악성코드를 심어 업로드 하는 경우를 방지
// 에러메세지는 출력하지 않는다.
//-----------------------------------------------------------------
$timg = @getimagesize($tmp_file);
// image type
if ( preg_match("/\.({$config['cf_image_extension']})$/i", $filename) ||
preg_match("/\.({$config['cf_flash_extension']})$/i", $filename) ) {
if ($timg['2'] < 1 || $timg['2'] > 16)
continue;
}
//=================================================================
$upload[$i]['image'] = $timg;
// 4.00.11 - 글답변에서 파일 업로드시 원글의 파일이 삭제되는 오류를 수정
if ($w == 'u') {
// 존재하는 파일이 있다면 삭제합니다.
$row = sql_fetch(" select * from {$g5['board_file_table']} where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$i' ");
$delete_file = run_replace('delete_file_path', G5_DATA_PATH.'/file/'.$bo_table.'/'.str_replace('../', '', $row['bf_file']), $row); $delete_file = run_replace('delete_file_path', G5_DATA_PATH.'/file/'.$bo_table.'/'.str_replace('../', '', $row['bf_file']), $row);
if( file_exists($delete_file) ){ if( file_exists($delete_file) ){
@unlink($delete_file); @unlink(G5_DATA_PATH.'/file/'.$bo_table.'/'.$row['bf_file']);
} }
// 썸네일삭제 // 이미지파일이면 썸네일삭제
if(preg_match("/\.({$config['cf_image_extension']})$/i", $row['bf_file'])) { if(preg_match("/\.({$config['cf_image_extension']})$/i", $row['bf_file'])) {
delete_board_thumbnail($bo_table, $row['bf_file']); delete_board_thumbnail($bo_table, $row['bf_file']);
} }
} }
else
$upload[$i]['del_check'] = false;
$tmp_file = $_FILES['bf_file']['tmp_name'][$i]; // 프로그램 원래 파일명
$filesize = $_FILES['bf_file']['size'][$i]; $upload[$i]['source'] = $filename;
$filename = $_FILES['bf_file']['name'][$i]; $upload[$i]['filesize'] = $filesize;
$filename = get_safe_filename($filename);
// 서버에 설정된 값보다 큰파일을 업로드 한다면 // 아래의 문자열이 들어간 파일은 -x 를 붙여서 웹경로를 알더라도 실행을 하지 못하도록 함
if ($filename) { $filename = preg_replace("/\.(php|pht|phtm|htm|cgi|pl|exe|jsp|asp|inc)/i", "$0-x", $filename);
if ($_FILES['bf_file']['error'][$i] == 1) {
$file_upload_msg .= '\"'.$filename.'\" 파일의 용량이 서버에 설정('.$upload_max_filesize.')된 값보다 크므로 업로드 할 수 없습니다.\\n';
continue;
}
else if ($_FILES['bf_file']['error'][$i] != 0) {
$file_upload_msg .= '\"'.$filename.'\" 파일이 정상적으로 업로드 되지 않았습니다.\\n';
continue;
}
}
if (is_uploaded_file($tmp_file)) { shuffle($chars_array);
// 관리자가 아니면서 설정한 업로드 사이즈보다 크다면 건너뜀 $shuffle = implode('', $chars_array);
if (!$is_admin && $filesize > $board['bo_upload_size']) {
$file_upload_msg .= '\"'.$filename.'\" 파일의 용량('.number_format($filesize).' 바이트)이 게시판에 설정('.number_format($board['bo_upload_size']).' 바이트)된 값보다 크므로 업로드 하지 않습니다.\\n';
continue;
}
//=================================================================\ // 첨부파일 첨부시 첨부파일명에 공백이 포함되어 있으면 일부 PC에서 보이지 않거나 다운로드 되지 않는 현상이 있습니다. (길상여의 님 090925)
// 090714 $upload[$i]['file'] = abs(ip2long($_SERVER['REMOTE_ADDR'])).'_'.substr($shuffle,0,8).'_'.replace_filename($filename);
// 이미지나 플래시 파일에 악성코드를 심어 업로드 하는 경우를 방지
// 에러메세지는 출력하지 않는다.
//-----------------------------------------------------------------
$timg = @getimagesize($tmp_file);
// image type
if ( preg_match("/\.({$config['cf_image_extension']})$/i", $filename) ||
preg_match("/\.({$config['cf_flash_extension']})$/i", $filename) ) {
if ($timg['2'] < 1 || $timg['2'] > 16)
continue;
}
//=================================================================
$upload[$i]['image'] = $timg; $dest_file = G5_DATA_PATH.'/file/'.$bo_table.'/'.$upload[$i]['file'];
// 4.00.11 - 글답변에서 파일 업로드시 원글의 파일이 삭제되는 오류를 수정 // 업로드가 안된다면 에러메세지 출력하고 죽어버립니다.
if ($w == 'u') { $error_code = move_uploaded_file($tmp_file, $dest_file) or die($_FILES['bf_file']['error'][$i]);
// 존재하는 파일이 있다면 삭제합니다.
$row = sql_fetch(" select * from {$g5['board_file_table']} where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$i' ");
$delete_file = run_replace('delete_file_path', G5_DATA_PATH.'/file/'.$bo_table.'/'.str_replace('../', '', $row['bf_file']), $row); // 올라간 파일의 퍼미션을 변경합니다.
if( file_exists($delete_file) ){ chmod($dest_file, G5_FILE_PERMISSION);
@unlink(G5_DATA_PATH.'/file/'.$bo_table.'/'.$row['bf_file']);
}
// 이미지파일이면 썸네일삭제
if(preg_match("/\.({$config['cf_image_extension']})$/i", $row['bf_file'])) {
delete_board_thumbnail($bo_table, $row['bf_file']);
}
}
// 프로그램 원래 파일명 $dest_file = run_replace('write_update_upload_file', $dest_file, $board, $wr_id, $w);
$upload[$i]['source'] = $filename; $upload[$i] = run_replace('write_update_upload_array', $upload[$i], $dest_file, $board, $wr_id, $w);
$upload[$i]['filesize'] = $filesize; }
}
// 아래의 문자열이 들어간 파일은 -x 를 붙여서 웹경로를 알더라도 실행을 하지 못하도록 함
$filename = preg_replace("/\.(php|pht|phtm|htm|cgi|pl|exe|jsp|asp|inc)/i", "$0-x", $filename);
shuffle($chars_array);
$shuffle = implode('', $chars_array);
// 첨부파일 첨부시 첨부파일명에 공백이 포함되어 있으면 일부 PC에서 보이지 않거나 다운로드 되지 않는 현상이 있습니다. (길상여의 님 090925)
$upload[$i]['file'] = abs(ip2long($_SERVER['REMOTE_ADDR'])).'_'.substr($shuffle,0,8).'_'.replace_filename($filename);
$dest_file = G5_DATA_PATH.'/file/'.$bo_table.'/'.$upload[$i]['file'];
// 업로드가 안된다면 에러메세지 출력하고 죽어버립니다.
$error_code = move_uploaded_file($tmp_file, $dest_file) or die($_FILES['bf_file']['error'][$i]);
// 올라간 파일의 퍼미션을 변경합니다.
chmod($dest_file, G5_FILE_PERMISSION);
$dest_file = run_replace('write_update_upload_file', $dest_file, $board, $wr_id, $w);
$upload[$i] = run_replace('write_update_upload_array', $upload[$i], $dest_file, $board, $wr_id, $w);
}
} // end for
} // end if
// 나중에 테이블에 저장하는 이유는 $wr_id 값을 저장해야 하기 때문입니다. // 나중에 테이블에 저장하는 이유는 $wr_id 값을 저장해야 하기 때문입니다.
for ($i=0; $i<count($upload); $i++) for ($i=0; $i<count($upload); $i++)
@@ -596,10 +593,10 @@ for ($i=0; $i<count($upload); $i++)
bf_fileurl = '{$upload[$i]['fileurl']}', bf_fileurl = '{$upload[$i]['fileurl']}',
bf_thumburl = '{$upload[$i]['thumburl']}', bf_thumburl = '{$upload[$i]['thumburl']}',
bf_storage = '{$upload[$i]['storage']}', bf_storage = '{$upload[$i]['storage']}',
bf_filesize = '".(int)$upload[$i]['filesize']."', bf_filesize = '{$upload[$i]['filesize']}',
bf_width = '".(int)$upload[$i]['image'][0]."', bf_width = '{$upload[$i]['image']['0']}',
bf_height = '".(int)$upload[$i]['image'][1]."', bf_height = '{$upload[$i]['image']['1']}',
bf_type = '".(int)$upload[$i]['image'][2]."', bf_type = '{$upload[$i]['image']['2']}',
bf_datetime = '".G5_TIME_YMDHIS."' bf_datetime = '".G5_TIME_YMDHIS."'
where bo_table = '{$bo_table}' where bo_table = '{$bo_table}'
and wr_id = '{$wr_id}' and wr_id = '{$wr_id}'
@@ -629,10 +626,10 @@ for ($i=0; $i<count($upload); $i++)
bf_thumburl = '{$upload[$i]['thumburl']}', bf_thumburl = '{$upload[$i]['thumburl']}',
bf_storage = '{$upload[$i]['storage']}', bf_storage = '{$upload[$i]['storage']}',
bf_download = 0, bf_download = 0,
bf_filesize = '".(int)$upload[$i]['filesize']."', bf_filesize = '{$upload[$i]['filesize']}',
bf_width = '".(int)$upload[$i]['image'][0]."', bf_width = '{$upload[$i]['image']['0']}',
bf_height = '".(int)$upload[$i]['image'][1]."', bf_height = '{$upload[$i]['image']['1']}',
bf_type = '".(int)$upload[$i]['image'][2]."', bf_type = '{$upload[$i]['image']['2']}',
bf_datetime = '".G5_TIME_YMDHIS."' "; bf_datetime = '".G5_TIME_YMDHIS."' ";
sql_query($sql); sql_query($sql);
+14 -50
View File
@@ -38,7 +38,7 @@ function g5_path()
$server_script_filename = preg_replace('/\/+/', '/', str_replace('\\', '/', $_SERVER['SCRIPT_FILENAME'])); $server_script_filename = preg_replace('/\/+/', '/', str_replace('\\', '/', $_SERVER['SCRIPT_FILENAME']));
$tilde_remove = preg_replace('/^\/\~[^\/]+(.*)$/', '$1', $server_script_name); $tilde_remove = preg_replace('/^\/\~[^\/]+(.*)$/', '$1', $server_script_name);
$document_root = str_replace($tilde_remove, '', $server_script_filename); $document_root = str_replace($tilde_remove, '', $server_script_filename);
$pattern = '/.*?' . preg_quote($document_root, '/') . '/i'; $pattern = '/' . preg_quote($document_root, '/') . '/i';
$root = preg_replace($pattern, '', $result['path']); $root = preg_replace($pattern, '', $result['path']);
$port = ($_SERVER['SERVER_PORT'] == 80 || $_SERVER['SERVER_PORT'] == 443) ? '' : ':'.$_SERVER['SERVER_PORT']; $port = ($_SERVER['SERVER_PORT'] == 80 || $_SERVER['SERVER_PORT'] == 443) ? '' : ':'.$_SERVER['SERVER_PORT'];
$http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 's' : '') . '://'; $http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 's' : '') . '://';
@@ -216,50 +216,23 @@ ini_set("session.gc_divisor", 100); // session.gc_divisor는 session.gc_probabil
session_set_cookie_params(0, '/'); session_set_cookie_params(0, '/');
ini_set("session.cookie_domain", G5_COOKIE_DOMAIN); ini_set("session.cookie_domain", G5_COOKIE_DOMAIN);
@session_start();
//==============================================================================
//============================================================================== //==============================================================================
// 공용 변수 // 공용 변수
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// 기본환경설정 // 기본환경설정
// 기본적으로 사용하는 필드만 얻은 후 상황에 따라 필드를 추가로 얻음 // 기본적으로 사용하는 필드만 얻은 후 상황에 따라 필드를 추가로 얻음
$config = get_config(true); $config = get_config();
// 본인인증 또는 쇼핑몰 사용시에만 secure; SameSite=None 로 설정합니다.
if( $config['cf_cert_use'] || (defined('G5_YOUNGCART_VER') && G5_YOUNGCART_VER) ) {
// Chrome 80 버전부터 아래 이슈 대응
// https://developers-kr.googleblog.com/2020/01/developers-get-ready-for-new.html?fbclid=IwAR0wnJFGd6Fg9_WIbQPK3_FxSSpFLqDCr9bjicXdzy--CCLJhJgC9pJe5ss
if(!function_exists('session_start_samesite')) {
function session_start_samesite($options = array())
{
global $g5;
$res = @session_start($options);
// IE 브라우저 또는 엣지브라우저 또는 IOS 모바일과 http환경에서는 secure; SameSite=None을 설정하지 않습니다.
if( preg_match('/Edge/i', $_SERVER['HTTP_USER_AGENT']) || preg_match('/(iPhone|iPod|iPad).*AppleWebKit.*Safari/i', $_SERVER['HTTP_USER_AGENT']) || preg_match('~MSIE|Internet Explorer~i', $_SERVER['HTTP_USER_AGENT']) || preg_match('~Trident/7.0(; Touch)?; rv:11.0~',$_SERVER['HTTP_USER_AGENT']) || ! (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ){
return $res;
}
$headers = headers_list();
krsort($headers);
foreach ($headers as $header) {
if (!preg_match('~^Set-Cookie: PHPSESSID=~', $header)) continue;
$header = preg_replace('~; secure(; HttpOnly)?$~', '', $header) . '; secure; SameSite=None';
header($header, false);
$g5['session_cookie_samesite'] = 'none';
break;
}
return $res;
}
}
session_start_samesite();
} else {
@session_start();
}
//==============================================================================
define('G5_HTTP_BBS_URL', https_url(G5_BBS_DIR, false)); define('G5_HTTP_BBS_URL', https_url(G5_BBS_DIR, false));
define('G5_HTTPS_BBS_URL', https_url(G5_BBS_DIR, true)); define('G5_HTTPS_BBS_URL', https_url(G5_BBS_DIR, true));
if ($config['cf_editor'])
define('G5_EDITOR_LIB', G5_EDITOR_PATH."/{$config['cf_editor']}/editor.lib.php");
else
define('G5_EDITOR_LIB', G5_LIB_PATH."/editor.lib.php");
define('G5_CAPTCHA_DIR', !empty($config['cf_captcha']) ? $config['cf_captcha'] : 'kcaptcha'); define('G5_CAPTCHA_DIR', !empty($config['cf_captcha']) ? $config['cf_captcha'] : 'kcaptcha');
define('G5_CAPTCHA_URL', G5_PLUGIN_URL.'/'.G5_CAPTCHA_DIR); define('G5_CAPTCHA_URL', G5_PLUGIN_URL.'/'.G5_CAPTCHA_DIR);
@@ -442,7 +415,7 @@ if ($_SESSION['ss_mb_id']) { // 로그인중이라면
$write = array(); $write = array();
$write_table = ""; $write_table = "";
if ($bo_table) { if ($bo_table) {
$board = get_board_db($bo_table, true); $board = get_board_db($bo_table);
if ($board['bo_table']) { if ($board['bo_table']) {
set_cookie("ck_bo_table", $board['bo_table'], 86400 * 1); set_cookie("ck_bo_table", $board['bo_table'], 86400 * 1);
$gr_id = $board['gr_id']; $gr_id = $board['gr_id'];
@@ -457,22 +430,12 @@ if ($bo_table) {
} }
} }
} }
// 게시판에서
if (isset($board['bo_select_editor']) && $board['bo_select_editor']){
$config['cf_editor'] = $board['bo_select_editor'];
}
} }
if ($gr_id && !is_array($gr_id)) { if ($gr_id) {
$group = get_group($gr_id, true); $group = get_group($gr_id);
} }
if ($config['cf_editor']) {
define('G5_EDITOR_LIB', G5_EDITOR_PATH."/{$config['cf_editor']}/editor.lib.php");
} else {
define('G5_EDITOR_LIB', G5_LIB_PATH."/editor.lib.php");
}
// 회원, 비회원 구분 // 회원, 비회원 구분
$is_member = $is_guest = false; $is_member = $is_guest = false;
@@ -661,6 +624,7 @@ include_once(G5_BBS_PATH.'/visit_insert.inc.php');
// 일정 기간이 지난 DB 데이터 삭제 및 최적화 // 일정 기간이 지난 DB 데이터 삭제 및 최적화
include_once(G5_BBS_PATH.'/db_table.optimize.php'); include_once(G5_BBS_PATH.'/db_table.optimize.php');
// common.php 파일을 수정할 필요가 없도록 확장합니다. // common.php 파일을 수정할 필요가 없도록 확장합니다.
$extend_file = array(); $extend_file = array();
$tmp = dir(G5_EXTEND_PATH); $tmp = dir(G5_EXTEND_PATH);
+1 -1
View File
@@ -5,7 +5,7 @@
********************/ ********************/
define('G5_VERSION', '그누보드5'); define('G5_VERSION', '그누보드5');
define('G5_GNUBOARD_VER', '5.4.3'); define('G5_GNUBOARD_VER', '5.4.0.2');
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음 // 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
define('_GNUBOARD_', true); define('_GNUBOARD_', true);
+3 -4
View File
@@ -104,8 +104,7 @@ border:1px solid #558ab7 !important;
/* 메인메뉴 */ /* 메인메뉴 */
#gnb {position:relative;background:#fff} #gnb {position:relative;background:#fff}
#gnb > h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} #gnb > h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#gnb .gnb_wrap {margin:0 auto;position:relative} #gnb .gnb_wrap {margin:0 auto;position:relative;z-index:10}
#gnb .gnb_wrap:hover, #gnb .gnb_wrap:focus, #gnb .gnb_wrap:active{z-index:3}
#gnb #gnb_1dul {font-size:1.083em;padding:0;border-bottom:1px solid #e0e2e5;zoom:1} #gnb #gnb_1dul {font-size:1.083em;padding:0;border-bottom:1px solid #e0e2e5;zoom:1}
#gnb ul:after {display:block;visibility:hidden;clear:both;content:""} #gnb ul:after {display:block;visibility:hidden;clear:both;content:""}
#gnb .gnb_1dli {float:left;line-height:55px;padding:0px;position:relative} #gnb .gnb_1dli {float:left;line-height:55px;padding:0px;position:relative}
@@ -158,10 +157,10 @@ box-shadow:0 2px 5px rgba(0,0,0,0.2)}
/* 중간 레이아웃 */ /* 중간 레이아웃 */
#wrapper {} #wrapper {}
#container_wr:after {display:block;visibility:hidden;clear:both;content:""} #container_wr:after {display:block;visibility:hidden;clear:both;content:""}
#container_wr {margin:0 auto;height:100%;zoom:1} #container_wr {z-index:5;margin:0 auto;height:100%;zoom:1}
#aside {float:right;width:235px;padding:0;height:100%;margin:20px 0 20px 20px} #aside {float:right;width:235px;padding:0;height:100%;margin:20px 0 20px 20px}
#container {position:relative;float:left;min-height:500px;height:auto !important;margin:20px 0;height:500px;font-size:1em;width:930px;zoom:1} #container {z-index:4;position:relative;float:left;min-height:500px;height:auto !important;margin:20px 0;height:500px;font-size:1em;width:930px;zoom:1}
#container:after {display:block;visibility:hidden;clear:both;content:""} #container:after {display:block;visibility:hidden;clear:both;content:""}
#container_title {font-size:1.333em;margin:0 auto;font-weight:bold} #container_title {font-size:1.333em;margin:0 auto;font-weight:bold}
#container_title span {margin:0 auto 10px;display:block;line-height:30px} #container_title span {margin:0 auto 10px;display:block;line-height:30px}
+1 -1
View File
@@ -215,7 +215,7 @@ a.btn_b03, .btn_b03 {display:inline-block;line-height:28px;border:0;background:t
a.btn_b03:hover, .btn_b03:hover {} a.btn_b03:hover, .btn_b03:hover {}
a.btn_admin {display:inline-block;color:#d13f4a;font-size:1.4em;text-decoration:none;vertical-align:middle} /* 관리자 전용 버튼 */ a.btn_admin {display:inline-block;color:#d13f4a;font-size:1.4em;text-decoration:none;vertical-align:middle} /* 관리자 전용 버튼 */
a.btn_admin:focus, a.btn_admin:hover {} a.btn_admin:focus, a.btn_admin:hover {}
.fix_btn {position:fixed;z-index:99;bottom:65px;right:15px;background:#3a8afd;width:50px;height:50px;color:#fff;text-align:center;border-radius:50% !important;font-size:1.8em;line-height:50px !important;-webkit-box-shadow:1px 2px 5px rgba(191, 191, 191, 0.4); .fix_btn {position:fixed;bottom:65px;right:15px;background:#3a8afd;width:50px;height:50px;color:#fff;text-align:center;border-radius:50% !important;font-size:1.8em;line-height:50px !important;-webkit-box-shadow:1px 2px 5px rgba(191, 191, 191, 0.4);
-moz-box-shadow:1px 2px 5px rgba(191, 191, 191, 0.4); -moz-box-shadow:1px 2px 5px rgba(191, 191, 191, 0.4);
box-shadow:1px 2px 5px rgba(191, 191, 191, 0.4)} box-shadow:1px 2px 5px rgba(191, 191, 191, 0.4)}
a.btn,.btn {line-height:35px;width:30px;height:35px;padding:0 5px;text-align:center;font-weight:bold;border:0;font-size:1.4em; a.btn,.btn {line-height:35px;width:30px;height:35px;padding:0 5px;text-align:center;font-weight:bold;border:0;font-size:1.4em;
+1 -1
View File
@@ -2,7 +2,7 @@
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 유저 사이드뷰에서 아이콘 지정 안했을시 기본 no 프로필 이미지 // 유저 사이드뷰에서 아이콘 지정 안했을시 기본 no 프로필 이미지
define('G5_NO_PROFILE_IMG', '<span class="profile_img"><img src="'.G5_IMG_URL.'/no_profile.gif" alt="no_profile" width="'.$config['cf_member_icon_width'].'" height="'.$config['cf_member_icon_height'].'"></span>'); define('G5_NO_PROFILE_IMG', '<span class="profile_img"><img src="'.G5_IMG_URL.'/no_profile.gif" alt="no_profile" width="20" height="20"></span>');
// 썸네일 처리 방식, 비율유지 하지 않고 썸네일을 생성하려면 주석을 풀고 값은 false 입력합니다. ( true 또는 주석으로 된 경우에는 비율 유지합니다. ) // 썸네일 처리 방식, 비율유지 하지 않고 썸네일을 생성하려면 주석을 풀고 값은 false 입력합니다. ( true 또는 주석으로 된 경우에는 비율 유지합니다. )
//define('G5_USE_THUMB_RATIO', false); //define('G5_USE_THUMB_RATIO', false);
+2 -2
View File
@@ -7,7 +7,7 @@ add_replace('invalid_password', 'g54_return_invalid_password', 10, 3);
function g54_return_invalid_password($bool, $type, $wr){ function g54_return_invalid_password($bool, $type, $wr){
if($type === 'write' && $bool === false && $wr['wr_password'] && isset($_POST['wr_password'])) { if($type === 'write' && $bool === false && $wr['wr_password'] && isset($_POST['wr_password'])) {
if(G5_STRING_ENCRYPT_FUNCTION === 'create_hash' && (strlen($wr['wr_password']) === G5_MYSQL_PASSWORD_LENGTH || strlen($wr['wr_password']) === 16)) { if(G5_STRING_ENCRYPT_FUNCTION === 'create_hash' && strlen($wr['wr_password']) === G5_MYSQL_PASSWORD_LENGTH) {
if( sql_password($_POST['wr_password']) === $wr['wr_password'] ){ if( sql_password($_POST['wr_password']) === $wr['wr_password'] ){
$bool = true; $bool = true;
} }
@@ -22,7 +22,7 @@ function g54_check_bbs_password($type, $wr, $qstr=''){
global $bo_table, $w; global $bo_table, $w;
if(G5_STRING_ENCRYPT_FUNCTION === 'create_hash' && (strlen($wr['wr_password']) === G5_MYSQL_PASSWORD_LENGTH || strlen($wr['wr_password']) === 16)) { if(G5_STRING_ENCRYPT_FUNCTION === 'create_hash' && strlen($wr['wr_password']) === G5_MYSQL_PASSWORD_LENGTH) {
if( sql_password($_POST['wr_password']) === $wr['wr_password'] ){ if( sql_password($_POST['wr_password']) === $wr['wr_password'] ){
if ($w == 's') { if ($w == 's') {
$ss_name = 'ss_secret_'.$bo_table.'_'.$wr['wr_num']; $ss_name = 'ss_secret_'.$bo_table.'_'.$wr['wr_num'];
-6
View File
@@ -13,12 +13,6 @@ define('G5_SMS5_ADMIN_DIR', 'sms_admin');
define('G5_SMS5_ADMIN_PATH', G5_ADMIN_PATH.'/'.G5_SMS5_ADMIN_DIR); define('G5_SMS5_ADMIN_PATH', G5_ADMIN_PATH.'/'.G5_SMS5_ADMIN_DIR);
define('G5_SMS5_ADMIN_URL', G5_ADMIN_URL.'/'.G5_SMS5_ADMIN_DIR); define('G5_SMS5_ADMIN_URL', G5_ADMIN_URL.'/'.G5_SMS5_ADMIN_DIR);
define('ICODE_JSON_SOCKET_HOST', '211.172.232.124');
define('ICODE_JSON_SOCKET_PORT', '9201');
define('G5_ICODE_LMS_MAX_LENGTH', 1500); // 구버전 LMS 최대길이
define('G5_ICODE_JSON_MAX_LENGTH', 2000); // JSON 버전 LMS 최대길이
// SMS 테이블명 // SMS 테이블명
$g5['sms5_prefix'] = 'sms5_'; $g5['sms5_prefix'] = 'sms5_';
$g5['sms5_config_table'] = $g5['sms5_prefix'] . 'config'; $g5['sms5_config_table'] = $g5['sms5_prefix'] . 'config';
+2 -2
View File
@@ -1,6 +1,6 @@
<?php <?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
define('G5_JS_VER', '191202'); define('G5_JS_VER', '171222');
define('G5_CSS_VER', '191202'); define('G5_CSS_VER', '171222');
?> ?>
+1 -1
View File
@@ -337,7 +337,7 @@ for($i=0; $row=sql_fetch_array($result); $i++) {
// 게시판 테이블 생성 // 게시판 테이블 생성
$bo_table = $row['bo_table']; $bo_table = $row['bo_table'];
$file = file(G5_ADMIN_PATH.'/sql_write.sql'); $file = file(G5_ADMIN_PATH.'/sql_write.sql');
$sql = implode("\n", $file); $sql = implode($file, "\n");
$create_table = $g5['write_prefix'] . $bo_table; $create_table = $g5['write_prefix'] . $bo_table;
+25 -4
View File
@@ -1,8 +1,6 @@
<?php <?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
run_event('pre_head');
if(defined('G5_THEME_PATH')) { if(defined('G5_THEME_PATH')) {
require_once(G5_THEME_PATH.'/head.php'); require_once(G5_THEME_PATH.'/head.php');
return; return;
@@ -112,8 +110,31 @@ include_once(G5_LIB_PATH.'/popular.lib.php');
<ul id="gnb_1dul"> <ul id="gnb_1dul">
<li class="gnb_1dli gnb_mnal"><button type="button" class="gnb_menu_btn" title="전체메뉴"><i class="fa fa-bars" aria-hidden="true"></i><span class="sound_only">전체메뉴열기</span></button></li> <li class="gnb_1dli gnb_mnal"><button type="button" class="gnb_menu_btn" title="전체메뉴"><i class="fa fa-bars" aria-hidden="true"></i><span class="sound_only">전체메뉴열기</span></button></li>
<?php <?php
$menu_datas = get_menu_db(0, true); $sql = " select *
$gnb_zindex = 999; // gnb_1dli z-index 값 설정용 from {$g5['menu_table']}
where me_use = '1'
and length(me_code) = '2'
order by me_order, me_id ";
$result = sql_query($sql, false);
$gnb_zindex = 999; // gnb_1dli z-index 값 설정용
$menu_datas = array();
for ($i=0; $row=sql_fetch_array($result); $i++) {
$menu_datas[$i] = $row;
$sql2 = " select *
from {$g5['menu_table']}
where me_use = '1'
and length(me_code) = '4'
and substring(me_code, 1, 2) = '{$row['me_code']}'
order by me_order, me_id ";
$result2 = sql_query($sql2);
for ($k=0; $row2=sql_fetch_array($result2); $k++) {
$menu_datas[$i]['sub'][$k] = $row2;
}
}
$i = 0; $i = 0;
foreach( $menu_datas as $row ){ foreach( $menu_datas as $row ){
if( empty($row) ) continue; if( empty($row) ) continue;
+10 -8
View File
@@ -2,6 +2,8 @@
// 이 파일은 새로운 파일 생성시 반드시 포함되어야 함 // 이 파일은 새로운 파일 생성시 반드시 포함되어야 함
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
run_event('head_sub');
// 테마 head.sub.php 파일 // 테마 head.sub.php 파일
if(!defined('G5_IS_ADMIN') && defined('G5_THEME_PATH') && is_file(G5_THEME_PATH.'/head.sub.php')) { if(!defined('G5_IS_ADMIN') && defined('G5_THEME_PATH') && is_file(G5_THEME_PATH.'/head.sub.php')) {
require_once(G5_THEME_PATH.'/head.sub.php'); require_once(G5_THEME_PATH.'/head.sub.php');
@@ -82,16 +84,16 @@ var g5_admin_url = "<?php echo G5_ADMIN_URL; ?>";
<?php } ?> <?php } ?>
</script> </script>
<?php <?php
add_javascript('<script src="'.G5_JS_URL.'/jquery-1.12.4.min.js"></script>', 0); add_javascript('<script src="'.G5_JS_URL.'/jquery-1.12.4.min.js"></script>', 1);
add_javascript('<script src="'.G5_JS_URL.'/jquery-migrate-1.4.1.min.js"></script>', 0); add_javascript('<script src="'.G5_JS_URL.'/jquery-migrate-1.4.1.min.js"></script>', 1);
add_javascript('<script src="'.G5_JS_URL.'/jquery.menu.js?ver='.G5_JS_VER.'"></script>', 0); add_javascript('<script src="'.G5_JS_URL.'/jquery.menu.js?ver='.G5_JS_VER.'"></script>', 1);
add_javascript('<script src="'.G5_JS_URL.'/common.js?ver='.G5_JS_VER.'"></script>', 0); add_javascript('<script src="'.G5_JS_URL.'/common.js?ver='.G5_JS_VER.'"></script>', 1);
add_javascript('<script src="'.G5_JS_URL.'/wrest.js?ver='.G5_JS_VER.'"></script>', 0); add_javascript('<script src="'.G5_JS_URL.'/wrest.js?ver='.G5_JS_VER.'"></script>', 1);
add_javascript('<script src="'.G5_JS_URL.'/placeholders.min.js"></script>', 0); add_javascript('<script src="'.G5_JS_URL.'/placeholders.min.js"></script>', 1);
add_stylesheet('<link rel="stylesheet" href="'.G5_JS_URL.'/font-awesome/css/font-awesome.min.css">', 0); add_stylesheet('<link rel="stylesheet" href="'.G5_JS_URL.'/font-awesome/css/font-awesome.min.css">', 1);
if(G5_IS_MOBILE) { if(G5_IS_MOBILE) {
add_javascript('<script src="'.G5_JS_URL.'/modernizr.custom.70111.js"></script>', 1); // overflow scroll 감지 add_javascript('<script src="'.G5_JS_URL.'/modernizr.custom.70111.js"></script>', 2); // overflow scroll 감지
} }
if(!defined('G5_IS_ADMIN')) if(!defined('G5_IS_ADMIN'))
echo $config['cf_add_script']; echo $config['cf_add_script'];
+2 -4
View File
@@ -24,9 +24,7 @@ include_once(G5_PATH.'/head.php');
// 이 함수가 바로 최신글을 추출하는 역할을 합니다. // 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수); // 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
// 테마의 스킨을 사용하려면 theme/basic 과 같이 지정 // 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
echo latest('pic_list', 'free', 4, 23); // 최소설치시 자동생성되는 자유게시판 echo latest('pic_list', 'free', 4, 23);
echo latest('pic_list', 'qa', 4, 23); // 최소설치시 자동생성되는 질문답변게시판
echo latest('pic_list', 'notice', 4, 23); // 최소설치시 자동생성되는 공지사항게시판
?> ?>
</div> </div>
<div class="latest_wr"> <div class="latest_wr">
@@ -35,7 +33,7 @@ include_once(G5_PATH.'/head.php');
// 이 함수가 바로 최신글을 추출하는 역할을 합니다. // 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수); // 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
// 테마의 스킨을 사용하려면 theme/basic 과 같이 지정 // 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
echo latest('pic_block', 'gallery', 4, 23); // 최소설치시 자동생성되는 갤러리게시판 echo latest('pic_block', 'gallery', 4, 23);
?> ?>
<!-- } 사진 최신글2 끝 --> <!-- } 사진 최신글2 끝 -->
</div> </div>
+1 -5
View File
@@ -15,10 +15,6 @@ if (file_exists($dbconfig_file)) {
die(install_json_msg('프로그램이 이미 설치되어 있습니다.')); die(install_json_msg('프로그램이 이미 설치되어 있습니다.'));
} }
if (preg_match("/[^0-9a-z_]+/i", $_POST['table_prefix']) ) {
die(install_json_msg('TABLE명 접두사는 영문자, 숫자, _ 만 입력하세요.'));
}
$mysql_host = safe_install_string_check($_POST['mysql_host'], 'json'); $mysql_host = safe_install_string_check($_POST['mysql_host'], 'json');
$mysql_user = safe_install_string_check($_POST['mysql_user'], 'json'); $mysql_user = safe_install_string_check($_POST['mysql_user'], 'json');
$mysql_pass = safe_install_string_check($_POST['mysql_pass'], 'json'); $mysql_pass = safe_install_string_check($_POST['mysql_pass'], 'json');
@@ -26,7 +22,7 @@ $mysql_db = safe_install_string_check($_POST['mysql_db'], 'json');
$table_prefix= safe_install_string_check(preg_replace('/[^a-zA-Z0-9_]/', '_', $_POST['table_prefix'])); $table_prefix= safe_install_string_check(preg_replace('/[^a-zA-Z0-9_]/', '_', $_POST['table_prefix']));
$tmp_str = isset($_SERVER['SERVER_SOFTWARE']) ? $_SERVER['SERVER_SOFTWARE'] : ''; $tmp_str = isset($_SERVER['SERVER_SOFTWARE']) ? $_SERVER['SERVER_SOFTWARE'] : '';
$ajax_token = md5($tmp_str.$_SERVER['REMOTE_ADDR'].dirname(dirname(__FILE__).'/')); $ajax_token = md5($tmp_str.$_SERVER['REMOTE_ADDR'].$_SERVER['DOCUMENT_ROOT']);
$bool_ajax_token = ($ajax_token == $_POST['ajax_token']) ? true : false; $bool_ajax_token = ($ajax_token == $_POST['ajax_token']) ? true : false;
-1
View File
@@ -47,7 +47,6 @@ CREATE TABLE IF NOT EXISTS `g5_board` (
`bo_use_file_content` tinyint(4) NOT NULL DEFAULT '0', `bo_use_file_content` tinyint(4) NOT NULL DEFAULT '0',
`bo_use_secret` tinyint(4) NOT NULL DEFAULT '0', `bo_use_secret` tinyint(4) NOT NULL DEFAULT '0',
`bo_use_dhtml_editor` tinyint(4) NOT NULL DEFAULT '0', `bo_use_dhtml_editor` tinyint(4) NOT NULL DEFAULT '0',
`bo_select_editor` varchar(50) NOT NULL DEFAULT '',
`bo_use_rss_view` tinyint(4) NOT NULL DEFAULT '0', `bo_use_rss_view` tinyint(4) NOT NULL DEFAULT '0',
`bo_use_good` tinyint(4) NOT NULL DEFAULT '0', `bo_use_good` tinyint(4) NOT NULL DEFAULT '0',
`bo_use_nogood` tinyint(4) NOT NULL DEFAULT '0', `bo_use_nogood` tinyint(4) NOT NULL DEFAULT '0',
+2 -2
View File
@@ -19,7 +19,7 @@ if (!isset($_POST['agree']) || $_POST['agree'] != '동의함') {
} }
$tmp_str = isset($_SERVER['SERVER_SOFTWARE']) ? $_SERVER['SERVER_SOFTWARE'] : ''; $tmp_str = isset($_SERVER['SERVER_SOFTWARE']) ? $_SERVER['SERVER_SOFTWARE'] : '';
$ajax_token = md5($tmp_str.$_SERVER['REMOTE_ADDR'].dirname(dirname(__FILE__).'/')); $ajax_token = md5($tmp_str.$_SERVER['REMOTE_ADDR'].$_SERVER['DOCUMENT_ROOT']);
?> ?>
@@ -61,7 +61,7 @@ $ajax_token = md5($tmp_str.$_SERVER['REMOTE_ADDR'].dirname(dirname(__FILE__).'/'
<th scope="row"><label for="table_prefix">TABLE명 접두사</label></th> <th scope="row"><label for="table_prefix">TABLE명 접두사</label></th>
<td> <td>
<input name="table_prefix" type="text" value="g5_" id="table_prefix"> <input name="table_prefix" type="text" value="g5_" id="table_prefix">
<span>TABLE명 접두사는 영문자, 숫자, _ 만 입력 가능합니다.</span> <span>가능한 변경하지 마십시오.</span>
</td> </td>
</tr> </tr>
</tbody> </tbody>
+5 -9
View File
@@ -33,10 +33,6 @@ $admin_pass = $_POST['admin_pass'];
$admin_name = $_POST['admin_name']; $admin_name = $_POST['admin_name'];
$admin_email = $_POST['admin_email']; $admin_email = $_POST['admin_email'];
if (preg_match("/[^0-9a-z_]+/i", $table_prefix) ) {
die('<div class="ins_inner"><p>TABLE명 접두사는 영문자, 숫자, _ 만 입력하세요.</p><div class="inner_btn"><a href="./install_config.php">뒤로가기</a></div></div>');
}
if (preg_match("/[^0-9a-z_]+/i", $admin_id)) { if (preg_match("/[^0-9a-z_]+/i", $admin_id)) {
die('<div class="ins_inner"><p>관리자 아이디는 영문자, 숫자, _ 만 입력하세요.</p><div class="inner_btn"><a href="./install_config.php">뒤로가기</a></div></div>'); die('<div class="ins_inner"><p>관리자 아이디는 영문자, 숫자, _ 만 입력하세요.</p><div class="inner_btn"><a href="./install_config.php">뒤로가기</a></div></div>');
} }
@@ -296,7 +292,7 @@ for ($i=0; $i<count($tmp_bo_table); $i++)
// 게시판 테이블 생성 // 게시판 테이블 생성
$file = file("../".G5_ADMIN_DIR."/sql_write.sql"); $file = file("../".G5_ADMIN_DIR."/sql_write.sql");
$file = get_db_create_replace($file); $file = get_db_create_replace($file);
$sql = implode("\n", $file); $sql = implode($file, "\n");
$create_table = $table_prefix.'write_' . $tmp_bo_table[$i]; $create_table = $table_prefix.'write_' . $tmp_bo_table[$i];
@@ -344,10 +340,10 @@ $f = @fopen($file, 'a');
fwrite($f, "<?php\n"); fwrite($f, "<?php\n");
fwrite($f, "if (!defined('_GNUBOARD_')) exit;\n"); fwrite($f, "if (!defined('_GNUBOARD_')) exit;\n");
fwrite($f, "define('G5_MYSQL_HOST', '".addcslashes($mysql_host, "\\'")."');\n"); fwrite($f, "define('G5_MYSQL_HOST', '{$mysql_host}');\n");
fwrite($f, "define('G5_MYSQL_USER', '".addcslashes($mysql_user, "\\'")."');\n"); fwrite($f, "define('G5_MYSQL_USER', '{$mysql_user}');\n");
fwrite($f, "define('G5_MYSQL_PASSWORD', '".addcslashes($mysql_pass, "\\'")."');\n"); fwrite($f, "define('G5_MYSQL_PASSWORD', '{$mysql_pass}');\n");
fwrite($f, "define('G5_MYSQL_DB', '".addcslashes($mysql_db, "\\'")."');\n"); fwrite($f, "define('G5_MYSQL_DB', '{$mysql_db}');\n");
fwrite($f, "define('G5_MYSQL_SET_MODE', {$mysql_set_mode});\n\n"); fwrite($f, "define('G5_MYSQL_SET_MODE', {$mysql_set_mode});\n\n");
fwrite($f, "define('G5_TABLE_PREFIX', '{$table_prefix}');\n\n"); fwrite($f, "define('G5_TABLE_PREFIX', '{$table_prefix}');\n\n");
fwrite($f, "\$g5['write_prefix'] = G5_TABLE_PREFIX.'write_'; // 게시판 테이블명 접두사\n\n"); fwrite($f, "\$g5['write_prefix'] = G5_TABLE_PREFIX.'write_'; // 게시판 테이블명 접두사\n\n");
+30 -8
View File
@@ -165,9 +165,33 @@ function set_cookie(name, value, expirehours, domain)
// 쿠키 얻음 // 쿠키 얻음
function get_cookie(name) function get_cookie(name)
{ {
var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)')); var find_sw = false;
if (match) return unescape(match[2]); var start, end;
return ""; var i = 0;
for (i=0; i<= document.cookie.length; i++)
{
start = i;
end = start + name.length;
if(document.cookie.substring(start, end) == name)
{
find_sw = true
break
}
}
if (find_sw == true)
{
start = end + 1;
end = document.cookie.indexOf(";", start);
if(end < start)
end = document.cookie.length;
return unescape(document.cookie.substring(start, end));
}
return "";
} }
// 쿠키 지움 // 쿠키 지움
@@ -535,12 +559,10 @@ function font_resize(id, rmv_class, add_class, othis)
{ {
var $el = $("#"+id); var $el = $("#"+id);
if((typeof rmv_class !== "undefined" && rmv_class) || (typeof add_class !== "undefined" && add_class)){ $el.removeClass(rmv_class).addClass(add_class);
$el.removeClass(rmv_class).addClass(add_class);
set_cookie("ck_font_resize_rmv_class", rmv_class, 1, g5_cookie_domain); set_cookie("ck_font_resize_rmv_class", rmv_class, 1, g5_cookie_domain);
set_cookie("ck_font_resize_add_class", add_class, 1, g5_cookie_domain); set_cookie("ck_font_resize_add_class", add_class, 1, g5_cookie_domain);
}
if(typeof othis !== "undefined"){ if(typeof othis !== "undefined"){
$(othis).addClass('select').siblings().removeClass('select'); $(othis).addClass('select').siblings().removeClass('select');
-388
View File
@@ -1,388 +0,0 @@
/* This is the core CSS of Tooltipster */
/* GENERAL STRUCTURE RULES (do not edit this section) */
.tooltipster-base {
/* this ensures that a constrained height set by functionPosition,
if greater that the natural height of the tooltip, will be enforced
in browsers that support display:flex */
display: flex;
pointer-events: none;
/* this may be overriden in JS for fixed position origins */
position: absolute;
}
.tooltipster-box {
/* see .tooltipster-base. flex-shrink 1 is only necessary for IE10-
and flex-basis auto for IE11- (at least) */
flex: 1 1 auto;
}
.tooltipster-content {
/* prevents an overflow if the user adds padding to the div */
box-sizing: border-box;
/* these make sure we'll be able to detect any overflow */
max-height: 100%;
max-width: 100%;
overflow: auto;
}
.tooltipster-ruler {
/* these let us test the size of the tooltip without overflowing the window */
bottom: 0;
left: 0;
overflow: hidden;
position: fixed;
right: 0;
top: 0;
visibility: hidden;
}
/* ANIMATIONS */
/* Open/close animations */
/* fade */
.tooltipster-fade {
opacity: 0;
-webkit-transition-property: opacity;
-moz-transition-property: opacity;
-o-transition-property: opacity;
-ms-transition-property: opacity;
transition-property: opacity;
}
.tooltipster-fade.tooltipster-show {
opacity: 1;
}
/* grow */
.tooltipster-grow {
-webkit-transform: scale(0,0);
-moz-transform: scale(0,0);
-o-transform: scale(0,0);
-ms-transform: scale(0,0);
transform: scale(0,0);
-webkit-transition-property: -webkit-transform;
-moz-transition-property: -moz-transform;
-o-transition-property: -o-transform;
-ms-transition-property: -ms-transform;
transition-property: transform;
-webkit-backface-visibility: hidden;
}
.tooltipster-grow.tooltipster-show {
-webkit-transform: scale(1,1);
-moz-transform: scale(1,1);
-o-transform: scale(1,1);
-ms-transform: scale(1,1);
transform: scale(1,1);
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
}
/* swing */
.tooltipster-swing {
opacity: 0;
-webkit-transform: rotateZ(4deg);
-moz-transform: rotateZ(4deg);
-o-transform: rotateZ(4deg);
-ms-transform: rotateZ(4deg);
transform: rotateZ(4deg);
-webkit-transition-property: -webkit-transform, opacity;
-moz-transition-property: -moz-transform;
-o-transition-property: -o-transform;
-ms-transition-property: -ms-transform;
transition-property: transform;
}
.tooltipster-swing.tooltipster-show {
opacity: 1;
-webkit-transform: rotateZ(0deg);
-moz-transform: rotateZ(0deg);
-o-transform: rotateZ(0deg);
-ms-transform: rotateZ(0deg);
transform: rotateZ(0deg);
-webkit-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 1);
-webkit-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
-moz-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
-ms-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
-o-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
}
/* fall */
.tooltipster-fall {
-webkit-transition-property: top;
-moz-transition-property: top;
-o-transition-property: top;
-ms-transition-property: top;
transition-property: top;
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
}
.tooltipster-fall.tooltipster-initial {
top: 0 !important;
}
.tooltipster-fall.tooltipster-show {
}
.tooltipster-fall.tooltipster-dying {
-webkit-transition-property: all;
-moz-transition-property: all;
-o-transition-property: all;
-ms-transition-property: all;
transition-property: all;
top: 0 !important;
opacity: 0;
}
/* slide */
.tooltipster-slide {
-webkit-transition-property: left;
-moz-transition-property: left;
-o-transition-property: left;
-ms-transition-property: left;
transition-property: left;
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
}
.tooltipster-slide.tooltipster-initial {
left: -40px !important;
}
.tooltipster-slide.tooltipster-show {
}
.tooltipster-slide.tooltipster-dying {
-webkit-transition-property: all;
-moz-transition-property: all;
-o-transition-property: all;
-ms-transition-property: all;
transition-property: all;
left: 0 !important;
opacity: 0;
}
/* Update animations */
/* We use animations rather than transitions here because
transition durations may be specified in the style tag due to
animationDuration, and we try to avoid collisions and the use
of !important */
/* fade */
@keyframes tooltipster-fading {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.tooltipster-update-fade {
animation: tooltipster-fading 400ms;
}
/* rotate */
@keyframes tooltipster-rotating {
25% {
transform: rotate(-2deg);
}
75% {
transform: rotate(2deg);
}
100% {
transform: rotate(0);
}
}
.tooltipster-update-rotate {
animation: tooltipster-rotating 600ms;
}
/* scale */
@keyframes tooltipster-scaling {
50% {
transform: scale(1.1);
}
100% {
transform: scale(1);
}
}
.tooltipster-update-scale {
animation: tooltipster-scaling 600ms;
}
/**
* DEFAULT STYLE OF THE SIDETIP PLUGIN
*
* All styles are "namespaced" with .tooltipster-sidetip to prevent
* conflicts between plugins.
*/
/* .tooltipster-box */
.tooltipster-sidetip .tooltipster-box {
background: #565656;
border: 2px solid black;
border-radius: 4px;
}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-box {
margin-top: 8px;
}
.tooltipster-sidetip.tooltipster-left .tooltipster-box {
margin-right: 8px;
}
.tooltipster-sidetip.tooltipster-right .tooltipster-box {
margin-left: 8px;
}
.tooltipster-sidetip.tooltipster-top .tooltipster-box {
margin-bottom: 8px;
}
/* .tooltipster-content */
.tooltipster-sidetip .tooltipster-content {
color: white;
line-height: 18px;
padding: 6px 14px;
}
/* .tooltipster-arrow : will keep only the zone of .tooltipster-arrow-uncropped that
corresponds to the arrow we want to display */
.tooltipster-sidetip .tooltipster-arrow {
overflow: hidden;
position: absolute;
}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow {
height: 10px;
/* half the width, for centering */
margin-left: -10px;
top: 0;
width: 20px;
}
.tooltipster-sidetip.tooltipster-left .tooltipster-arrow {
height: 20px;
margin-top: -10px;
right: 0;
/* top 0 to keep the arrow from overflowing .tooltipster-base when it has not
been positioned yet */
top: 0;
width: 10px;
}
.tooltipster-sidetip.tooltipster-right .tooltipster-arrow {
height: 20px;
margin-top: -10px;
left: 0;
/* same as .tooltipster-left .tooltipster-arrow */
top: 0;
width: 10px;
}
.tooltipster-sidetip.tooltipster-top .tooltipster-arrow {
bottom: 0;
height: 10px;
margin-left: -10px;
width: 20px;
}
/* common rules between .tooltipster-arrow-background and .tooltipster-arrow-border */
.tooltipster-sidetip .tooltipster-arrow-background, .tooltipster-sidetip .tooltipster-arrow-border {
height: 0;
position: absolute;
width: 0;
}
/* .tooltipster-arrow-background */
.tooltipster-sidetip .tooltipster-arrow-background {
border: 10px solid transparent;
}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background {
border-bottom-color: #565656;
left: 0;
top: 3px;
}
.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background {
border-left-color: #565656;
left: -3px;
top: 0;
}
.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background {
border-right-color: #565656;
left: 3px;
top: 0;
}
.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background {
border-top-color: #565656;
left: 0;
top: -3px;
}
/* .tooltipster-arrow-border */
.tooltipster-sidetip .tooltipster-arrow-border {
border: 10px solid transparent;
left: 0;
top: 0;
}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border {
border-bottom-color: black;
}
.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border {
border-left-color: black;
}
.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border {
border-right-color: black;
}
.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border {
border-top-color: black;
}
/* tooltipster-arrow-uncropped */
.tooltipster-sidetip .tooltipster-arrow-uncropped {
position: relative;
}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-uncropped {
top: -10px;
}
.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-uncropped {
left: -10px;
}
File diff suppressed because it is too large. Load diff
-1
View File
@@ -1 +0,0 @@
.tooltipster-fall,.tooltipster-grow.tooltipster-show{-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1);-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-base{display:flex;pointer-events:none;position:absolute}.tooltipster-box{flex:1 1 auto}.tooltipster-content{box-sizing:border-box;max-height:100%;max-width:100%;overflow:auto}.tooltipster-ruler{bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden}.tooltipster-fade{opacity:0;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;-ms-transition-property:opacity;transition-property:opacity}.tooltipster-fade.tooltipster-show{opacity:1}.tooltipster-grow{-webkit-transform:scale(0,0);-moz-transform:scale(0,0);-o-transform:scale(0,0);-ms-transform:scale(0,0);transform:scale(0,0);-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-backface-visibility:hidden}.tooltipster-grow.tooltipster-show{-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-o-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-swing{opacity:0;-webkit-transform:rotateZ(4deg);-moz-transform:rotateZ(4deg);-o-transform:rotateZ(4deg);-ms-transform:rotateZ(4deg);transform:rotateZ(4deg);-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform}.tooltipster-swing.tooltipster-show{opacity:1;-webkit-transform:rotateZ(0);-moz-transform:rotateZ(0);-o-transform:rotateZ(0);-ms-transform:rotateZ(0);transform:rotateZ(0);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,1);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-moz-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-ms-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-o-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);transition-timing-function:cubic-bezier(.23,.635,.495,2.4)}.tooltipster-fall{-webkit-transition-property:top;-moz-transition-property:top;-o-transition-property:top;-ms-transition-property:top;transition-property:top;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-fall.tooltipster-initial{top:0!important}.tooltipster-fall.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;top:0!important;opacity:0}.tooltipster-slide{-webkit-transition-property:left;-moz-transition-property:left;-o-transition-property:left;-ms-transition-property:left;transition-property:left;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-slide.tooltipster-initial{left:-40px!important}.tooltipster-slide.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;left:0!important;opacity:0}@keyframes tooltipster-fading{0%{opacity:0}100%{opacity:1}}.tooltipster-update-fade{animation:tooltipster-fading .4s}@keyframes tooltipster-rotating{25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}100%{transform:rotate(0)}}.tooltipster-update-rotate{animation:tooltipster-rotating .6s}@keyframes tooltipster-scaling{50%{transform:scale(1.1)}100%{transform:scale(1)}}.tooltipster-update-scale{animation:tooltipster-scaling .6s}.tooltipster-sidetip .tooltipster-box{background:#565656;border:2px solid #000;border-radius:4px}.tooltipster-sidetip.tooltipster-bottom .tooltipster-box{margin-top:8px}.tooltipster-sidetip.tooltipster-left .tooltipster-box{margin-right:8px}.tooltipster-sidetip.tooltipster-right .tooltipster-box{margin-left:8px}.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:8px}.tooltipster-sidetip .tooltipster-content{color:#fff;line-height:18px;padding:6px 14px}.tooltipster-sidetip .tooltipster-arrow{overflow:hidden;position:absolute}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow{height:10px;margin-left:-10px;top:0;width:20px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow{height:20px;margin-top:-10px;right:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-right .tooltLine truncated
-2
View File
@@ -1,2 +0,0 @@
/*! tooltipster v4.2.7 */!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){function b(a){this.$container,this.constraints=null,this.__$tooltip,this.__init(a)}function c(b,c){var d=!0;return a.each(b,function(a,e){return void 0===c[a]||b[a]!==c[a]?(d=!1,!1):void 0}),d}function d(b){var c=b.attr("id"),d=c?h.window.document.getElementById(c):null;return d?d===b[0]:a.contains(h.window.document.body,b[0])}function e(){if(!g)return!1;var a=g.document.body||g.document.documentElement,b=a.style,c="transition",d=["Moz","Webkit","Khtml","O","ms"];if("string"==typeof b[c])return!0;c=c.charAt(0).toUpperCase()+c.substr(1);for(var e=0;e<d.length;e++)if("string"==typeof b[d[e]+c])return!0;return!1}var f={animation:"fade",animationDuration:350,content:null,contentAsHTML:!1,contentCloning:!1,debug:!0,delay:300,delayTouch:[300,500],functionInit:null,functionBefore:null,functionReady:null,functionAfter:null,functionFormat:null,IEmin:6,interactive:!1,multiple:!1,parent:null,plugins:["sideTip"],repositionOnScroll:!1,restoration:"none",selfDestruction:!0,theme:[],timer:0,trackerInterval:500,trackOrigin:!1,trackTooltip:!1,trigger:"hover",triggerClose:{click:!1,mouseleave:!1,originClick:!1,scroll:!1,tap:!1,touchleave:!1},triggerOpen:{click:!1,mouseenter:!1,tap:!1,touchstart:!1},updateAnimation:"rotate",zIndex:9999999},g="undefined"!=typeof window?window:null,h={hasTouchCapability:!(!g||!("ontouchstart"in g||g.DocumentTouch&&g.document instanceof g.DocumentTouch||g.navigator.maxTouchPoints)),hasTransitions:e(),IE:!1,semVer:"4.2.7",window:g},i=function(){this.__$emitterPrivate=a({}),this.__$emitterPublic=a({}),this.__instancesLatestArr=[],this.__plugins={},this._env=h};i.prototype={__bridge:function(b,c,d){if(!c[d]){var e=function(){};e.prototype=b;var g=new e;g.__init&&g.__init(c),a.each(b,function(a,b){0!=a.indexOf("__")&&(c[a]?f.debug&&console.log("The "+a+" method of the "+d+" plugin conflicts with another plugin or native methods"):(c[a]=function(){return g[a].apply(g,Array.prototype.slice.apply(arguments))},c[a].bridged=g))}),c[d]=g}return this},__setWindow:function(a){return h.window=a,this},_getRuler:function(a){return new b(a)},_off:function(){return this.__$emitterPrivate.off.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_on:function(){return this.__$emitterPrivate.on.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_one:function(){return this.__$emitterPrivate.one.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_plugin:function(b){var c=this;if("string"==typeof b){var d=b,e=null;return d.indexOf(".")>0?e=c.__plugins[d]:a.each(c.__plugins,function(a,b){return b.name.substring(b.name.length-d.length-1)=="."+d?(e=b,!1):void 0}),e}if(b.name.indexOf(".")<0)throw new Error("Plugins must be namespaced");return c.__plugins[b.name]=b,b.core&&c.__bridge(b.core,c,b.name),this},_trigger:function(){var a=Array.prototype.slice.apply(arguments);return"string"==typeof a[0]&&(a[0]={type:a[0]}),this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate,a),this.__$emitterPublic.trigger.apply(this.__$emitterPublic,a),this},instances:function(b){var c=[],d=b||".tooltipstered";return a(d).each(function(){var b=a(this),d=b.data("tooltipster-ns");d&&a.each(d,function(a,d){c.push(b.data(d))})}),c},instancesLatest:function(){return this.__instancesLatestArr},off:function(){return this.__$emitterPublic.off.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},on:function(){return this.__$emitterPublic.on.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},one:function(){return this.__$emitterPublic.one.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},origins:function(b){var c=b?b+" ":"";return a(c+".tooltipstered").toArray()},setDefaults:function(b){return a.extend(f,b),this},triggerHandler:function(){return this.__$emitterPublic.triggerHandler.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this}},a.tooltipster=new i,a.Tooltipster=function(b,c){this.__callbacks={close:[],open:[]},this.__closingTime,this.__Content,this.__contentBcr,this.__destroyed=!1,this.__$emitterPrivate=a({}),this.__$emitterPublic=a({}),this.__enabled=!0,this.__garbageCollector,this.__Geometry,this.__lastPosition,this.__namespace="tooltipster-"+Math.round(1e6*Math.random()),this.__options,this.__$originParents,this.__pointerIsOverOrigin=!1,this.__previousThemes=[],this.__state="closed",this.__timeouts={close:[],open:null},this.__touchEvents=[],this.__tracker=null,this._$origin,this._$tooltip,this.__init(b,c)},a.Tooltipster.prototype={__init:function(b,c){var d=this;if(d._$origin=a(b),d.__options=a.extend(!0,{},f,c),d.__optionsFormat(),!h.IE||h.IE>=d.__options.IEmin){var e=null;if(void 0===d._$origin.data("tooltipster-initialTitle")&&(e=d._$origin.attr("title"),void 0===e&&(e=nLine truncated
this.__instance._$tooltip=b,this.__instance._trigger("created")},__destroy:function(){this.__instance._off("."+self.__namespace)},__optionsFormat:function(){var b=this;if(b.__options=b.__instance._optionsExtract(k,b.__defaults()),b.__options.position&&(b.__options.side=b.__options.position),"object"!=typeof b.__options.distance&&(b.__options.distance=[b.__options.distance]),b.__options.distance.length<4&&(void 0===b.__options.distance[1]&&(b.__options.distance[1]=b.__options.distance[0]),void 0===b.__options.distance[2]&&(b.__options.distance[2]=b.__options.distance[0]),void 0===b.__options.distance[3]&&(b.__options.distance[3]=b.__options.distance[1]),b.__options.distance={top:b.__options.distance[0],right:b.__options.distance[1],bottom:b.__options.distance[2],left:b.__options.distance[3]}),"string"==typeof b.__options.side){var c={top:"bottom",right:"left",bottom:"top",left:"right"};b.__options.side=[b.__options.side,c[b.__options.side]],"left"==b.__options.side[0]||"right"==b.__options.side[0]?b.__options.side.push("top","bottom"):b.__options.side.push("right","left")}6===a.tooltipster._env.IE&&b.__options.arrow!==!0&&(b.__options.arrow=!1)},__reposition:function(b,c){var d,e=this,f=e.__targetFind(c),g=[];e.__instance._$tooltip.detach();var h=e.__instance._$tooltip.clone(),i=a.tooltipster._getRuler(h),j=!1,k=e.__instance.option("animation");switch(k&&h.removeClass("tooltipster-"+k),a.each(["window","document"],function(d,k){var l=null;if(e.__instance._trigger({container:k,helper:c,satisfied:j,takeTest:function(a){l=a},results:g,type:"positionTest"}),1==l||0!=l&&0==j&&("window"!=k||e.__options.viewportAware))for(var d=0;d<e.__options.side.length;d++){var m={horizontal:0,vertical:0},n=e.__options.side[d];"top"==n||"bottom"==n?m.vertical=e.__options.distance[n]:m.horizontal=e.__options.distance[n],e.__sideChange(h,n),a.each(["natural","constrained"],function(a,d){if(l=null,e.__instance._trigger({container:k,event:b,helper:c,mode:d,results:g,satisfied:j,side:n,takeTest:function(a){l=a},type:"positionTest"}),1==l||0!=l&&0==j){var h={container:k,distance:m,fits:null,mode:d,outerSize:null,side:n,size:null,target:f[n],whole:null},o="natural"==d?i.free():i.constrain(c.geo.available[k][n].width-m.horizontal,c.geo.available[k][n].height-m.vertical),p=o.measure();if(h.size=p.size,h.outerSize={height:p.size.height+m.vertical,width:p.size.width+m.horizontal},"natural"==d?c.geo.available[k][n].width>=h.outerSize.width&&c.geo.available[k][n].height>=h.outerSize.height?h.fits=!0:h.fits=!1:h.fits=p.fits,"window"==k&&(h.fits?"top"==n||"bottom"==n?h.whole=c.geo.origin.windowOffset.right>=e.__options.minIntersection&&c.geo.window.size.width-c.geo.origin.windowOffset.left>=e.__options.minIntersection:h.whole=c.geo.origin.windowOffset.bottom>=e.__options.minIntersection&&c.geo.window.size.height-c.geo.origin.windowOffset.top>=e.__options.minIntersection:h.whole=!1),g.push(h),h.whole)j=!0;else if("natural"==h.mode&&(h.fits||h.size.width<=c.geo.available[k][n].width))return!1}})}}),e.__instance._trigger({edit:function(a){g=a},event:b,helper:c,results:g,type:"positionTested"}),g.sort(function(a,b){if(a.whole&&!b.whole)return-1;if(!a.whole&&b.whole)return 1;if(a.whole&&b.whole){var c=e.__options.side.indexOf(a.side),d=e.__options.side.indexOf(b.side);return d>c?-1:c>d?1:"natural"==a.mode?-1:1}if(a.fits&&!b.fits)return-1;if(!a.fits&&b.fits)return 1;if(a.fits&&b.fits){var c=e.__options.side.indexOf(a.side),d=e.__options.side.indexOf(b.side);return d>c?-1:c>d?1:"natural"==a.mode?-1:1}return"document"==a.container&&"bottom"==a.side&&"natural"==a.mode?-1:1}),d=g[0],d.coord={},d.side){case"left":case"right":d.coord.top=Math.floor(d.target-d.size.height/2);break;case"bottom":case"top":d.coord.left=Math.floor(d.target-d.size.width/2)}switch(d.side){case"left":d.coord.left=c.geo.origin.windowOffset.left-d.outerSize.width;break;case"right":d.coord.left=c.geo.origin.windowOffset.right+d.distance.horizontal;break;case"top":d.coord.top=c.geo.origin.windowOffset.top-d.outerSize.height;break;case"bottom":d.coord.top=c.geo.origin.windowOffset.bottom+d.distance.vertical}"window"==d.container?"top"==d.side||"bottom"==d.side?d.coord.left<0?c.geo.origin.windowOffset.right-this.__options.minIntersection>=0?d.coord.left=0:d.coord.left=c.geo.origin.windowOffset.right-this.__options.minIntersection-1:d.coord.left>c.geo.window.size.width-d.size.width&&(c.geo.origin.windowOffset.left+this.__options.minIntersection<=c.geo.window.size.width?d.coord.left=c.geo.window.size.width-d.size.width:d.coord.left=c.geo.origin.windowOffset.left+this.__options.minIntersection+1-d.size.width):d.coord.top<0?c.geo.origin.windowOffset.bottom-this.__options.minIntersection>=0?d.coord.top=0:d.coord.top=c.geo.origin.windowOffset.bottom-this.__options.minIntersection-1:d.coord.top>c.geo.window.size.height-d.size.height&&(c.geo.origin.windowOffset.top+this.__options.minIntersection<=c.geo.window.size.height?d.coord.top=c.geo.window.size.height-d.size.height:d.coord.top=c.geo.oriLine truncated
+8 -24
View File
@@ -33,9 +33,9 @@ class FileCache
* *
* @param string $id * @param string $id
*/ */
public function get($id, $expired_time=0) public function get($id)
{ {
$data = $this->_get($id, $expired_time); $data = $this->_get($id);
return is_array($data) ? $data['data'] : FALSE; return is_array($data) ? $data['data'] : FALSE;
} }
@@ -59,7 +59,7 @@ class FileCache
} }
protected function _get($id, $expired_time=0) protected function _get($id)
{ {
$cache_file_path = $this->get_cache_file_path($id); $cache_file_path = $this->get_cache_file_path($id);
@@ -68,27 +68,14 @@ class FileCache
return FALSE; return FALSE;
} }
$server_time = defined('G5_SERVER_TIME') ? G5_SERVER_TIME : time(); $data = unserialize(file_get_contents( $cache_file_path ));
try{ if ($data['ttl'] > 0 && time() > $data['time'] + $data['ttl'])
$file_contents = file_get_contents($cache_file_path);
$file_ex = explode("\n\n", $file_contents);
$data = unserialize(base64_decode($file_ex[1]));
} catch(Exception $e){
$data = array('ttl'=>1, 'time'=> $server_time - 1000);
}
if ($data['ttl'] > 0 && $server_time > $data['time'] + $data['ttl'])
{ {
unlink( $cache_file_path ); unlink( $cache_file_path );
return FALSE; return FALSE;
} }
if ($data['time'] && $expired_time && $data['time'] < ($server_time - $expired_time)){
unlink( $cache_file_path );
return FALSE;
}
return $data; return $data;
} }
@@ -148,10 +135,7 @@ class FileCache
'data' => $data 'data' => $data
); );
$cache_content = "<?php if (!defined('_GNUBOARD_')) exit; ?>\n\n"; if ($this->write_file($cache_file_path, serialize($contents)))
$cache_content .= base64_encode(serialize($contents));
if ($this->write_file($cache_file_path, $cache_content))
{ {
chmod($cache_file_path, G5_FILE_PERMISSION); chmod($cache_file_path, G5_FILE_PERMISSION);
return TRUE; return TRUE;
@@ -183,7 +167,7 @@ class FileCache
if ($ttl !== null) { if ($ttl !== null) {
$expire = time() + $ttl; $expire = time() + $ttl;
} }
return base64_encode(serialize(array($data, $expire))); return serialize(array($data, $expire));
} }
/** /**
@@ -197,7 +181,7 @@ class FileCache
*/ */
public function decode($data) public function decode($data)
{ {
return unserialize(base64_decode($data)); return unserialize($data);
} }
} }
?> ?>
-3
View File
@@ -87,9 +87,6 @@ Class GML_Hook extends Hook {
foreach ($filters as $priority) { foreach ($filters as $priority) {
foreach ($priority as $filter) { foreach ($priority as $filter) {
if( isset($args[0]) ){
$args[0] = $value;
}
$replace = $that->runAction($filter, $args); $replace = $that->runAction($filter, $args);
if( ! is_null($replace) ) { if( ! is_null($replace) ) {
+2 -2
View File
@@ -52,10 +52,10 @@ function g5_set_cache($key, $save_data, $ttl = null){
} }
} }
function g5_get_cache($key, $expired_time=0){ function g5_get_cache($key){
if( $cache = get_cachemanage_instance() ){ if( $cache = get_cachemanage_instance() ){
return $cache->get($key, $expired_time); return $cache->get($key);
} }
return false; return false;
Loaded 100 of 240 files, more files were not shown because too many files have changed in this diff. Show more