From b38aa084d943622f26d3208491a288a92c604a4f Mon Sep 17 00:00:00 2001 From: whitedot Date: Tue, 5 Nov 2013 16:07:49 +0900 Subject: [PATCH 1/5] ie=edge => ie=10 --- head.sub.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/head.sub.php b/head.sub.php index 2b6b47d24..f0dbbb49b 100644 --- a/head.sub.php +++ b/head.sub.php @@ -39,7 +39,7 @@ if (G5_IS_MOBILE) { echo ''.PHP_EOL; } else { echo ''.PHP_EOL; - echo ''.PHP_EOL; + echo ''.PHP_EOL; } ?> <?php echo $g5_head_title; ?> From 5fa4af1c9c78dcbf719a003926bea55110fdd8a2 Mon Sep 17 00:00:00 2001 From: whitedot Date: Wed, 6 Nov 2013 09:59:16 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90:=20CSS=20RESET?= =?UTF-8?q?=20=EB=B3=B4=EC=99=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/default.css | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/css/default.css b/css/default.css index fa6fae924..8c4995893 100644 --- a/css/default.css +++ b/css/default.css @@ -8,13 +8,10 @@ html, h1, h2, h3, h4, h5, h6, form, fieldset, img {margin:0;padding:0;border:0} h1, h2, h3, h4, h5, h6 {font-size:1em;font-family:dotum} article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display:block} header ul, nav ul, footer ul {margin:0;padding:0;list-style:none} +legend {position:absolute;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} label, input, select, img {vertical-align:middle} -textarea, -select {font-family:dotum;font-size:1em} -input {margin:0;padding:0;border-radius:0;font-family:dotum} -input[type=text], input[type=password], input[type=submit], input[type=image] {-webkit-appearance:none} -button {border-radius:0;font-size:1em;-webkit-appearance:none} - +input, button {margin:0;padding:0;font-family:dotum;font-size:1em} +textarea, select {font-family:dotum;font-size:1em} p {margin:0;padding:10px 0;line-height:1.7em;word-break:break-all} hr {display:none} pre {overflow-x:scroll;font-size:1.1em} @@ -141,8 +138,8 @@ a.btn02:focus, .btn02:hover {text-decoration:none} .btn_confirm {text-align:center} /* 서식단계 진행 */ input.btn_submit {padding:0 10px;height:24px;border:0;background:#333;color:#fff;letter-spacing:-0.1em;vertical-align:middle;cursor:pointer} -button.btn_submit {height:22px;font-size:1em} -fieldset .btn_submit {height:22px;font-size:1em} +button.btn_submit {height:22px} +fieldset .btn_submit {height:22px} a.btn_cancel {display:inline-block;padding:0 10px;height:22px;border:1px solid #ccc;background:#fafafa;line-height:2em;vertical-align:middle} a.btn_cancel:focus, a.btn_cancel:hover {text-decoration:none} @@ -199,6 +196,7 @@ fieldset .frm_input {padding:2px 2px 3px;border:1px solid #b8c9c2;background:#f7 /* 테이블 항목별 정의 */ .td_board {width:120px;text-align:center} +.td_category {width:80px;text-align:center} .td_chk {width:30px;text-align:center} .td_date {width:60px;text-align:center} .td_datetime {width:110px;text-align:center} @@ -209,9 +207,12 @@ fieldset .frm_input {padding:2px 2px 3px;border:1px solid #b8c9c2;background:#f7 .td_nick {width:100px;text-align:center} .td_num {width:50px;text-align:center} .td_numbig {width:80px;text-align:center} +.td_stat {width:60px;text-align:center} .txt_active {color:#5d910b} +.txt_done {color:#e8180c} .txt_expired {color:#ccc} +.txt_rdy {color:#8abc2a} /* 새창 기본 스타일 */ .new_win {} From 223c271399294a9b4ebb6e4db5a8cfd51aeb198d Mon Sep 17 00:00:00 2001 From: whitedot Date: Wed, 6 Nov 2013 10:00:13 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90:=20CSS=20RESET?= =?UTF-8?q?=20=EB=B3=B4=EC=99=842?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/default.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/css/default.css b/css/default.css index 8c4995893..fb02c389c 100644 --- a/css/default.css +++ b/css/default.css @@ -7,7 +7,7 @@ body {margin:0;padding:0;background:#f9fafe;color:#000;font-size:0.75em;font-fam html, h1, h2, h3, h4, h5, h6, form, fieldset, img {margin:0;padding:0;border:0} h1, h2, h3, h4, h5, h6 {font-size:1em;font-family:dotum} article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display:block} -header ul, nav ul, footer ul {margin:0;padding:0;list-style:none} +#hd ul, nav ul, #ft ul {margin:0;padding:0;list-style:none} legend {position:absolute;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} label, input, select, img {vertical-align:middle} input, button {margin:0;padding:0;font-family:dotum;font-size:1em} From 70f4c83a88381c02fb8cfde6c049b78a6e45d6e9 Mon Sep 17 00:00:00 2001 From: whitedot Date: Wed, 6 Nov 2013 10:00:53 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90:=20CSS=20RESET?= =?UTF-8?q?=20=EB=B3=B4=EC=99=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/default_shop.css | 9 +++++---- css/mobile_shop.css | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/css/default_shop.css b/css/default_shop.css index 923b0f006..3ab67270c 100644 --- a/css/default_shop.css +++ b/css/default_shop.css @@ -3,14 +3,15 @@ /* 초기화 */ html {overflow-y:scroll} -body {margin:0;padding:0;background:#fff;color:#000;font-size:0.75em;font-family:"dotum"} +body {margin:0;padding:0;background:#f9fafe;color:#000;font-size:0.75em;font-family:dotum} html, h1, h2, h3, h4, h5, h6, form, fieldset, img {margin:0;padding:0;border:0} -h1, h2, h3, h4, h5, h6, input, textarea, select, button {font-size:1em;font-family:"dotum"} +h1, h2, h3, h4, h5, h6 {font-size:1em;font-family:dotum} article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display:block} #hd ul, nav ul, #ft ul {margin:0;padding:0;list-style:none} +legend {position:absolute;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} label, input, select, img {vertical-align:middle} -input {margin:0;padding:0;border-radius:0} -button {border-radius:0} +input, button {margin:0;padding:0;font-family:dotum;font-size:1em} +textarea, select {font-family:dotum;font-size:1em} p {margin:0;padding:10px 0;line-height:1.7em;word-break:break-all} hr {display:none} pre {overflow-x:scroll;font-size:1.1em} diff --git a/css/mobile_shop.css b/css/mobile_shop.css index 0a8b69c44..86ace7f6d 100644 --- a/css/mobile_shop.css +++ b/css/mobile_shop.css @@ -10,7 +10,7 @@ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, header ul, nav ul, footer ul {margin:0;padding:0;list-style:none} legend {position:absolute;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} label, input, select, img {vertical-align:middle} -input,button {margin:0;padding:0;font-size:1em} +input, button {margin:0;padding:0;font-size:1em} input[type=text], input[type=password], input[type=submit], input[type=image], button {border-radius:0;font-size:1em;-webkit-appearance:none} textarea, select {font-size:1em} textarea {border-radius:0;-webkit-appearance:none} From d0d8e3d2b7e25df569cbe755421a924cabe8fc9b Mon Sep 17 00:00:00 2001 From: chicpro Date: Wed, 6 Nov 2013 10:05:02 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=EC=9D=BC=EB=8C=80=EC=9D=BC=20=EB=AC=B8?= =?UTF-8?q?=EC=9D=98=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/admin.menu300.php | 1 + adm/config_form.php | 146 +++++++- adm/config_form_update.php | 5 + adm/member_list.php | 3 +- adm/qa_config.php | 257 +++++++++++++ adm/qa_config_update.php | 44 +++ bbs/qadelete.php | 68 ++++ bbs/qadownload.php | 67 ++++ bbs/qalist.php | 124 +++++++ bbs/qaview.php | 175 +++++++++ bbs/qawrite.php | 141 ++++++++ bbs/qawrite_update.php | 339 ++++++++++++++++++ bbs/view_image.php | 3 + css/admin.css | 10 +- css/default.css | 2 + css/mobile.css | 15 +- head.php | 6 + install/gnuboard5.sql | 81 +++++ lib/common.lib.php | 25 ++ lib/icode.sms.lib.php | 153 ++++++++ mobile/head.php | 1 + mobile/skin/board/basic/style.css | 4 +- mobile/skin/board/gallery/style.css | 4 +- mobile/skin/member/basic/style.css | 4 +- mobile/skin/qa/basic/img/btn_close.gif | Bin 0 -> 211 bytes mobile/skin/qa/basic/img/icon_answer.gif | Bin 0 -> 77 bytes mobile/skin/qa/basic/img/icon_file.gif | Bin 0 -> 107 bytes mobile/skin/qa/basic/img/icon_hot.gif | Bin 0 -> 97 bytes mobile/skin/qa/basic/img/icon_img.gif | Bin 0 -> 145 bytes mobile/skin/qa/basic/img/icon_link.gif | Bin 0 -> 104 bytes mobile/skin/qa/basic/img/icon_mobile.gif | Bin 0 -> 62 bytes mobile/skin/qa/basic/img/icon_movie.gif | Bin 0 -> 110 bytes mobile/skin/qa/basic/img/icon_new.gif | Bin 0 -> 71 bytes mobile/skin/qa/basic/img/icon_secret.gif | Bin 0 -> 97 bytes mobile/skin/qa/basic/img/icon_sound.gif | Bin 0 -> 113 bytes mobile/skin/qa/basic/list.skin.php | 166 +++++++++ mobile/skin/qa/basic/style.css | 256 +++++++++++++ mobile/skin/qa/basic/view.answer.skin.php | 24 ++ mobile/skin/qa/basic/view.answerform.skin.php | 125 +++++++ mobile/skin/qa/basic/view.skin.php | 169 +++++++++ mobile/skin/qa/basic/write.skin.php | 175 +++++++++ skin/qa/basic/img/btn_close.gif | Bin 0 -> 211 bytes skin/qa/basic/img/icon_answer.gif | Bin 0 -> 77 bytes skin/qa/basic/img/icon_file.gif | Bin 0 -> 107 bytes skin/qa/basic/img/icon_hot.gif | Bin 0 -> 97 bytes skin/qa/basic/img/icon_img.gif | Bin 0 -> 145 bytes skin/qa/basic/img/icon_link.gif | Bin 0 -> 104 bytes skin/qa/basic/img/icon_mobile.gif | Bin 0 -> 62 bytes skin/qa/basic/img/icon_movie.gif | Bin 0 -> 110 bytes skin/qa/basic/img/icon_new.gif | Bin 0 -> 71 bytes skin/qa/basic/img/icon_secret.gif | Bin 0 -> 97 bytes skin/qa/basic/img/icon_sound.gif | Bin 0 -> 113 bytes skin/qa/basic/list.skin.php | 166 +++++++++ skin/qa/basic/style.css | 273 ++++++++++++++ skin/qa/basic/view.answer.skin.php | 25 ++ skin/qa/basic/view.answerform.skin.php | 125 +++++++ skin/qa/basic/view.skin.php | 169 +++++++++ skin/qa/basic/write.skin.php | 175 +++++++++ 58 files changed, 3509 insertions(+), 17 deletions(-) create mode 100644 adm/qa_config.php create mode 100644 adm/qa_config_update.php create mode 100644 bbs/qadelete.php create mode 100644 bbs/qadownload.php create mode 100644 bbs/qalist.php create mode 100644 bbs/qaview.php create mode 100644 bbs/qawrite.php create mode 100644 bbs/qawrite_update.php create mode 100644 lib/icode.sms.lib.php create mode 100644 mobile/skin/qa/basic/img/btn_close.gif create mode 100644 mobile/skin/qa/basic/img/icon_answer.gif create mode 100644 mobile/skin/qa/basic/img/icon_file.gif create mode 100644 mobile/skin/qa/basic/img/icon_hot.gif create mode 100644 mobile/skin/qa/basic/img/icon_img.gif create mode 100644 mobile/skin/qa/basic/img/icon_link.gif create mode 100644 mobile/skin/qa/basic/img/icon_mobile.gif create mode 100644 mobile/skin/qa/basic/img/icon_movie.gif create mode 100644 mobile/skin/qa/basic/img/icon_new.gif create mode 100644 mobile/skin/qa/basic/img/icon_secret.gif create mode 100644 mobile/skin/qa/basic/img/icon_sound.gif create mode 100644 mobile/skin/qa/basic/list.skin.php create mode 100644 mobile/skin/qa/basic/style.css create mode 100644 mobile/skin/qa/basic/view.answer.skin.php create mode 100644 mobile/skin/qa/basic/view.answerform.skin.php create mode 100644 mobile/skin/qa/basic/view.skin.php create mode 100644 mobile/skin/qa/basic/write.skin.php create mode 100644 skin/qa/basic/img/btn_close.gif create mode 100644 skin/qa/basic/img/icon_answer.gif create mode 100644 skin/qa/basic/img/icon_file.gif create mode 100644 skin/qa/basic/img/icon_hot.gif create mode 100644 skin/qa/basic/img/icon_img.gif create mode 100644 skin/qa/basic/img/icon_link.gif create mode 100644 skin/qa/basic/img/icon_mobile.gif create mode 100644 skin/qa/basic/img/icon_movie.gif create mode 100644 skin/qa/basic/img/icon_new.gif create mode 100644 skin/qa/basic/img/icon_secret.gif create mode 100644 skin/qa/basic/img/icon_sound.gif create mode 100644 skin/qa/basic/list.skin.php create mode 100644 skin/qa/basic/style.css create mode 100644 skin/qa/basic/view.answer.skin.php create mode 100644 skin/qa/basic/view.answerform.skin.php create mode 100644 skin/qa/basic/view.skin.php create mode 100644 skin/qa/basic/write.skin.php diff --git a/adm/admin.menu300.php b/adm/admin.menu300.php index 2bcd8b33f..01ca6a94f 100644 --- a/adm/admin.menu300.php +++ b/adm/admin.menu300.php @@ -5,5 +5,6 @@ $menu['menu300'] = array ( array('300200', '게시판그룹관리', ''.G5_ADMIN_URL.'/boardgroup_list.php', 'bbs_group'), array('300300', '인기검색어관리', ''.G5_ADMIN_URL.'/popular_list.php', 'bbs_poplist', 1), array('300400', '인기검색어순위', ''.G5_ADMIN_URL.'/popular_rank.php', 'bbs_poprank', 1), + array('300500', '1:1문의설정', ''.G5_ADMIN_URL.'/qa_config.php', 'qa'), ); ?> \ No newline at end of file diff --git a/adm/config_form.php b/adm/config_form.php index 7b7de39ff..b51ba8207 100644 --- a/adm/config_form.php +++ b/adm/config_form.php @@ -28,7 +28,7 @@ if (!isset($config['cf_mobile_new_skin'])) { if (isset($config['cf_gcaptcha_mp3'])) { sql_query(" ALTER TABLE `{$g5['config_table']}` CHANGE `cf_gcaptcha_mp3` `cf_captcha_mp3` VARCHAR(255) NOT NULL DEFAULT '' ", true); -} else if (!isset($config['cf_captcha_mp3'])) { +} else if (!isset($config['cf_captcha_mp3'])) { sql_query(" ALTER TABLE `{$g5['config_table']}` ADD `cf_captcha_mp3` VARCHAR(255) NOT NULL DEFAULT '' AFTER `cf_mobile_member_skin` ", true); } @@ -121,6 +121,15 @@ if(!isset($config['cf_analytics'])) { ADD `cf_analytics` TEXT NOT NULL AFTER `cf_intercept_ip` ", true); } +if(!isset($config['cf_sms_use'])) { + sql_query(" ALTER TABLE `{$g5['config_table']}` + ADD `cf_sms_use` varchar(255) NOT NULL DEFAULT '' AFTER `cf_cert_limit`, + ADD `cf_icode_id` varchar(255) NOT NULL DEFAULT '' AFTER `cf_sms_use`, + ADD `cf_icode_pw` varchar(255) NOT NULL DEFAULT '' AFTER `cf_icode_id`, + ADD `cf_icode_server_ip` varchar(255) NOT NULL DEFAULT '' AFTER `cf_icode_pw`, + ADD `cf_icode_server_port` varchar(255) NOT NULL DEFAULT '' AFTER `cf_icode_server_ip` ", true); +} + $g5['title'] = '환경설정'; include_once ('./admin.head.php'); @@ -135,8 +144,63 @@ $pg_anchor = ''; + +if (!function_exists("get_sock")) { + function get_sock($url) + { + // host 와 uri 를 분리 + //if (ereg("http://([a-zA-Z0-9_\-\.]+)([^<]*)", $url, $res)) + if (preg_match("/http:\/\/([a-zA-Z0-9_\-\.]+)([^<]*)/", $url, $res)) + { + $host = $res[1]; + $get = $res[2]; + } + + // 80번 포트로 소캣접속 시도 + $fp = fsockopen ($host, 80, $errno, $errstr, 30); + if (!$fp) + { + die("$errstr ($errno)\n"); + } + else + { + fputs($fp, "GET $get HTTP/1.0\r\n"); + fputs($fp, "Host: $host\r\n"); + fputs($fp, "\r\n"); + + // header 와 content 를 분리한다. + while (trim($buffer = fgets($fp,1024)) != "") + { + $header .= $buffer; + } + while (!feof($fp)) + { + $buffer .= fgets($fp,1024); + } + } + fclose($fp); + + // content 만 return 한다. + return $buffer; + } +} + +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_id'] && $config['cf_icode_pw']) { + $res = get_sock('http://www.icodekorea.com/res/userinfo.php?userid='.$config['cf_icode_id'].'&userpw='.$config['cf_icode_pw']); + $res = explode(';', $res); + $userinfo = array( + 'code' => $res[0], // 결과코드 + 'coin' => $res[1], // 고객 잔액 (충전제만 해당) + 'gpay' => $res[2], // 고객의 건수 별 차감액 표시 (충전제만 해당) + 'payment' => $res[3] // 요금제 표시, A:충전제, C:정액제 + ); +} ?>
@@ -940,6 +1004,86 @@ $pg_anchor = '
    +
    +

    SMS

    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    SMS 설정
    + +
    + + +
    + + +
    요금제 + + '; + } else if ($userinfo['payment'] == 'C') { + echo '정액제'; + echo ''; + } else { + echo '가입해주세요.'; + echo ''; + } + ?> +
    아이코드 SMS 신청
    회원가입
    + + 아이코드 회원가입 +
    충전 잔액 + 원. + 충전하기 +
    건수별 금액 + 원. +
    +
    +
    +

    여분필드 기본 설정

    diff --git a/adm/config_form_update.php b/adm/config_form_update.php index b7a1bbef7..61f02ec74 100644 --- a/adm/config_form_update.php +++ b/adm/config_form_update.php @@ -115,6 +115,11 @@ $sql = " update {$g5['config_table']} cf_cert_kcb_cd = '{$_POST['cf_cert_kcb_cd']}', cf_cert_kcp_cd = '{$_POST['cf_cert_kcp_cd']}', cf_cert_limit = '{$_POST['cf_cert_limit']}', + cf_sms_use = '{$_POST['cf_sms_use']}', + cf_icode_id = '{$_POST['cf_icode_id']}', + cf_icode_pw = '{$_POST['cf_icode_pw']}', + cf_icode_server_ip = '{$_POST['cf_icode_server_ip']}', + cf_icode_server_port = '{$_POST['cf_icode_server_port']}', cf_googl_shorturl_apikey = '{$_POST['cf_googl_shorturl_apikey']}', cf_facebook_appid = '{$_POST['cf_facebook_appid']}', cf_facebook_secret = '{$_POST['cf_facebook_secret']}', diff --git a/adm/member_list.php b/adm/member_list.php index 74b326729..b7ddc81e6 100644 --- a/adm/member_list.php +++ b/adm/member_list.php @@ -187,8 +187,7 @@ $colspan = 15; $address = $row['mb_zip1'] ? $row['mb_addr1'].' '.$row['mb_addr2'] : ''; - $tr_bg = ''; - if ($i%2 == 0) $tr_bg = 'class="tr_bg"'; + $tr_bg = $i%2 ? 'class="tr_bg1"' : 'class="tr_bg0"'; switch($row['mb_certify']) { case 'hp': diff --git a/adm/qa_config.php b/adm/qa_config.php new file mode 100644 index 000000000..5c85a4274 --- /dev/null +++ b/adm/qa_config.php @@ -0,0 +1,257 @@ + + + + + +
    +

    1:1문의 설정

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    1:1문의 설정
    + + 1:1문의 바로가기 +
    + + +
    + +
    + +
    이메일 입력 + > + > +
    휴대폰 입력 + > + > +
    + SMS 알림을 사용하기 위해서는 기본환경설정 > SMS 설정을 하셔야 합니다.') ?> + +
    + + +
    + SMS 알림을 사용하지 않으시면 알림이 전송되지 않습니다.'); ?> + +
    + + +
    + + +
    + + +
    + +
    + +
    + + 픽셀 +
    + + 업로드 파일 한개당 bytes 이하 +
    + +
    여분필드 + + + + +
    +
    +
    + +
    + +
    + + + + + + \ No newline at end of file diff --git a/adm/qa_config_update.php b/adm/qa_config_update.php new file mode 100644 index 000000000..d89563753 --- /dev/null +++ b/adm/qa_config_update.php @@ -0,0 +1,44 @@ + \ No newline at end of file diff --git a/bbs/qadelete.php b/bbs/qadelete.php new file mode 100644 index 000000000..efa1b050e --- /dev/null +++ b/bbs/qadelete.php @@ -0,0 +1,68 @@ + \ No newline at end of file diff --git a/bbs/qadownload.php b/bbs/qadownload.php new file mode 100644 index 000000000..a4bd209eb --- /dev/null +++ b/bbs/qadownload.php @@ -0,0 +1,67 @@ + diff --git a/bbs/qalist.php b/bbs/qalist.php new file mode 100644 index 000000000..6acc1b11f --- /dev/null +++ b/bbs/qalist.php @@ -0,0 +1,124 @@ +'; + } +} + +if(is_file($skin_file)) { + $sql_common = " from {$g5['qa_content_table']} "; + $sql_search = " where qa_type = '0' "; + + if(!$is_admin) + $sql_search .= " and mb_id = '{$member['mb_id']}' "; + + if($sca) { + if (preg_match("/[a-zA-Z]/", $sca)) + $sql_search .= " and INSTR(LOWER(qa_category), LOWER('$sca')) > 0 "; + else + $sql_search .= " and INSTR(qa_category, '$sca') > 0 "; + } + + $stx = trim($stx); + if($stx) { + if (preg_match("/[a-zA-Z]/", $stx)) + $sql_search .= " and ( INSTR(LOWER(qa_subject), LOWER('$sca')) > 0 or INSTR(LOWER(qa_content), LOWER('$stx')) > 0 )"; + else + $sql_search .= " and ( INSTR(qa_subject, '$stx') > 0 or INSTR(qa_content, '$stx') > 0 ) "; + } + + $sql_order = " order by qa_num "; + + $sql = " select count(*) as cnt + $sql_common + $sql_search "; + $row = sql_fetch($sql); + $total_count = $row['cnt']; + + $page_rows = G5_IS_MOBILE ? $qaconfig['qa_mobile_page_rows'] : $qaconfig['qa_page_rows']; + $total_page = ceil($total_count / $page_rows); // 전체 페이지 계산 + if (!$page) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지) + $from_record = ($page - 1) * $page_rows; // 시작 열을 구함 + + $sql = " select * + $sql_common + $sql_search + $sql_order + limit $from_record, $page_rows "; + $result = sql_query($sql); + + $list = array(); + $num = $total_count - ($page - 1) * $page_rows; + $subject_len = G5_IS_MOBILE ? $qaconfig['qa_mobile_subject_len'] : $qaconfig['qa_subject_len']; + for($i=0; $row=sql_fetch_array($result); $i++) { + $list[$i] = $row; + + $list[$i]['category'] = get_text($row['qa_category']); + $list[$i]['subject'] = conv_subject($row['qa_subject'], $subject_len, '…'); + if ($stx) { + $list[$i]['subject'] = search_font($stx, $list[$i]['subject']); + } + + $list[$i]['view_href'] = G5_BBS_URL.'/qaview.php?qa_id='.$row['qa_id'].$qstr; + + $list[$i]['icon_file'] = ''; + if(trim($row['qa_file1']) || trim($row['qa_file2'])) + $list[$i]['icon_file'] = ''; + + $list[$i]['name'] = get_text($row['qa_name']); + $list[$i]['date'] = substr($row['qa_datetime'], 2, 8); + + $list[$i]['num'] = $num - $i; + } + + $is_checkbox = false; + $admin_href = ''; + if($is_admin) { + $is_checkbox = true; + $admin_href = G5_ADMIN_URL.'/qa_config.php'; + } + + $list_href = G5_BBS_URL.'/qalist.php'; + $write_href = G5_BBS_URL.'/qawrite.php'; + + $list_pages = preg_replace('/(\.php)(&|&)/i', '$1?', get_paging(G5_IS_MOBILE ? $qaconfig['qa_mobile_page_rows'] : $qaconfig['qa_page_rows'], $page, $total_page, './qalist.php'.$qstr.'&page=')); + + $stx = get_text(stripslashes($stx)); + include_once($skin_file); +} else { + echo '
    '.str_replace(G5_PATH.'/', '', $skin_file).'이 존재하지 않습니다.
    '; +} + +include_once('./_tail.php'); +?> \ No newline at end of file diff --git a/bbs/qaview.php b/bbs/qaview.php new file mode 100644 index 000000000..a0cfcfe18 --- /dev/null +++ b/bbs/qaview.php @@ -0,0 +1,175 @@ + '{$view['qa_num']}' order by qa_num asc limit 1 "; + $next = sql_fetch($sql.$next_search); + + $next_href = ''; + if (isset($next['qa_id']) && $next['qa_id']) { + $next_qa_subject = get_text(cut_str($next['qa_subject'], 255)); + $next_href = G5_BBS_URL.'/qaview.php?qa_id='.$next['qa_id'].$qstr; + } + + + // 관련질문 + $rows = 10; + $sql = " select * + from {$g5['qa_content_table']} + where qa_id <> '$qa_id' + and qa_related = '{$view['qa_related']}' + and qa_type = '0' + order by qa_num, qa_type + limit 0, $rows "; + $result = sql_query($sql); + + $rel_list = array(); + $rel_count = 0; + for($i=0; $row=sql_fetch_array($result); $i++) { + $rel_list[$i] = $row; + $rel_list[$i]['category'] = get_text($row['qa_category']); + $rel_list[$i]['subject'] = conv_subject($row['qa_subject'], $subject_len, '…'); + $rel_list[$i]['name'] = get_text($row['qa_name']); + $rel_list[$i]['date'] = substr($row['qa_datetime'], 2, 8); + $rel_list[$i]['view_href'] = G5_BBS_URL.'/qaview.php?qa_id='.$row['qa_id'].$qstr; + $rel_count++; + } + $view['rel_count'] = $rel_count; + + $update_href = ''; + $delete_href = ''; + $write_href = G5_BBS_URL.'/qawrite.php'; + $rewrite_href = G5_BBS_URL.'/qawrite.php?w=r&qa_id='.$view['qa_id']; + $list_href = G5_BBS_URL.'/qalist.php'.preg_replace('/^&/', '?', $qstr); + + /* + if($view['qa_type']) { + if($is_admin) + $update_href = G5_BBS_URL.'/qawrite.php?w=u&qa_id='.$view['qa_id'].$qstr; + } else { + if($view['qa_status'] == 0) + $update_href = G5_BBS_URL.'/qawrite.php?w=u&qa_id='.$view['qa_id'].$qstr; + } + */ + if(($view['qa_type'] && $is_admin) || (!$view['qa_type'] && $view['qa_status'] == 0)) { + $update_href = G5_BBS_URL.'/qawrite.php?w=u&qa_id='.$view['qa_id'].$qstr; + $delete_href = G5_BBS_URL.'/qadelete.php?qa_id='.$view['qa_id'].$qstr; + } + + // 질문글이고 등록된 답변이 있다면 + $answer = array(); + $answer_update_href = ''; + $answer_delete_href = ''; + if(!$view['qa_type'] && $view['qa_status']) { + $sql = " select * + from {$g5['qa_content_table']} + where qa_type = '1' + and qa_parent = '{$view['qa_id']}' "; + $answer = sql_fetch($sql); + + if($is_admin) { + $answer_update_href = G5_BBS_URL.'/qawrite.php?w=u&qa_id='.$answer['qa_id'].$qstr; + $answer_delete_href = G5_BBS_URL.'/qadelete.php?qa_id='.$answer['qa_id'].$qstr; + } + } + + $stx = get_text(stripslashes($stx)); + + $is_dhtml_editor = false; + // 모바일에서는 DHTML 에디터 사용불가 + if ($config['cf_editor'] && $qaconfig['qa_use_editor'] && !G5_IS_MOBILE) { + $is_dhtml_editor = true; + } + $editor_html = editor_html('qa_content', $content, $is_dhtml_editor); + $editor_js = ''; + $editor_js .= get_editor_js('qa_content', $is_dhtml_editor); + $editor_js .= chk_editor_js('qa_content', $is_dhtml_editor); + + $ss_name = 'ss_qa_view_'.$qa_id; + if(!get_session($ss_name)) + set_session($ss_name, TRUE); + + // 첨부파일 + $view['img_file'] = array(); + $view['download_href'] = array(); + $view['download_source'] = array(); + $view['img_count'] = 0; + $view['download_count'] = 0; + + for ($i=1; $i<=2; $i++) { + if(preg_match("/\.({$config['cf_image_extension']})$/i", $view['qa_file'.$i])) { + $view['img_file'][] = '
    '; + $view['img_count']++; + continue; + } + + if ($view['qa_file'.$i]) { + $view['download_href'][] = G5_BBS_URL.'/qadownload.php?qa_id='.$view['qa_id'].'&no='.$i; + $view['download_source'][] = $view['qa_source'.$i]; + $view['download_count']++; + } + } + + include_once($skin_file); +} else { + echo '
    '.str_replace(G5_PATH.'/', '', $skin_file).'이 존재하지 않습니다.
    '; +} + +include_once('./_tail.php'); +?> \ No newline at end of file diff --git a/bbs/qawrite.php b/bbs/qawrite.php new file mode 100644 index 000000000..252e8606e --- /dev/null +++ b/bbs/qawrite.php @@ -0,0 +1,141 @@ +


    ====== 이전 답변내용 =======
    '; + else + $content = "\n\n\n\n====== 이전 답변내용 =======\n"; + + $content .= get_text($write['qa_content'], 0); + } else { + $content = get_text($write['qa_content'], 0); + } + + $editor_html = editor_html('qa_content', $content, $is_dhtml_editor); + $editor_js = ''; + $editor_js .= get_editor_js('qa_content', $is_dhtml_editor); + $editor_js .= chk_editor_js('qa_content', $is_dhtml_editor); + + $upload_max_filesize = number_format($qaconfig['qa_upload_size']) . ' 바이트'; + + $html_value = ''; + if ($write['qa_html']) { + $html_checked = 'checked'; + $html_value = $write['qa_html']; + + if($w == 'r' && $write['qa_html'] == 1 && !$is_dhtml_editor) + $html_value = 2; + } + + $is_email = false; + $req_email = ''; + if($qaconfig['qa_use_email']) { + $is_email = true; + + if($qaconfig['qa_req_email']) + $req_email = 'required'; + + if($w == '' || $w == 'r') + $write['qa_email'] = $member['mb_email']; + + if($w == 'u' && $is_admin && $write['qa_type']) + $is_email = false; + } + + $is_hp = false; + $req_hp = ''; + if($qaconfig['qa_use_hp']) { + $is_hp = true; + + if($qaconfig['qa_req_hp']) + $req_hp = 'required'; + + if($w == '' || $w == 'r') + $write['qa_hp'] = $member['mb_hp']; + + if($w == 'u' && $is_admin && $write['qa_type']) + $is_hp = false; + } + + $list_href = G5_BBS_URL.'/qalist.php'.preg_replace('/^&/', '?', $qstr); + + $action_url = https_url(G5_BBS_DIR).'/qawrite_update.php'; + + include_once($skin_file); +} else { + echo '
    '.str_replace(G5_PATH.'/', '', $skin_file).'이 존재하지 않습니다.
    '; +} + +include_once('./_tail.php'); +?> \ No newline at end of file diff --git a/bbs/qawrite_update.php b/bbs/qawrite_update.php new file mode 100644 index 000000000..b88f36572 --- /dev/null +++ b/bbs/qawrite_update.php @@ -0,0 +1,339 @@ +제목을 입력하세요.'; +} + +$qa_content = ''; +if (isset($_POST['qa_content'])) { + $qa_content = substr(trim($_POST['qa_content']),0,65536); +} +if ($qa_content == '') { + $msg[] = '내용을 입력하세요.'; +} + +if (!empty($msg)) { + $msg = implode('
    ', $msg); + alert($msg); +} + +// 090710 +if (substr_count($qa_content, '&#') > 50) { + alert('내용에 올바르지 않은 코드가 다수 포함되어 있습니다.'); + exit; +} + +$upload_max_filesize = ini_get('upload_max_filesize'); + +if (empty($_POST)) { + alert("파일 또는 글내용의 크기가 서버에서 설정한 값을 넘어 오류가 발생하였습니다.\\npost_max_size=".ini_get('post_max_size')." , upload_max_filesize=".$upload_max_filesize."\\n게시판관리자 또는 서버관리자에게 문의 바랍니다."); +} + +for ($i=1; $i<=5; $i++) { + $var = "qa_$i"; + $$var = ""; + if (isset($_POST['qa_'.$i]) && $_POST['qa_'.$i]) { + $$var = escape_trim($_POST['qa_'.$i]); + } +} + +// 1:1문의 설정값 +$qaconfig = get_qa_config(); + +if($w == 'u' || $w == 'a' || $w == 'r') { + if($w == 'a' && !$is_admin) + alert('답변은 관리자만 등록할 수 있습니다.'); + + $sql = " select * from {$g5['qa_content_table']} where qa_id = '$qa_id' "; + if(!$is_admin) { + $sql .= " and mb_id = '{$member['mb_id']}' "; + } + + $write = sql_fetch($sql); + + if($w == 'u') { + if(!$write['qa_id']) + alert('게시글이 존재하지 않습니다.\\n삭제되었거나 자신의 글이 아닌 경우입니다.'); + + if(!$is_admin) { + if($write['qa_type'] == 0 && $write['qa_status'] == 1) + alert('답변이 등록된 문의글은 수정할 수 없습니다.'); + + if($write['mb_id'] != $member['mb_id']) + alert('게시글을 수정할 권한이 없습니다.\\n\\n올바른 방법으로 이용해 주십시오.', G5_URL); + } + } + + if($w == 'a') { + if(!$write['qa_id']) + alert('문의글이 존재하지 않아 답변글을 등록할 수 없습니다.'); + + if($write['qa_type'] == 1) + alert('답변글에는 다시 답변을 등록할 수 없습니다.'); + } +} + +// 디렉토리가 없다면 생성합니다. (퍼미션도 변경하구요.) +@mkdir(G5_DATA_PATH.'/qa', G5_DIR_PERMISSION); +@chmod(G5_DATA_PATH.'/qa', G5_DIR_PERMISSION); + +$chars_array = array_merge(range(0,9), range('a','z'), range('A','Z')); + +// 가변 파일 업로드 +$file_upload_msg = ''; +$upload = array(); +for ($i=1; $i<=count($_FILES['bf_file']['name']); $i++) { + $upload[$i]['file'] = ''; + $upload[$i]['source'] = ''; + $upload[$i]['del_check'] = false; + + // 삭제에 체크가 되어있다면 파일을 삭제합니다. + if (isset($_POST['bf_file_del'][$i]) && $_POST['bf_file_del'][$i]) { + $upload[$i]['del_check'] = true; + @unlink(G5_DATA_PATH.'/qa/'.$write['qa_file'.$i]); + // 썸네일삭제 + if(preg_match("/\.({$config['cf_image_extension']})$/i", $write['qa_file'.$i])) { + delete_qa_thumbnail($write['qa_file'.$i]); + } + } + + $tmp_file = $_FILES['bf_file']['tmp_name'][$i]; + $filesize = $_FILES['bf_file']['size'][$i]; + $filename = $_FILES['bf_file']['name'][$i]; + $filename = preg_replace('/(<|>|=)/', '', $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 > $qaconfig['qa_upload_size']) { + $file_upload_msg .= '\"'.$filename.'\" 파일의 용량('.number_format($filesize).' 바이트)이 게시판에 설정('.number_format($qaconfig['qa_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; + } + //================================================================= + + if ($w == 'u') { + // 존재하는 파일이 있다면 삭제합니다. + @unlink(G5_DATA_PATH.'/qa/'.$write['qa_file'.$i]); + // 이미지파일이면 썸네일삭제 + if(preg_match("/\.({$config['cf_image_extension']})$/i", $write['qa_file'.$i])) { + delete_qa_thumbnail($row['qa_file'.$i]); + } + } + + // 프로그램 원래 파일명 + $upload[$i]['source'] = $filename; + $upload[$i]['filesize'] = $filesize; + + // 아래의 문자열이 들어간 파일은 -x 를 붙여서 웹경로를 알더라도 실행을 하지 못하도록 함 + $filename = preg_replace("/\.(php|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).'_'.str_replace('%', '', urlencode(str_replace(' ', '_', $filename))); + + $dest_file = G5_DATA_PATH.'/qa/'.$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); + } +} + +if($w == '' || $w == 'a' || $w == 'r') { + if($w == '' || $w == 'r') { + $row = sql_fetch(" select MIN(qa_num) as min_qa_num from {$g5['qa_content_table']} "); + $qa_num = $row['min_qa_num'] - 1; + } + + if($w == 'a') { + $qa_num = $write['qa_num']; + $qa_parent = $write['qa_id']; + $qa_related = $write['qa_related']; + $qa_category = $write['qa_category']; + $qa_type = 1; + $qa_status = 1; + } + + $sql = " insert into {$g5['qa_content_table']} + set qa_num = '$qa_num', + mb_id = '{$member['mb_id']}', + qa_name = '{$member['mb_nick']}', + qa_email = '$qa_email', + qa_hp = '$qa_hp', + qa_type = '$qa_type', + qa_parent = '$qa_parent', + qa_related = '$qa_related', + qa_category = '$qa_category', + qa_email_recv = '$qa_email_recv', + qa_sms_recv = '$qa_sms_recv', + qa_html = '$qa_html', + qa_subject = '$qa_subject', + qa_content = '$qa_content', + qa_status = '$qa_status', + qa_file1 = '{$upload[1]['file']}', + qa_source1 = '{$upload[1]['source']}', + qa_file2 = '{$upload[2]['file']}', + qa_source2 = '{$upload[2]['source']}', + qa_ip = '{$_SERVER['REMOTE_ADDR']}', + qa_datetime = '".G5_TIME_YMDHIS."', + qa_1 = '$qa_1', + qa_2 = '$qa_2', + qa_3 = '$qa_3', + qa_4 = '$qa_4', + qa_5 = '$qa_5' "; + sql_query($sql); + + if($w == '' || $w == 'r') { + $qa_id = mysql_insert_id(); + + if($w == 'r' && $write['qa_related']) { + $qa_related = $write['qa_related']; + } else { + $qa_related = $qa_id; + } + + $sql = " update {$g5['qa_content_table']} + set qa_parent = '$qa_id', + qa_related = '$qa_related' + where qa_id = '$qa_id' "; + sql_query($sql); + } + + if($w == 'a') { + $sql = " update {$g5['qa_content_table']} + set qa_status = '1' + where qa_id = '{$write['qa_parent']}' "; + sql_query($sql); + } +} else if($w == 'u') { + if(!$upload[1]['file'] && !$upload[1]['del_check']) { + $upload[1]['file'] = $write['qa_file1']; + $upload[1]['source'] = $write['qa_source1']; + } + + if(!$upload[2]['file'] && !$upload[2]['del_check']) { + $upload[2]['file'] = $write['qa_file2']; + $upload[2]['source'] = $write['qa_source2']; + } + + $sql = " update {$g5['qa_content_table']} + set qa_email = '$qa_email', + qa_hp = '$qa_hp', + qa_category = '$qa_category', + qa_html = '$qa_html', + qa_subject = '$qa_subject', + qa_content = '$qa_content', + qa_file1 = '{$upload[1]['file']}', + qa_source1 = '{$upload[1]['source']}', + qa_file2 = '{$upload[2]['file']}', + qa_source2 = '{$upload[2]['source']}', + qa_1 = '$qa_1', + qa_2 = '$qa_2', + qa_3 = '$qa_3', + qa_4 = '$qa_4', + qa_5 = '$qa_5' "; + if($qa_sms_recv) + $sql .= ", qa_sms_recv = '$qa_sms_recv' "; + $sql .= " where qa_id = '$qa_id' "; + sql_query($sql); +} + +// SMS 알림 +if($config['cf_sms_use'] == 'icode' && $qaconfig['qa_use_sms']) { + include_once(G5_LIB_PATH.'/icode.sms.lib.php'); + + // 답변글은 질문 등록자에게 전송 + if($w == 'a' && $write['qa_sms_recv'] && trim($write['qa_hp'])) { + $sms_content = $config['cf_title'].' '.$qaconfig['qa_title'].'에 답변이 등록되었습니다.'; + $send_number = preg_replace('/[^0-9]/', '', $qaconfig['qa_send_number']); + $recv_number = preg_replace('/[^0-9]/', '', $write['qa_hp']); + + if($recv_number) { + $SMS = new SMS; // SMS 연결 + $SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']); + $SMS->Add($recv_number, $send_number, $config['cf_icode_id'], iconv("utf-8", "euc-kr", stripslashes($sms_content)), ""); + $SMS->Send(); + } + } + + // 문의글 등록시 관리자에게 전송 + if(($w == '' || $w == 'r') && trim($qaconfig['qa_admin_hp'])) { + $sms_content = $config['cf_title'].' '.$qaconfig['qa_title'].'에 문의글이 등록되었습니다.'; + $send_number = preg_replace('/[^0-9]/', '', $qa_hp); + $recv_number = preg_replace('/[^0-9]/', '', $qaconfig['qa_admin_hp']); + + if($recv_number) { + $SMS = new SMS; // SMS 연결 + $SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']); + $SMS->Add($recv_number, $send_number, $config['cf_icode_id'], iconv("utf-8", "euc-kr", stripslashes($sms_content)), ""); + $SMS->Send(); + } + } +} + +// 답변 이메일전송 +if($w == 'a' && $write['qa_email_recv'] && trim($write['qa_email'])) { + include_once(G5_LIB_PATH.'/mailer.lib.php'); + + $subject = $config['cf_title'].' '.$qaconfig['qa_title'].' 답변 알림 메일'; + $content = conv_content($qa_content, $qa_html); + + mailer($config['cf_title'], $admin['mb_email'], $write['qa_email'], $subject, $content, 1); +} + +if($w == 'a') + $result_url = G5_BBS_URL.'/qaview.php?qa_id='.$qa_id.$qstr; +else if($w == 'u' && $write['qa_type']) + $result_url = G5_BBS_URL.'/qaview.php?qa_id='.$write['qa_parent'].$qstr; +else + $result_url = G5_BBS_URL.'/qalist.php'.preg_replace('/^&/', '?', $qstr); + +if ($file_upload_msg) + alert($file_upload_msg, $result_url); +else + goto_url($result_url); +?> \ No newline at end of file diff --git a/bbs/view_image.php b/bbs/view_image.php index ae8ca4ef9..779f83a30 100644 --- a/bbs/view_image.php +++ b/bbs/view_image.php @@ -10,6 +10,9 @@ $bo_table = $_GET['bo_table']; if(strpos($filename, 'data/editor')) { $editor_file = strstr($filename, 'editor'); $filepath = G5_DATA_PATH.'/'.$editor_file; +} else if(strpos($filename, 'data/qa')) { + $editor_file = strstr($filename, 'qa'); + $filepath = G5_DATA_PATH.'/'.$editor_file; } else { $editor_file = ''; $filepath = G5_DATA_PATH.'/file/'.$bo_table.'/'.$filename; diff --git a/css/admin.css b/css/admin.css index 304447b9c..93b8ad061 100644 --- a/css/admin.css +++ b/css/admin.css @@ -246,7 +246,8 @@ tfoot th, tfoot td {padding:10px 0;border:1px solid #c1d1d5;background:#d7e0e2} tfoot th {} tfoot td {font-weight:bold;text-align:center} table .tr_bg0 {background:#fff} -table .tr_bg1 {background:#f9f9f9} +table .tr_bg1 {background:#f5fbe8} +table .tr_bg1 td {border-color:#e4f1c6} .tbl_wrap {margin:0 0 10px;padding:0 20px} .tbl_wrap td.empty_table {padding:100px 0;text-align:center} @@ -383,7 +384,6 @@ td.td_grpset {width:160px;border-left:1px solid #e9ecee;text-align:center} .txt_true {color:#e8180c} .txt_false {color:#ccc} - .banner_or_img {margin:10px 0 0} .banner_or_img button {display:block;margin:5px 0 0} .txt_active {color:#5d910b} @@ -624,15 +624,15 @@ strong.sodr_nonpay {display:block;padding:5px 0;text-align:right} /* 새창 기본 스타일 */ .new_win {} -.new_win h1 {margin-bottom:20px;padding:0 20px;min-width:320px/* 적정값으로 변경하여 사용하세요. */;height:60px;border-top:2px solid #484848;border-bottom:1px solid #e9e9e9;background:#fff;font-size:1.2em;line-height:5em} +.new_win h1 {margin-bottom:20px;padding:0 20px;min-width:480px;height:60px;border-top:2px solid #484848;border-bottom:1px solid #e9e9e9;background:#fff;font-size:1.2em;line-height:5em} .new_win h2 {margin:0 20px 10px} .new_win_ul {margin:-20px 0 20px 0;padding:0 0 0 20px;border-bottom:1px solid #515151;background:#484848;list-style:none;zoom:1} .new_win_ul:after {display:block;visibility:hidden;clear:both;content:""} .new_win_ul li {float:left;margin-left:-1px} .new_win_ul a {display:block;padding:10px 10px 8px;border-right:1px solid #595959;border-left:1px solid #595959;color:#fff;font-family:dotum;font-weight:bold;text-decoration:none} -.new_win_desc {margin:0 auto;width:93%} -.new_win .anchor {margin:0 auto 5px;width:93%} +.new_win_desc {margin:0 20px} +.new_win .anchor {margin:0 20px 5px} .new_win .tbl_wrap {margin:0 20px 20px;padding:0} .new_win .local_sch, .new_win .local_cmd, .new_win .local_desc01, .new_win .local_desc02, .new_win .local_ov {min-width:480px} diff --git a/css/default.css b/css/default.css index fb02c389c..ea2dba950 100644 --- a/css/default.css +++ b/css/default.css @@ -7,10 +7,12 @@ body {margin:0;padding:0;background:#f9fafe;color:#000;font-size:0.75em;font-fam html, h1, h2, h3, h4, h5, h6, form, fieldset, img {margin:0;padding:0;border:0} h1, h2, h3, h4, h5, h6 {font-size:1em;font-family:dotum} article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display:block} + #hd ul, nav ul, #ft ul {margin:0;padding:0;list-style:none} legend {position:absolute;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} label, input, select, img {vertical-align:middle} input, button {margin:0;padding:0;font-family:dotum;font-size:1em} + textarea, select {font-family:dotum;font-size:1em} p {margin:0;padding:10px 0;line-height:1.7em;word-break:break-all} hr {display:none} diff --git a/css/mobile.css b/css/mobile.css index 3a2685750..84b9f0651 100644 --- a/css/mobile.css +++ b/css/mobile.css @@ -10,7 +10,7 @@ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, header ul, nav ul, footer ul {margin:0;padding:0;list-style:none} legend {position:absolute;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} label, input, select, img {vertical-align:middle} -input,button {margin:0;padding:0;font-size:1em} +input, button {margin:0;padding:0;font-size:1em} input[type=text], input[type=password], input[type=submit], input[type=image], button {border-radius:0;font-size:1em;-webkit-appearance:none} textarea, select {font-size:1em} textarea {border-radius:0;-webkit-appearance:none} @@ -111,16 +111,18 @@ a.btn02:focus, .btn02:hover {text-decoration:none} .btn_confirm {text-align:center} /* 서식단계 진행 */ input.btn_submit {padding:0 10px;height:2.6em;border:0;background:#333;color:#fff;letter-spacing:-0.1em;vertical-align:top;-webkit-appearance:none} -fieldset .btn_submit {padding:0 10px;height:1.9em;border:0;background:#333;color:#fff;letter-spacing:-0.1em;vertical-align:top;-webkit-appearance:none} +button.btn_submit {height:1.9em} +fieldset .btn_submit {height:1.9em} a.btn_cancel {display:inline-block;padding:0 10px;height:2.4em;border:1px solid #ccc;background:#fafafa;color:#000;font-size:1em;text-decoration:none;line-height:2.5em;vertical-align:top} a.btn_frmline, button.btn_frmline {display:inline-block;padding:0 5px;height:1.9em;border:0;background:#333;color:#fff;letter-spacing:-0.1em;text-decoration:none;vertical-align:top;line-height:1.9em} /* 우편번호검색버튼 등 */ +button.btn_frmline {font-size:1em} /* 게시판용 버튼 */ a.btn_b01 {display:inline-block;margin:0 0 3px;padding:0 10px;border:1px solid #eee;background:#fafafa;color:#000;text-decoration:none;line-height:2em;vertical-align:middle} a.btn_b01:focus, .btn_b01:hover {text-decoration:none} -a.btn_b02 {display:inline-block;margin:0 0 3px;padding:0 10px;border:1px solid #eee;background:#fafafa;color:#000;text-decoration:none;line-height:2em;vertical-align:middle} +a.btn_b02 {display:inline-block;margin:0 0 3px;padding:0 10px;border:1px solid #333;background:#333;color:#fff;text-decoration:none;line-height:2em;vertical-align:middle} a.btn_b02:focus, .btn_b02:hover {text-decoration:none} a.btn_admin {display:inline-block;margin:0 0 3px;padding:0 10px;border:1px solid #e8180c;background:#e8180c;color:#fff;text-decoration:none;line-height:2em;vertical-align:middle} /* 관리자 전용 버튼 */ a.btn_admin:focus, a.btn_admin:hover {text-decoration:none} @@ -160,6 +162,7 @@ a.btn_admin:focus, a.btn_admin:hover {text-decoration:none} /* 테이블 항목별 정의 */ .td_board {width:120px;text-align:center} +.td_category {width:80px;text-align:center} .td_chk {width:30px;text-align:center} .td_date {width:60px;text-align:center} .td_datetime {width:150px;text-align:center} @@ -170,6 +173,12 @@ a.btn_admin:focus, a.btn_admin:hover {text-decoration:none} .td_nick {width:100px;text-align:center} .td_num {width:50px;text-align:center} .td_numbig {width:80px;text-align:center} +.td_stat {width:60px;text-align:center} + +.txt_active {color:#5d910b} +.txt_done {color:#e8180c} +.txt_expired {color:#ccc} +.txt_rdy {color:#8abc2a} /* 새창 기본 스타일 */ .new_win {} diff --git a/head.php b/head.php index feaf79a9f..d9bc8d637 100644 --- a/head.php +++ b/head.php @@ -110,6 +110,12 @@ if ($config['cf_include_head']) { +
  • + + + 1:1문의 + +
  • diff --git a/install/gnuboard5.sql b/install/gnuboard5.sql index 8bcf3a82f..e70e27c6d 100644 --- a/install/gnuboard5.sql +++ b/install/gnuboard5.sql @@ -289,6 +289,11 @@ CREATE TABLE IF NOT EXISTS `g5_config` ( `cf_cert_kcb_cd` varchar(255) NOT NULL DEFAULT '', `cf_cert_kcp_cd` varchar(255) NOT NULL DEFAULT '', `cf_cert_limit` int(11) NOT NULL DEFAULT '0', + `cf_sms_use` varchar(255) NOT NULL DEFAULT '', + `cf_icode_id` varchar(255) NOT NULL DEFAULT '', + `cf_icode_pw` varchar(255) NOT NULL DEFAULT '', + `cf_icode_server_ip` varchar(255) NOT NULL DEFAULT '', + `cf_icode_server_port` varchar(255) NOT NULL DEFAULT '', `cf_googl_shorturl_apikey` varchar(255) NOT NULL DEFAULT '', `cf_facebook_appid` varchar(255) NOT NULL, `cf_facebook_secret` varchar(255) NOT NULL, @@ -698,3 +703,79 @@ CREATE TABLE IF NOT EXISTS `g5_autosave` ( ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- + +-- +-- Table structure for table `g5_qa_config` +-- + +CREATE TABLE IF NOT EXISTS `g5_qa_config` ( + `qa_title` varchar(255) NOT NULL DEFAULT'', + `qa_category` varchar(255) NOT NULL DEFAULT'', + `qa_skin` varchar(255) NOT NULL DEFAULT '', + `qa_mobile_skin` varchar(255) NOT NULL DEFAULT '', + `qa_use_email` tinyint(4) NOT NULL DEFAULT '0', + `qa_req_email` tinyint(4) NOT NULL DEFAULT '0', + `qa_use_hp` tinyint(4) NOT NULL DEFAULT '0', + `qa_req_hp` tinyint(4) NOT NULL DEFAULT '0', + `qa_use_sms` tinyint(4) NOT NULL DEFAULT '0', + `qa_send_number` varchar(255) NOT NULL DEFAULT '0', + `qa_admin_hp` varchar(255) NOT NULL DEFAULT '', + `qa_use_editor` tinyint(4) NOT NULL DEFAULT '0', + `qa_subject_len` int(11) NOT NULL DEFAULT '0', + `qa_mobile_subject_len` int(11) NOT NULL DEFAULT '0', + `qa_page_rows` int(11) NOT NULL DEFAULT '0', + `qa_mobile_page_rows` int(11) NOT NULL DEFAULT '0', + `qa_image_width` int(11) NOT NULL DEFAULT '0', + `qa_upload_size` int(11) NOT NULL DEFAULT '0', + `qa_insert_content` text NOT NULL, + `qa_1_subj` varchar(255) NOT NULL DEFAULT '', + `qa_2_subj` varchar(255) NOT NULL DEFAULT '', + `qa_3_subj` varchar(255) NOT NULL DEFAULT '', + `qa_4_subj` varchar(255) NOT NULL DEFAULT '', + `qa_5_subj` varchar(255) NOT NULL DEFAULT '', + `qa_1` varchar(255) NOT NULL DEFAULT '', + `qa_2` varchar(255) NOT NULL DEFAULT '', + `qa_3` varchar(255) NOT NULL DEFAULT '', + `qa_4` varchar(255) NOT NULL DEFAULT '', + `qa_5` varchar(255) NOT NULL DEFAULT '' +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `g5_qa_content` +-- + +CREATE TABLE IF NOT EXISTS `g5_qa_content` ( + `qa_id` int(11) NOT NULL AUTO_INCREMENT, + `qa_num` int(11) NOT NULL DEFAULT '0', + `qa_parent` int(11) NOT NULL DEFAULT '0', + `qa_related` int(11) NOT NULL DEFAULT '0', + `mb_id` varchar(20) NOT NULL DEFAULT '', + `qa_name` varchar(255) NOT NULL DEFAULT '', + `qa_email` varchar(255) NOT NULL DEFAULT '', + `qa_hp` varchar(255) NOT NULL DEFAULT '', + `qa_type` tinyint(4) NOT NULL DEFAULT '0', + `qa_category` varchar(255) NOT NULL DEFAULT '', + `qa_email_recv` tinyint(4) NOT NULL DEFAULT '0', + `qa_sms_recv` tinyint(4) NOT NULL DEFAULT '0', + `qa_html` tinyint(4) NOT NULL DEFAULT '0', + `qa_subject` varchar(255) NOT NULL DEFAULT '', + `qa_content` varchar(255) NOT NULL DEFAULT '', + `qa_status` tinyint(4) NOT NULL DEFAULT '0', + `qa_file1` varchar(255) NOT NULL DEFAULT '', + `qa_source1` varchar(255) NOT NULL DEFAULT '', + `qa_file2` varchar(255) NOT NULL DEFAULT '', + `qa_source2` varchar(255) NOT NULL DEFAULT '', + `qa_ip` varchar(255) NOT NULL DEFAULT '', + `qa_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `qa_1` varchar(255) NOT NULL DEFAULT '', + `qa_2` varchar(255) NOT NULL DEFAULT '', + `qa_3` varchar(255) NOT NULL DEFAULT '', + `qa_4` varchar(255) NOT NULL DEFAULT '', + `qa_5` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`qa_id`), + KEY `qa_num_parent` (`qa_num`,`qa_parent`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- diff --git a/lib/common.lib.php b/lib/common.lib.php index cbaf196db..0169f01dd 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -2039,6 +2039,20 @@ function delete_editor_thumbnail($contents) } } +// 1:1문의 첨부파일 썸네일 삭제 +function delete_qa_thumbnail($file) +{ + if(!$file) + return; + + $fn = preg_replace("/\.[^\.]+$/i", "", basename($file)); + $files = glob(G5_DATA_PATH.'/qa/thumb-'.$fn.'*'); + if (is_array($files)) { + foreach ($files as $filename) + unlink($filename); + } +} + // 스킨 style sheet 파일 얻기 function get_skin_stylesheet($skin_path, $dir='') { @@ -2357,4 +2371,15 @@ function certify_count_check($mb_id, $type) if((int)$row['cnt'] >= (int)$config['cf_cert_limit']) alert_close('오늘 '.$cert.' 본인확인을 '.$row['cnt'].'회 이용하셔서 더 이상 이용할 수 없습니다.'); } + +// 1:1문의 설정로드 +function get_qa_config($fld='*') +{ + global $g5; + + $sql = " select $fld from {$g5['qa_config_table']} "; + $row = sql_fetch($sql); + + return $row; +} ?> \ No newline at end of file diff --git a/lib/icode.sms.lib.php b/lib/icode.sms.lib.php new file mode 100644 index 000000000..e41ab5d8e --- /dev/null +++ b/lib/icode.sms.lib.php @@ -0,0 +1,153 @@ +1; $k--) { + if (ord(substr($word,$k,1))<128) break; // 한글값은 160 이상. + } + $word=substr($word,0,$cut-($cut-$k+1)%2); + return $word; +} + +function CheckCommonType($dest, $rsvTime) { + //$dest=eregi_replace("[^0-9]","",$dest); + $dest=preg_replace("/[^0-9]/i","",$dest); + if (strlen($dest)<10 || strlen($dest)>11) return "휴대폰 번호가 틀렸습니다"; + $CID=substr($dest,0,3); + //if ( eregi("[^0-9]",$CID) || ($CID!='010' && $CID!='011' && $CID!='016' && $CID!='017' && $CID!='018' && $CID!='019') ) return "휴대폰 앞자리 번호가 잘못되었습니다"; + if ( preg_match("/[^0-9]/i",$CID) || ($CID!='010' && $CID!='011' && $CID!='016' && $CID!='017' && $CID!='018' && $CID!='019') ) return "휴대폰 앞자리 번호가 잘못되었습니다"; + //$rsvTime=eregi_replace("[^0-9]","",$rsvTime); + $rsvTime=preg_replace("/[^0-9]/i","",$rsvTime); + if ($rsvTime) { + if (!checkdate(substr($rsvTime,4,2),substr($rsvTime,6,2),substr($rsvTime,0,4))) return "예약날짜가 잘못되었습니다"; + if (substr($rsvTime,8,2)>23 || substr($rsvTime,10,2)>59) return "예약시간이 잘못되었습니다"; + } +} + +class SMS { + var $ID; + var $PWD; + var $SMS_Server; + var $port; + var $SMS_Port; + var $Data = array(); + var $Result = array(); + + function SMS_con($sms_server,$sms_id,$sms_pw,$port) { + $this->ID=$sms_id; // 계약 후 지정 + $this->PWD=$sms_pw; // 계약 후 지정 + $this->SMS_Server=$sms_server; + $this->SMS_Port=$port; + $this->ID = spacing($this->ID,10); + $this->PWD = spacing($this->PWD,10); + } + + function Init() { + $this->Data = ""; + $this->Result = ""; + } + + function Add($dest, $callBack, $Caller, $msg, $rsvTime="") { + global $g5; + + // 내용 검사 1 + $Error = CheckCommonType($dest, $rsvTime); + if ($Error) return $Error; + // 내용 검사 2 + //if ( eregi("[^0-9]",$callBack) ) return "회신 전화번호가 잘못되었습니다"; + if ( preg_match("/[^0-9]/i",$callBack) ) return "회신 전화번호가 잘못되었습니다"; + + // 아이코드에서는 문자에 utf-8 인코딩 형식을 아직 지원하지 않는다. + if (strtolower($g5['charset'])=='utf-8') { + if (function_exists("iconv")) { + $msg = iconv("utf-8", "euc-kr", $msg); + } + } + + $msg=cut_char($msg,80); // 80자 제한 + // 보낼 내용을 배열에 집어넣기 + $dest = spacing($dest,11); + $callBack = spacing($callBack,11); + $Caller = spacing($Caller,10); + $rsvTime = spacing($rsvTime,12); + $msg = spacing($msg,80); + + $this->Data[] = '01144 '.$this->ID.$this->PWD.$dest.$callBack.$Caller.$rsvTime.$msg; + return ""; + } + + function AddURL($dest, $callBack, $URL, $msg, $rsvTime="") { + // 내용 검사 1 + $Error = CheckCommonType($dest, $rsvTime); + if ($Error) return $Error; + // 내용 검사 2 + //$URL=str_replace("http://","",$URL); + if (strlen($URL)>50) return "URL이 50자가 넘었습니다"; + switch (substr($dest,0,3)) { + case '010': //20바이트 + $msg=cut_char($msg,20); + break; + case '011': //80바이트 + $msg=cut_char($msg,80); + break; + case '016': // 80바이트 + $msg=cut_char($msg,80); + break; + case '017': // URL 포함 80바이트 + $msg=cut_char($msg,80-strlen($URL)); + break; + case '018': // 20바이트 + $msg=cut_char($msg,20); + break; + case '019': // 20바이트 + $msg=cut_char($msg,20); + break; + default: + return "아직 URL CallBack이 지원되지 않는 번호입니다"; + break; + } + // 보낼 내용을 배열에 집어넣기 + $dest = spacing($dest,11); + $URL = spacing($URL,50); + $callBack = spacing($callBack,11); + $rsvTime = spacing($rsvTime,12); + $msg = spacing($msg,80); + $this->Data[] = '05173 '.$this->ID.$this->PWD.$dest.$callBack.$URL.$rsvTime.$msg; + return ""; + } + + function Send () { + $fp=@fsockopen(trim($this->SMS_Server),trim($this->SMS_Port)); + if (!$fp) return false; + set_time_limit(300); + + ## php4.3.10일경우 + ## zend 최신버전으로 업해주세요.. + ## 또는 122번째 줄을 $this->Data as $tmp => $puts 로 변경해 주세요. + + foreach($this->Data as $puts) { + $dest = substr($puts,26,11); + fputs($fp,$puts); + while(!$gets) { $gets=fgets($fp,30); } + if (substr($gets,0,19)=="0223 00".$dest) $this->Result[]=$dest.":".substr($gets,19,10); + else $this->Result[$dest]=$dest.":Error"; + $gets=""; + } + fclose($fp); + $this->Data=""; + return true; + } +} +?> \ No newline at end of file diff --git a/mobile/head.php b/mobile/head.php index f6315d51e..a70ac7c31 100644 --- a/mobile/head.php +++ b/mobile/head.php @@ -61,6 +61,7 @@ include_once(G5_LIB_PATH.'/popular.lib.php');
      +
    • 1:1문의
    • 접속자
    • 새글
    • diff --git a/mobile/skin/board/basic/style.css b/mobile/skin/board/basic/style.css index 5c3370433..703f997c6 100644 --- a/mobile/skin/board/basic/style.css +++ b/mobile/skin/board/basic/style.css @@ -147,7 +147,7 @@ #bo_v_table {padding:0 10px;color:#999;font-size:0.9em;font-weight:bold} -#bo_v_title {padding:0 7px 5px;font-size:1.2em} +#bo_v_title {padding:0 10px 5px;font-size:1.2em} #bo_v_info {padding:0 10px 10px;border-bottom:1px solid #ddd} #bo_v_info h2 {margin:0;padding:0;height:0;overflow:hidden} @@ -185,7 +185,7 @@ .bo_v_com {float:right} .bo_v_com li {float:left;margin-left:5px} -#bo_v_atc {min-height:200px;padding:0 10px;min-height:200px} +#bo_v_atc {padding:0 10px;min-height:200px} #bo_v_atc_title {margin:0;padding:0;height:0;overflow:hidden} #bo_v_img {margin:0 0 10px;width:100%;overflow:hidden;zoom:1} diff --git a/mobile/skin/board/gallery/style.css b/mobile/skin/board/gallery/style.css index 2ea1ce968..6ab7c104e 100644 --- a/mobile/skin/board/gallery/style.css +++ b/mobile/skin/board/gallery/style.css @@ -129,7 +129,7 @@ #bo_v_table {padding:0 10px;color:#999;font-size:0.9em;font-weight:bold} -#bo_v_title {padding:0 5px 5px;font-size:1.2em} +#bo_v_title {padding:0 10px 5px;font-size:1.2em} #bo_v_info {padding:0 10px 10px;border-bottom:1px solid #ddd} #bo_v_info h2 {margin:0;padding:0;height:0;overflow:hidden} @@ -171,7 +171,7 @@ .bo_v_com {float:right} .bo_v_com li {float:left;margin-left:5px} -#bo_v_atc {min-height:200px;padding:0 10px;min-height:200px} +#bo_v_atc {padding:0 10px;min-height:200px} #bo_v_atc_title {margin:0;padding:0;height:0;overflow:hidden} #bo_v_img {margin:0 0 10px;width:100%;overflow:hidden;zoom:1} diff --git a/mobile/skin/member/basic/style.css b/mobile/skin/member/basic/style.css index 4d881265d..061ad9501 100644 --- a/mobile/skin/member/basic/style.css +++ b/mobile/skin/member/basic/style.css @@ -105,8 +105,8 @@ #mb_login h1 {margin:0 0 15px;padding:0 10px;font-size:1.3em} #mb_login h2 {margin:0} #mb_login fieldset {position:relative;padding:0 5px;font-size:1em} -#mb_login .frm_input {display:block;margin-bottom:5px;padding:0;width:80%;height:1.8em;line-height:1.8em} -#mb_login .btn_submit {position:absolute;top:0;right:5px;padding:0 !important;width:18%;height:4em !important;text-align:center} +#mb_login .frm_input {display:block;margin-bottom:5px;padding:0;width:81%;height:1.8em;line-height:1.8em} +#mb_login .btn_submit {position:absolute;top:0;right:5px;padding:0 !important;width:18%;height:4.3em !important;text-align:center} #mb_login section {margin:30px 0;padding:15px 10px;border:1px solid #cfded8;background:#f7f7f7} #mb_login section div {text-align:right} diff --git a/mobile/skin/qa/basic/img/btn_close.gif b/mobile/skin/qa/basic/img/btn_close.gif new file mode 100644 index 0000000000000000000000000000000000000000..040b180ac6584ae612ef2886487110f0ad079963 GIT binary patch literal 211 zcmZ?wbhEHbC>lw|Nj2|^XJd+Ki|K7yLIc<@85r}UAy+@_wT|Ns9P2m!^PEMO%%AQEIJ18abSL2rs@7wgh> zI-xzeYYr882T$7a>~-(!J@=MOy}Z$ltNl`73Cq0Bi3wIGB-b=ECVhGFY*&ANIg94( d^Unm859R4|2rw-)wA%9i`(c-qSMQw}tN}eeW+eas literal 0 HcmV?d00001 diff --git a/mobile/skin/qa/basic/img/icon_answer.gif b/mobile/skin/qa/basic/img/icon_answer.gif new file mode 100644 index 0000000000000000000000000000000000000000..91c135977b4f445a90c849310dc80efde1983830 GIT binary patch literal 77 zcmZ?wbhEHb-Wqsc#^P~2x#@rVooH@5wHB9i@BozKb;P9uI^*c|UyXO5@>VyLmgEat< Cr6(f* literal 0 HcmV?d00001 diff --git a/mobile/skin/qa/basic/img/icon_hot.gif b/mobile/skin/qa/basic/img/icon_hot.gif new file mode 100644 index 0000000000000000000000000000000000000000..c95b839aeef0c1e26a4bab4ea50cd6d3f1969d7f GIT binary patch literal 97 zcmZ?wbhEHbzHen|7VvwFnzUPlarEA ZqW~YXyUO~T+#YkUoJ%V_>ib05Q5F AasU7T literal 0 HcmV?d00001 diff --git a/mobile/skin/qa/basic/img/icon_mobile.gif b/mobile/skin/qa/basic/img/icon_mobile.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad934d23c440c83db0c4589596465cb087353e01 GIT binary patch literal 62 zcmZ?wbhEHbZ% literal 0 HcmV?d00001 diff --git a/mobile/skin/qa/basic/img/icon_secret.gif b/mobile/skin/qa/basic/img/icon_secret.gif new file mode 100644 index 0000000000000000000000000000000000000000..c04899f14fa727b64223f6c5457877c6c939639d GIT binary patch literal 97 zcmZ?wbhEHb&!1E4^4&ClEzh)PmWxV3{9A~!gB2-%RL5bHcgg3Zp^!+W)H2^A_AxQuL literal 0 HcmV?d00001 diff --git a/mobile/skin/qa/basic/img/icon_sound.gif b/mobile/skin/qa/basic/img/icon_sound.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5188318a5cdc394b984125c0ddd376c5f57bbe4 GIT binary patch literal 113 zcmZ?wbhEHbE1CJY$zMikVi`-#gIi|DbmsXBWf6U5szE@->A`0*`&<;b@XASRrB8=E6~=S>Pbm I%fes{0AXt-SpWb4 literal 0 HcmV?d00001 diff --git a/mobile/skin/qa/basic/list.skin.php b/mobile/skin/qa/basic/list.skin.php new file mode 100644 index 000000000..27a752ce5 --- /dev/null +++ b/mobile/skin/qa/basic/list.skin.php @@ -0,0 +1,166 @@ + + + + +
      + + + + + + + +
      +
      + Total + 페이지 +
      + + + + +
      + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + '; } ?> + +
      목록
      번호 + + + 분류제목글쓴이상태등록일
      + + + + + + + +
      게시물이 없습니다.
      +
      + +
      + +
        +
      • +
      + + + +
      +
      +
      + + + + + + + + + +
      + 게시물 검색 + +
      + + + + +
      +
      + + + + + + \ No newline at end of file diff --git a/mobile/skin/qa/basic/style.css b/mobile/skin/qa/basic/style.css new file mode 100644 index 000000000..809e5901c --- /dev/null +++ b/mobile/skin/qa/basic/style.css @@ -0,0 +1,256 @@ +@charset "utf-8"; +/* SIR 지운아빠 */ + +/* ### 기본 스타일 커스터마이징 시작 ### */ + +/* 게시판 버튼 */ +/* 목록 버튼 */ +#bo_list a.btn_b01 {} +#bo_list a.btn_b01:focus, #bo_list .btn_b01:hover {} +#bo_list a.btn_b02 {} +#bo_list a.btn_b02:focus, #bo_list .btn_b02:hover {} +#bo_list a.btn_admin {} /* 관리자 전용 버튼 */ +#bo_list a.btn_admin:focus, #bo_list a.btn_admin:hover {} + +/* 읽기 버튼 */ +#bo_v a.btn_b01 {} +#bo_v a.btn_b01:focus, #bo_v .btn_b01:hover {} +#bo_v a.btn_b02 {} +#bo_v a.btn_b02:focus, #bo_v .btn_b02:hover {} +#bo_v a.btn_admin {} /* 관리자 전용 버튼 */ +#bo_v a.btn_admin:focus, #bo_v a.btn_admin:hover {} + +/* 쓰기 버튼 */ +#bo_w .btn_confirm {} /* 서식단계 진행 */ +#bo_w .btn_submit {} +#bo_w .btn_cancel {} +#bo_w .btn_frmline {} /* 우편번호검색버튼 등 */ + +/* 기본테이블 */ +/* 목록 테이블 */ +#bo_list .tbl_head01 {} +#bo_list .tbl_head01 caption {} +#bo_list .tbl_head01 thead th {} +#bo_list .tbl_head01 thead a {} +#bo_list .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +#bo_list .tbl_head01 tfoot th {} +#bo_list .tbl_head01 tfoot td {} +#bo_list .tbl_head01 tbody th {} +#bo_list .tbl_head01 td {} +#bo_list .tbl_head01 a {} +#bo_list td.empty_table {} + +/* 읽기 내 테이블 */ +#bo_v .tbl_head01 {} +#bo_v .tbl_head01 caption {} +#bo_v .tbl_head01 thead th {} +#bo_v .tbl_head01 thead a {} +#bo_v .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +#bo_v .tbl_head01 tfoot th {} +#bo_v .tbl_head01 tfoot td {} +#bo_v .tbl_head01 tbody th {} +#bo_v .tbl_head01 td {} +#bo_v .tbl_head01 a {} +#bo_v td.empty_table {} + +/* 쓰기 테이블 */ +#bo_w table {} +#bo_w caption {} +#bo_w .frm_address {} +#bo_w .frm_file {} +#bo_w .frm_info {} + +#bo_w .tbl_frm01 {} +#bo_w .tbl_frm01 caption {} +#bo_w .tbl_frm01 th {} +#bo_w .tbl_frm01 td {} +#bo_w .tbl_frm01 textarea, #bo_w .frm_input {} +#bo_w .tbl_frm01 textarea {} +/* +#bo_w .tbl_frm01 #captcha {} +#bo_w .tbl_frm01 #captcha input {} +*/ +#bo_w .tbl_frm01 a {} + +#bo_w .required, #bo_w textarea.required {} + +/* ### 기본 스타일 커스터마이징 끝 ### */ + +/* 게시판 목록 */ +#bo_list .td_chk {width:30px;text-align:center} +#bo_list .td_group {width:100px;text-align:center} +#bo_list .td_board {width:120px;text-align:center} +#bo_list .td_num {width:50px;text-align:center} +#bo_list .td_numbig {width:80px;text-align:center} +#bo_list .td_mb_id {width:100px;text-align:center} +#bo_list .td_nick {width:100px;text-align:center} +#bo_list .td_name {width:100px;text-align:left} +#bo_list .td_date {width:60px;text-align:center} +#bo_list .td_datetime {width:150px;text-align:center} +#bo_list .td_mng {width:80px;text-align:center} + +#bo_cate h2 {width:0;height:0;font-size:0;line-height:0;overflow:hidden} +#bo_cate ul {margin:5px 10px;padding-left:1px;zoom:1} +#bo_cate ul:after {display:block;visibility:hidden;clear:both;content:""} +#bo_cate li {float:left;margin-bottom:-1px;width:25%} +#bo_cate a {display:block;position:relative;margin-left:-1px;padding:5px 0;border:1px solid #ddd;background:#f7f7f7;color:#888;text-align:center;text-decoration:none;letter-spacing:-0.1em} +#bo_cate a:focus, +#bo_cate a:hover, +#bo_cate a:active {text-decoration:none} +#bo_cate #bo_cate_on {z-index:2;border:1px solid #565e60;background:#fff;color:#565e60;font-weight:bold} + +/* 관리자일 때 */ +#bo_list_admin th label {position:absolute;font-size:0;line-height:0;overflow:hidden} + +#bo_list_admin th:nth-of-type(1) {width:40px} +#bo_list_admin th:nth-of-type(3) {width:100px} + +#bo_list_admin td:nth-of-type(1) {text-align:center} +#bo_list_admin td:nth-of-type(3) {text-align:center} + +/* 관리자가 아닐 때 */ +#bo_list th:nth-of-type(2) {width:100px} + +#bo_list td:nth-of-type(2) {text-align:center} + +/* 게시판 목록 공통 */ +.bo_fx {margin-bottom:5px;padding:5px 10px} +.bo_fx:after {display:block;visibility:hidden;clear:both;content:""} +.bo_fx ul {margin:0;padding:0;list-style:none} +#bo_list_total {float:left;padding:0;height:2.5em;line-height:2.5em} +.btn_bo_user {float:right;margin:0;padding:0;list-style:none} +.btn_bo_user li {float:left;margin-left:5px} +.btn_bo_adm {float:left} +.btn_bo_adm li {float:left;margin-right:5px} +.btn_bo_adm input {padding:0 10px;height:2em;border:1px solid #e8180c !important;background:#e8180c;color:#fff;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-appearance:none} +.bo_notice td {background:#f7f7f7} +.bo_notice td a {font-weight:bold} +.td_num strong {color:#000} +.bo_cate_link {display:inline-block;margin:0 3px 0 0;padding:0 6px 0 0;border-right:1px solid #e7f1ed;color:#999 !important;font-weight:bold;text-decoration:none} /* 글제목줄 분류스타일 */ +.bo_current {color:#e8180c} +.td_subject img {margin-left:3px} +#bo_list .cnt_cmt {display:inline-block;margin:0 0 0 3px;font-weight:bold} + +#bo_sch {margin-bottom:10px;padding-top:5px;text-align:center} + +/* 게시판 쓰기 */ +#bo_w #wr_email, #bo_w #wr_homepage, #bo_w #wr_subject {width:100%} + +#char_count_desc {display:block;margin:0 0 5px;padding:0} +#char_count_wrp {margin:5px 0 0;text-align:right} +#char_count {font-weight:bold} + +#qa_email {width:50%} +#qa_subject {width:100%} + +/* 게시판 읽기 */ +#bo_v {margin-bottom:15px;padding-bottom:15px} + +#bo_v_table {margin:0 0 5px;padding:0 10px;color:#999;font-size:0.9em;font-weight:bold} + +#bo_v_title {padding:0 10px 10px;font-size:1.2em} + +#bo_v_info {padding:0 10px 10px;border-bottom:1px solid #ddd} +#bo_v_info h2 {margin:0;padding:0;height:0;overflow:hidden} +#bo_v_info {} +#bo_v_info strong {display:inline-block;margin:0 0 0 5px;font-weight:normal} + +#bo_v_file {} +#bo_v_file h2 {margin:0;padding:0;height:0;overflow:hidden} +#bo_v_file ul {margin:0;padding:0;list-style:none} +#bo_v_file li {padding:0 10px;border-bottom:1px solid #eee;background:#f7f7f7} +#bo_v_file a {display:inline-block;padding:5px 0;color:#000;text-decoration:none} +#bo_v_file a:focus, #bo_v_file a:hover, #bo_v_file a:active {text-decoration:none} +.bo_v_file_cnt {display:inline-block;margin:0 10px} + +#bo_v_link {} +#bo_v_link h2 {margin:0;padding:0;height:0;overflow:hidden} +#bo_v_link ul {margin:0;padding:0;list-style:none} +#bo_v_link li {padding:0 10px;border-bottom:1px solid #eee;background:#f7f7f7} +#bo_v_link a {display:inline-block;padding:5px 0;color:#000;text-decoration:none} +#bo_v_link a:focus, #bo_v_link a:hover, #bo_v_link a:active {text-decoration:none} +.bo_v_link_cnt {display:inline-block;margin:0 10px} + +#bo_v_top {margin:0 0 10px;padding:10px} +#bo_v_top:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_top h2 {margin:0;padding:0;height:0;overflow:hidden} +#bo_v_top ul {margin:0;padding:0;list-style:none} + +#bo_v_bot {padding:0 10px} +#bo_v_bot:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_bot h2 {margin:0;padding:0;height:0;overflow:hidden} +#bo_v_bot ul {margin:0;padding:0;list-style:none} + +.bo_v_nb {float:left} +.bo_v_nb li {float:left;margin-right:5px} +.bo_v_com {float:right} +.bo_v_com li {float:left;margin-left:5px} + +#bo_v_atc {padding:0 10px;min-height:100px} +#bo_v_atc_title {margin:0;padding:0;height:0;overflow:hidden} + +#bo_v_img {margin:0 0 10px;width:100%;overflow:hidden;zoom:1} +#bo_v_img:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_img img {margin-bottom:15px;max-width:100%;height:auto} + +#bo_v_con {margin-bottom:20px;width:100%;line-height:1.7em;word-break:break-all;overflow:hidden} +#bo_v_con a {color:#000;text-decoration:underline} +#bo_v_con img {max-width:100%;height:auto} + +#bo_v_act {margin-bottom:20px;text-align:center} +#bo_v_act a {margin-right:5px;vertical-align:top} +#bo_v_act span {display:inline-block;margin-right:5px;padding:0 10px;border:1px solid #eee !important;background:#fafafa !important;color:#000 !important;text-decoration:none !important;line-height:2em;vertical-align:top} +#bo_v_act strong {color:#ff3061} +#bo_v_act_good, #bo_v_act_nogood {display:inline-block;width:1px;height:1px;font-size:0;line-height:0;overflow:hidden} + +#bo_v_sns {margin:0 0 20px;padding:0;list-style:none;zoom:1} +#bo_v_sns:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_sns li {float:left;margin:0 5px 0 0} + +#bo_v_addq {margin:0 0 30px;text-align:right} + +#bo_v_ans {margin:0 10px 30px;padding:30px 0 0;border-top:1px solid #e9e9e9} +#bo_v_ans h2 {display:inline-block;vertical-align:middle;font-size:1.2em} +#bo_v_ans #ans_datetime {margin:10px 0;color:#999} +#bo_v_ans #ans_con {margin:0 0 10px;line-height:1.8em} +#bo_v_ans #ans_add {text-align:right} +#bo_v_ans #ans_msg {padding:40px 0;background:#f2f5f9;text-align:center} + +#bo_v_rel {margin:0 0 30px;padding:30px 0 0;border-top:1px solid #e9e9e9} +#bo_v_rel h2 {margin:0 10px 10px;font-size:1.2em} + +#bo_v form {padding-top:15px} + +/* 게시판 댓글 */ +#bo_vc {margin:0 0 5px;padding:15px 15px 5px;border-top:1px solid #cfded8;border-bottom:1px solid #cfded8;background:#f7f7f7} +#bo_vc h2 {margin-bottom:5px} +#bo_vc article {padding:0 0 5px;border-top:1px dotted #ccc} +#bo_vc header {position:relative;padding:13px 0 5px} +#bo_vc header .icon_reply {position:absolute;top:13px;left:-20px} +#bo_vc .sv_member, #bo_vc .sv_guest {font-weight:bold} +.bo_vc_hdinfo {display:inline-block;margin:0 10px 0 5px} +#bo_vc h1 {width:0;height:0;font-size:0;line-height:0;overflow:hidden} +#bo_vc a {color:#000;text-decoration:none} +#bo_vc p {padding:0 0 5px;line-height:1.8em} +#bo_vc p a {text-decoration:underline} +#bo_vc_empty {margin:0;padding:15px !important;border-bottom:1px dotted #ccc;text-align:center} +#bo_vc fieldset {margin:0 0 10px;padding:0} +#bo_vc #bo_vc_winfo {float:left} +#bo_vc footer {zoom:1} +#bo_vc footer:after {display:block;visibility:hidden;clear:both;content:""} + +.bo_vc_act {float:right;margin:0;list-style:none} +.bo_vc_act:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_act li {float:left;margin-left:5px} + +#bo_vc_w {position:relative;margin-bottom:10px;padding:0 15px 15px;border-bottom:1px solid #cfded8} +#bo_vc_w h2 {padding:10px 0 5px} +#bo_vc_w #char_cnt {display:block;margin-bottom:5px} +#bo_vc_w textarea {width:99%} + +#bo_vc_sns {margin:0;padding:0;list-style:none;zoom:1} +#bo_vc_sns:after {display:block;visibility:hidden;clear:both;content:""} +#bo_vc_sns li {float:left;margin:0 10px 0 0} +#bo_vc_sns input {margin:0 0 0 5px} + +#bo_vc form {padding:0} \ No newline at end of file diff --git a/mobile/skin/qa/basic/view.answer.skin.php b/mobile/skin/qa/basic/view.answer.skin.php new file mode 100644 index 000000000..d8d8beb1f --- /dev/null +++ b/mobile/skin/qa/basic/view.answer.skin.php @@ -0,0 +1,24 @@ + + +
      +

      답변:

      + 추가질문 + +
      + +
      +
      + +
      + +
      + + 답변수정 + + + 답변삭제 + +
      +
      \ No newline at end of file diff --git a/mobile/skin/qa/basic/view.answerform.skin.php b/mobile/skin/qa/basic/view.answerform.skin.php new file mode 100644 index 000000000..7fbf8d81f --- /dev/null +++ b/mobile/skin/qa/basic/view.answerform.skin.php @@ -0,0 +1,125 @@ + + +
      + +

      답변등록

      + +
      + + + + + + '; + } else { + $option .= "\n".''."\n".''; + } + + echo $option_hidden; + ?> + +
      + + + + + + + + + + + + + + + + + +
      옵션
      + +
      +
      + +
      + +
      +
      + + + +

      고객님의 문의에 대한 답변을 준비 중입니다.

      + +
      \ No newline at end of file diff --git a/mobile/skin/qa/basic/view.skin.php b/mobile/skin/qa/basic/view.skin.php new file mode 100644 index 000000000..a655803f7 --- /dev/null +++ b/mobile/skin/qa/basic/view.skin.php @@ -0,0 +1,169 @@ + + + + + + +
      + +
      +
      +

      + +

      +
      + +
      +

      페이지 정보

      + 작성자 + 작성일 +
      + + + +
      +

      첨부파일

      + +
      + + + + +
      + + + + + + + +
      + + +
      +

      본문

      + + \n"; + + for ($i=0; $i<$view['img_count']; $i++) { + //echo $view['img_file'][$i]; + echo get_view_thumbnail($view['img_file'][$i], $qaconfig['qa_image_width']); + } + + echo "\n"; + } + ?> + + +
      + + + + + + +
      + + + + +
      +

      연관질문

      + +
      + + + + + + + + + + + + + + + + + + + +
      분류제목상태등록일
      + + + +
      +
      +
      + + + +
      + +
      + + +
      + + + \ No newline at end of file diff --git a/mobile/skin/qa/basic/write.skin.php b/mobile/skin/qa/basic/write.skin.php new file mode 100644 index 000000000..d60ccf829 --- /dev/null +++ b/mobile/skin/qa/basic/write.skin.php @@ -0,0 +1,175 @@ + + + + +
      + +
      + + + + + + '; + } else { + $option .= "\n".''."\n".''; + } + + echo $option_hidden; + ?> + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      옵션
      + class="frm_input email" maxlength="100"> + > + +
      + class="frm_input" size="30"> + + > 답변등록 SMS알림 수신 + +
      + +
      + +
      파일 #1 + + + + +
      파일 #2 + + + + +
      +
      + +
      + + 목록 +
      +
      + + +
      + \ No newline at end of file diff --git a/skin/qa/basic/img/btn_close.gif b/skin/qa/basic/img/btn_close.gif new file mode 100644 index 0000000000000000000000000000000000000000..040b180ac6584ae612ef2886487110f0ad079963 GIT binary patch literal 211 zcmZ?wbhEHbC>lw|Nj2|^XJd+Ki|K7yLIc<@85r}UAy+@_wT|Ns9P2m!^PEMO%%AQEIJ18abSL2rs@7wgh> zI-xzeYYr882T$7a>~-(!J@=MOy}Z$ltNl`73Cq0Bi3wIGB-b=ECVhGFY*&ANIg94( d^Unm859R4|2rw-)wA%9i`(c-qSMQw}tN}eeW+eas literal 0 HcmV?d00001 diff --git a/skin/qa/basic/img/icon_answer.gif b/skin/qa/basic/img/icon_answer.gif new file mode 100644 index 0000000000000000000000000000000000000000..91c135977b4f445a90c849310dc80efde1983830 GIT binary patch literal 77 zcmZ?wbhEHb-Wqsc#^P~2x#@rVooH@5wHB9i@BozKb;P9uI^*c|UyXO5@>VyLmgEat< Cr6(f* literal 0 HcmV?d00001 diff --git a/skin/qa/basic/img/icon_hot.gif b/skin/qa/basic/img/icon_hot.gif new file mode 100644 index 0000000000000000000000000000000000000000..c95b839aeef0c1e26a4bab4ea50cd6d3f1969d7f GIT binary patch literal 97 zcmZ?wbhEHbzHen|7VvwFnzUPlarEA ZqW~YXyUO~T+#YkUoJ%V_>ib05Q5F AasU7T literal 0 HcmV?d00001 diff --git a/skin/qa/basic/img/icon_mobile.gif b/skin/qa/basic/img/icon_mobile.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad934d23c440c83db0c4589596465cb087353e01 GIT binary patch literal 62 zcmZ?wbhEHbZ% literal 0 HcmV?d00001 diff --git a/skin/qa/basic/img/icon_secret.gif b/skin/qa/basic/img/icon_secret.gif new file mode 100644 index 0000000000000000000000000000000000000000..c04899f14fa727b64223f6c5457877c6c939639d GIT binary patch literal 97 zcmZ?wbhEHb&!1E4^4&ClEzh)PmWxV3{9A~!gB2-%RL5bHcgg3Zp^!+W)H2^A_AxQuL literal 0 HcmV?d00001 diff --git a/skin/qa/basic/img/icon_sound.gif b/skin/qa/basic/img/icon_sound.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5188318a5cdc394b984125c0ddd376c5f57bbe4 GIT binary patch literal 113 zcmZ?wbhEHbE1CJY$zMikVi`-#gIi|DbmsXBWf6U5szE@->A`0*`&<;b@XASRrB8=E6~=S>Pbm I%fes{0AXt-SpWb4 literal 0 HcmV?d00001 diff --git a/skin/qa/basic/list.skin.php b/skin/qa/basic/list.skin.php new file mode 100644 index 000000000..857fcbfe4 --- /dev/null +++ b/skin/qa/basic/list.skin.php @@ -0,0 +1,166 @@ + + + + +
      + + + + + + + +
      +
      + Total + 페이지 +
      + + + + +
      + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + '; } ?> + +
      목록
      번호 + + + 분류제목글쓴이상태등록일
      + + + + + + + +
      게시물이 없습니다.
      +
      + +
      + +
        +
      • +
      + + + +
      +
      +
      + + + + + + + + + +
      + 게시물 검색 + +
      + + + + +
      +
      + + + + + + \ No newline at end of file diff --git a/skin/qa/basic/style.css b/skin/qa/basic/style.css new file mode 100644 index 000000000..34757569b --- /dev/null +++ b/skin/qa/basic/style.css @@ -0,0 +1,273 @@ +@charset "utf-8"; +/* SIR 지운아빠 */ + +/* ### 기본 스타일 커스터마이징 시작 ### */ + +/* 게시판 버튼 */ +/* 목록 버튼 */ +#bo_list a.btn_b01 {} +#bo_list a.btn_b01:focus, #bo_list a.btn_b01:hover {} +#bo_list a.btn_b02 {} +#bo_list a.btn_b02:focus, #bo_list a.btn_b02:hover {} +#bo_list a.btn_admin {} /* 관리자 전용 버튼 */ +#bo_list a.btn_admin:focus, #bo_list .btn_admin:hover {} + +/* 읽기 버튼 */ +#bo_v a.btn_b01 {} +#bo_v a.btn_b01:focus, #bo_v a.btn_b01:hover {} +#bo_v a.btn_b02 {} +#bo_v a.btn_b02:focus, #bo_v a.btn_b02:hover {} +#bo_v a.btn_admin {} /* 관리자 전용 버튼 */ +#bo_v a.btn_admin:focus, #bo_v a.btn_admin:hover {} + +/* 쓰기 버튼 */ +#bo_w .btn_confirm {} /* 서식단계 진행 */ +#bo_w .btn_submit {} +#bo_w button.btn_submit {} +#bo_w fieldset .btn_submit {} +#bo_w .btn_cancel {} +#bo_w button.btn_cancel {} +#bo_w .btn_cancel:focus, #bo_w .btn_cancel:hover {} +#bo_w a.btn_frmline, #bo_w button.btn_frmline {} /* 우편번호검색버튼 등 */ +#bo_w button.btn_frmline {} + +/* 기본 테이블 */ +/* 목록 테이블 */ +#bo_list .tbl_head01 {} +#bo_list .tbl_head01 caption {} +#bo_list .tbl_head01 thead th {} +#bo_list .tbl_head01 thead a {} +#bo_list .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +#bo_list .tbl_head01 tfoot th {} +#bo_list .tbl_head01 tfoot td {} +#bo_list .tbl_head01 tbody th {} +#bo_list .tbl_head01 td {} +#bo_list .tbl_head01 a {} +#bo_list td.empty_table {} + +/* 읽기 내 테이블 */ +#bo_v .tbl_head01 {} +#bo_v .tbl_head01 caption {} +#bo_v .tbl_head01 thead th {} +#bo_v .tbl_head01 thead a {} +#bo_v .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +#bo_v .tbl_head01 tfoot th {} +#bo_v .tbl_head01 tfoot td {} +#bo_v .tbl_head01 tbody th {} +#bo_v .tbl_head01 td {} +#bo_v .tbl_head01 a {} +#bo_v td.empty_table {} + +/* 쓰기 테이블 */ +#bo_w table {} +#bo_w caption {} +#bo_w .frm_info {} +#bo_w .frm_address {} +#bo_w .frm_file {} + +#bo_w .tbl_frm01 {} +#bo_w .tbl_frm01 th {} +#bo_w .tbl_frm01 td {} +#bo_w .tbl_frm01 textarea, #bo_w tbl_frm01 .frm_input {} +#bo_w .tbl_frm01 textarea {} +/* +#bo_w .tbl_frm01 #captcha {} +#bo_w .tbl_frm01 #captcha input {} +*/ +#bo_w .tbl_frm01 a {} + +/* 필수입력 */ +#bo_w .required, #bo_w textarea.required {} + +#bo_w .cke_sc {} +#bo_w button.btn_cke_sc{} +#bo_w .cke_sc_def {} +#bo_w .cke_sc_def dl {} +#bo_w .cke_sc_def dl:after {} +#bo_w .cke_sc_def dt, #bo_w .cke_sc_def dd {} +#bo_w .cke_sc_def dt {} +#bo_w .cke_sc_def dd {} + +/* ### 기본 스타일 커스터마이징 끝 ### */ + +/* 게시판 목록 */ +#bo_list .td_board {width:120px;text-align:center} +#bo_list .td_chk {width:30px;text-align:center} +#bo_list .td_date {width:60px;text-align:center} +#bo_list .td_datetime {width:110px;text-align:center} +#bo_list .td_group {width:100px;text-align:center} +#bo_list .td_mb_id {width:100px;text-align:center} +#bo_list .td_mng {width:80px;text-align:center} +#bo_list .td_name {width:100px;text-align:left} +#bo_list .td_nick {width:100px;text-align:center} +#bo_list .td_num {width:50px;text-align:center} +#bo_list .td_numbig {width:80px;text-align:center} + +#bo_list .txt_active {color:#5d910b} +#bo_list .txt_expired {color:#ccc} + +#bo_cate h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_cate ul {margin-bottom:10px;padding-left:1px;width:728px;zoom:1} +#bo_cate ul:after {display:block;visibility:hidden;clear:both;content:""} +#bo_cate li {float:left;margin-bottom:-1px} +#bo_cate a {display:block;position:relative;margin-left:-1px;padding:6px 0 5px;width:90px;border:1px solid #ddd;background:#f7f7f7;color:#888;text-align:center;letter-spacing:-0.1em;line-height:1.2em;cursor:pointer} +#bo_cate a:focus, #bo_cate a:hover, #bo_cate a:active {text-decoration:none} +#bo_cate #bo_cate_on {z-index:2;border:1px solid #565e60;background:#fff;color:#565e60;font-weight:bold} + +.td_subject img {margin-left:3px} + +/* 게시판 목록 공통 */ +.bo_fx {margin-bottom:5px;zoom:1} +.bo_fx:after {display:block;visibility:hidden;clear:both;content:""} +.bo_fx ul {margin:0;padding:0;list-style:none} +#bo_list_total {float:left;padding-top:5px} +.btn_bo_user {float:right;margin:0;padding:0;list-style:none} +.btn_bo_user li {float:left;margin-left:5px} +.btn_bo_adm {float:left} +.btn_bo_adm li {float:left;margin-right:5px} +.btn_bo_adm input {padding:0 10px;height:25px;border:1px solid #e8180c !important;background:#e8180c;color:#fff;text-decoration:none;vertical-align:middle;cursor:pointer} +.bo_notice td {background:#f5f6fa} +.bo_notice td a {font-weight:bold} +.td_num strong {color:#000} +.bo_cate_link {display:inline-block;margin:0 3px 0 0;padding:0 6px 0 0;border-right:1px solid #e7f1ed;color:#999 !important;font-weight:bold;text-decoration:none} /* 글제목줄 분류스타일 */ +.bo_current {color:#e8180c} +#bo_list .cnt_cmt {display:inline-block;margin:0 0 0 3px;font-weight:bold} + +#bo_sch {margin-bottom:10px;padding-top:5px;text-align:center} +#bo_sch legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} + +/* 게시판 쓰기 */ +#char_count_desc {display:block;margin:0 0 5px;padding:0} +#char_count_wrp {margin:5px 0 0;text-align:right} +#char_count {font-weight:bold} + +#autosave_wrapper {position:relative} +#autosave_pop {display:none;z-index:10;position:absolute;top:24px;right:117px;padding:8px;width:350px;height:auto !important;height:180px;max-height:180px;border:1px solid #565656;background:#fff;overflow-y:scroll} +html.no-overflowscrolling #autosave_pop {height:auto;max-height:10000px !important} /* overflow 미지원 기기 대응 */ +#autosave_pop strong {position:absolute;font-size:0;line-height:0;overflow:hidden} +#autosave_pop div {text-align:right} +#autosave_pop button {margin:0;padding:0;border:0;background:transparent} +#autosave_pop ul {margin:10px 0;padding:0;border-top:1px solid #e9e9e9;list-style:none} +#autosave_pop li {padding:8px 5px;border-bottom:1px solid #e9e9e9;zoom:1} +#autosave_pop li:after {display:block;visibility:hidden;clear:both;content:""} +#autosave_pop a {display:block;float:left} +#autosave_pop span {display:block;float:right} +.autosave_close {cursor:pointer} +.autosave_content {display:none} + +/* 게시판 읽기 */ +#bo_v {margin-bottom:20px;padding-bottom:20px} + +#bo_v_table {position:absolute;top:0;right:15px;margin:0;padding:0 5px;height:25px;background:#565e60;color:#fff;font-weight:bold;line-height:2.2em} + +#bo_v_title {padding:10px 0;font-size:1.2em} + +#bo_v_info {padding:0 0 10px;border-bottom:1px solid #ddd} +#bo_v_info h2 {margin:0;padding:0;height:0;overflow:hidden} +#bo_v_info strong {display:inline-block;margin:0 15px 0 5px;font-weight:normal} +#bo_v_info .sv_member, +#bo_v_info .sv_guest, +#bo_v_info .member, +#bo_v_info .guest {font-weight:bold} + +#bo_v_file {} +#bo_v_file h2 {margin:0;padding:0;height:0;overflow:hidden} +#bo_v_file ul {margin:0;padding:0;list-style:none} +#bo_v_file li {padding:0 10px;border-bottom:1px solid #eee;background:#f5f6fa} +#bo_v_file a {display:inline-block;padding:8px 0 7px;width:100%;color:#000;word-wrap:break-word} +#bo_v_file a:focus, #bo_v_file a:hover, #bo_v_file a:active {text-decoration:none} +#bo_v_file img {float:left;margin:0 10px 0 0} +.bo_v_file_cnt {display:inline-block;margin:0 0 3px 16px} + +#bo_v_link {} +#bo_v_link h2 {margin:0;padding:0;height:0;overflow:hidden} +#bo_v_link ul {margin:0;padding:0;list-style:none} +#bo_v_link li {padding:0 10px;border-bottom:1px solid #eee;background:#f5f6fa} +#bo_v_link a {display:inline-block;padding:8px 0 7px;width:100%;color:#000;word-wrap:break-word} +#bo_v_link a:focus, #bo_v_link a:hover, #bo_v_link a:active {text-decoration:none} +.bo_v_link_cnt {display:inline-block;margin:0 0 3px 16px} + +#bo_v_top {margin:0 0 10px;padding:10px 0;zoom:1} +#bo_v_top:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_top h2 {margin:0;padding:0;height:0;overflow:hidden} +#bo_v_top ul {margin:0;padding:0;list-style:none} + +#bo_v_bot {zoom:1} +#bo_v_bot:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_bot h2 {margin:0;padding:0;height:0;overflow:hidden} +#bo_v_bot ul {margin:0;padding:0;list-style:none} + +.bo_v_nb {float:left} +.bo_v_nb li {float:left;margin-right:5px} +.bo_v_com {float:right} +.bo_v_com li {float:left;margin-left:5px} + +#bo_v_atc {min-height:100px;height:auto !important;height:100px} +#bo_v_atc_title {position:absolute;font-size:0;line-height:0;overflow:hidden} + +#bo_v_img {margin:0 0 10px;width:100%;overflow:hidden;zoom:1} +#bo_v_img:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_img img {margin-bottom:20px;max-width:100%;height:auto} + +#bo_v_con {margin-bottom:30px;width:100%;line-height:1.7em;word-break:break-all;overflow:hidden} +#bo_v_con a {color:#000;text-decoration:underline} +#bo_v_con img {max-width:100%;height:auto} + +#bo_v_act {margin-bottom:30px;text-align:center} +#bo_v_act a {margin-right:5px;vertical-align:top} +#bo_v_act span {display:inline-block;margin-right:5px;padding:0 10px;height:23px;border:1px solid #ccc !important;background:#fafafa !important;color:#000 !important;text-decoration:none !important;line-height:2.15em;vertical-align:top} +#bo_v_act strong {color:#ff3061} +#bo_v_act_good, +#bo_v_act_nogood {position:absolute;font-size:0;line-height:0;overflow:hidden} + +#bo_v_sns {margin:0 0 20px;padding:0;list-style:none;zoom:1} +#bo_v_sns:after {display:block;visibility:hidden;clear:both;content:""} +#bo_v_sns li {float:left;margin:0 5px 0 0} + +#bo_v_addq {margin:0 0 30px;text-align:right} + +#bo_v_ans {margin:0 0 30px;padding:30px 0 0;border-top:1px solid #e9e9e9} +#bo_v_ans h2 {display:inline-block;vertical-align:middle;font-size:1.2em} +#bo_v_ans #ans_datetime {margin:10px 0;color:#999} +#bo_v_ans #ans_con {margin:0 0 10px;line-height:1.8em} +#bo_v_ans #ans_add {text-align:right} +#bo_v_ans #ans_msg {padding:40px 0;background:#f2f5f9;text-align:center} + +#bo_v_rel {margin:0 0 30px;padding:30px 0 0;border-top:1px solid #e9e9e9} +#bo_v_rel h2 {margin:0 0 10px;font-size:1.2em} + +#bo_v form {padding-top:20px} + +/* 게시판 댓글 */ +#bo_vc {padding:20px 20px 10px;border-top:1px solid #cfded8;border-bottom:1px solid #cfded8;background:#f5f6fa} +#bo_vc h2 {margin-bottom:10px} +#bo_vc article {padding:0 0 10px;border-top:1px dotted #ccc} +#bo_vc header {position:relative;padding:15px 0 5px} +#bo_vc header .icon_reply {position:absolute;top:15px;left:-20px} +#bo_vc .sv_wrap {margin-right:15px} +#bo_vc .member, #bo_vc .guest, #bo_vc .sv_member, #bo_vc .sv_guest {font-weight:bold} +.bo_vc_hdinfo {display:inline-block;margin:0 15px 0 5px} +#bo_vc h1 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_vc a {color:#000;text-decoration:none} +#bo_vc p {padding:0 0 5px;line-height:1.8em} +#bo_vc p a {text-decoration:underline} +#bo_vc_empty {margin:0;padding:20px !important;text-align:center} +#bo_vc fieldset {margin:0 0 10px;padding:0} +#bo_vc #bo_vc_winfo {float:left} +#bo_vc footer {zoom:1} +#bo_vc footer:after {display:block;visibility:hidden;clear:both;content:""} + +.bo_vc_act {float:right;margin:0;list-style:none;zoom:1} +.bo_vc_act:after {display:block;visibility:hidden;clear:both;content:""} +.bo_vc_act li {float:left;margin-left:5px} + +#bo_vc_w {position:relative;margin:0 0 10px;padding:0 0 20px;border-bottom:1px solid #cfded8} +#bo_vc_w h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} +#bo_vc_w #char_cnt {display:block;margin:0 0 5px} + +#bo_vc_sns {margin:0;padding:0;list-style:none;zoom:1} +#bo_vc_sns:after {display:block;visibility:hidden;clear:both;content:""} +#bo_vc_sns li {float:left;margin:0 20px 0 0} +#bo_vc_sns input {margin:0 0 0 5px} + +#bo_vc form {padding:0} \ No newline at end of file diff --git a/skin/qa/basic/view.answer.skin.php b/skin/qa/basic/view.answer.skin.php new file mode 100644 index 000000000..357145d90 --- /dev/null +++ b/skin/qa/basic/view.answer.skin.php @@ -0,0 +1,25 @@ + + +
      +

      답변:

      + 추가질문 + +
      + +
      + +
      + +
      + +
      + + 답변수정 + + + 답변삭제 + +
      +
      \ No newline at end of file diff --git a/skin/qa/basic/view.answerform.skin.php b/skin/qa/basic/view.answerform.skin.php new file mode 100644 index 000000000..d77fd5422 --- /dev/null +++ b/skin/qa/basic/view.answerform.skin.php @@ -0,0 +1,125 @@ + + +
      + +

      답변등록

      + +
      + + + + + + '; + } else { + $option .= "\n".''."\n".''; + } + + echo $option_hidden; + ?> + +
      + + + + + + + + + + + + + + + + + +
      옵션
      + +
      +
      + +
      + +
      +
      + + + +

      고객님의 문의에 대한 답변을 준비 중입니다.

      + +
      \ No newline at end of file diff --git a/skin/qa/basic/view.skin.php b/skin/qa/basic/view.skin.php new file mode 100644 index 000000000..dad246847 --- /dev/null +++ b/skin/qa/basic/view.skin.php @@ -0,0 +1,169 @@ + + + + + + +
      + +
      +
      +

      + +

      +
      + +
      +

      페이지 정보

      + 작성자 + 작성일 +
      + + + +
      +

      첨부파일

      + +
      + + + + +
      + + + + + + + +
      + + +
      +

      본문

      + + \n"; + + for ($i=0; $i<$view['img_count']; $i++) { + //echo $view['img_file'][$i]; + echo get_view_thumbnail($view['img_file'][$i], $qaconfig['qa_image_width']); + } + + echo "\n"; + } + ?> + + +
      + + + + + + +
      + + + + +
      +

      연관질문

      + +
      + + + + + + + + + + + + + + + + + + + +
      분류제목상태등록일
      + + + +
      +
      +
      + + + +
      + +
      + + +
      + + + \ No newline at end of file diff --git a/skin/qa/basic/write.skin.php b/skin/qa/basic/write.skin.php new file mode 100644 index 000000000..ced9ba8a7 --- /dev/null +++ b/skin/qa/basic/write.skin.php @@ -0,0 +1,175 @@ + + + + +
      + +
      + + + + + + '; + } else { + $option .= "\n".''."\n".''; + } + + echo $option_hidden; + ?> + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      옵션
      + class="frm_input email" size="50" maxlength="100"> + > + +
      + class="frm_input" size="30"> + + > 답변등록 SMS알림 수신 + +
      + +
      + +
      파일 #1 + + + + +
      파일 #2 + + + + +
      +
      + +
      + + 목록 +
      +
      + + +
      + \ No newline at end of file