Merge branch 'master' of github.com:gnuboard/g4s

This commit is contained in:
chicpro
2013-01-11 09:05:20 +09:00
21 changed files with 272 additions and 249 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
data
dbconfig.php
install.bak
test.php

View File

@ -1,4 +1,5 @@
<?
define('_CAPTCHA_', true);
include_once('./_common.php');
if (!$board['bo_table']) {

View File

@ -1,6 +1,11 @@
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$captcha_html = "";
if ($is_guest) {
$captcha_html = captcha_html('wr_key', '_comment');
}
@include_once($board_skin_path.'/view_comment.head.skin.php');
// 코멘트를 새창으로 여는 경우 세션값이 없으므로 생성한다.

View File

@ -1,4 +1,5 @@
<?
define('_CAPTCHA_', true);
include_once('./_common.php');
set_session('ss_bo_table', $bo_table);
@ -204,6 +205,11 @@ if ($board['bo_use_dhtml_editor'] && $member['mb_level'] >= $board['bo_html_leve
$is_dhtml_editor = false;
}
$captcha_html = "";
if ($is_guest) {
$captcha_html = captcha_html('wr_key');
}
$is_mail = false;
if ($config['cf_email_use'] && $board['bo_use_email'])
$is_mail = true;
@ -247,6 +253,8 @@ if ($board['bo_use_file_content']) {
$is_file_content = true;
}
$file_count = (int)$board['bo_upload_count'];
$name = "";
$email = "";
$homepage = "";
@ -350,34 +358,6 @@ if ($is_admin) {
include_once($g4['path'].'/head.sub.php');
include_once('./board_head.php');
//--------------------------------------------------------------------------
// 가변 파일
$file_script = '';
$file_length = -1;
// 수정의 경우 파일업로드 필드가 가변적으로 늘어나야 하고 삭제 표시도 해주어야 합니다.
if ($w == 'u') {
for ($i=0; $i<$file['count']; $i++) {
$row = sql_fetch(" select bf_file, bf_content from {$g4['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and bf_no = '{$i}' ");
if ($row['bf_file']) {
$file_script .= 'add_file("<input type="checkbox" name="bf_file_del['.$i.']" value="1"><a href="'.$file[$i]['href'].'">'.$file[$i]['source'].'('.$file[$i]['size'].')</a> 파일 삭제';
if ($is_file_content)
//$file_script .= '<br><input type="text" class="ed" size="50" name="bf_content['.$i.']" value="'.$row['bf_content'].'" title="업로드 이미지 파일에 해당 되는 내용을 입력하세요.">';
// 첨부파일설명에서 ' 또는 " 입력되면 오류나는 부분 수정
$file_script .= '<br><input type="text" class="ed" size="50" name="bf_content['.$i.']" value="'.addslashes(get_text($row['bf_content'])).'" title="업로드 이미지 파일에 해당 되는 내용을 입력하세요.">';
$file_script .= '\");'.PHP_EOL;
}
else
$file_script .= 'add_file("");'.PHP_EOL;
}
$file_length = $file['count'] - 1;
}
if ($file_length < 0) {
$file_script .= 'add_file("");'.PHP_EOL;
$file_length = 0;
}
//--------------------------------------------------------------------------
if ($g4['https_url'])
$action_url = "{$g4['https_url']}/{$g4['bbs']}/write_update.php";
else

View File

@ -1,4 +1,5 @@
<?
define('_CAPTCHA_', true);
include_once('./_common.php');
$g4['title'] = '게시글 저장';
@ -150,7 +151,7 @@ if ($w == '' || $w == 'u') {
alert('w 값이 제대로 넘어오지 않았습니다.');
}
if (!chk_captcha()) {
if (!chk_captcha('wr_key')) {
alert('자동등록방지의 답변으로 입력한 숫자가 틀렸습니다.');
}

View File

@ -148,7 +148,10 @@ td {padding:10px}
.visit_bar span {position:absolute;top:-8px;left:0;height:15px;background:#ddd}
/* pagination */
.pg {margin-bottom:30px;font-size:0.875em;text-align:center}
.pg_page, .pg_current {display:inline-block;position:relative;margin-left:-6px;padding:0 10px;height:25px;border:1px solid #ddd;background:#fff;line-height:1.9em;vertical-align:middle}
.pg_page {text-decoration:none}
.pg_current {font-weight:normal}
.pg {clear:both;margin:0 0 10px;padding-top:20px;font-size:0.75em;text-align:center}
.pg_wrap {display:inline-block;border:1px solid #c7cfd5;letter-spacing:-4px}
.pg_page, .pg_current {display:inline-block;padding:0 12px;height:30px;background:#fff;color:#000;letter-spacing:0;line-height:2.6em;vertical-align:middle}
.pg_page {background:#f9f9f9;text-decoration:none}
.pg_start, .pg_prev {border-right:1px solid #c7cfd5}
.pg_end, .pg_next {border-left:1px solid #c7cfd5}
.pg_current {background:#595959;color:#fff}

View File

@ -2,7 +2,7 @@
/* 초기화 */
html {overflow-y:scroll}
body {background:#fff;font-size:1em}
body {margin:0;padding:0;background:#fff;font-size:1em}
html, body, h1, h2, h3, h4, h5, h6 {margin:0 0 0;padding:0}
h1, h2, h3, h4, h5, h6 {font-family:"verdana","dotum"}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display:block}
@ -13,13 +13,20 @@ input {margin:0;padding:0;font-family:"verdana","dotum"}
p {margin:5px 0;padding:10px 0;line-height:1.5em}
hr {display:none}
/* 웹접근성 스킬 */
.sound_only {display:inline-block;margin:0;padding:0;width:0;height:0;border:0;overflow:hidden}
/* 자동등록방지 */
.captcha {display:inline-block;vertical-align:middle}
.captcha label {display:inline-block;margin:0;padding:0;width:0;height:0;overflow:hidden}
#captcha_iframe {display:inline-block;margin:0;padding:0;width:80px;height:25px;border:0;vertical-align:middle;overflow:hidden}
/* 기본테이블 */
table {margin-bottom:20px;width:100%;border-collapse:collapse;border-spacing:0}
tfoot td {background:#f9f9f5;font-weight:bold;text-align:center}
caption {padding:0 0 10px;text-align:left}
.caption_desc {font-size:0.75em}
th {padding:12px 0 8px;border-top:3px solid #666;border-bottom:1px solid #a9a9a9;font-size:0.8em}
th a {color:#000;text-decoration:none}
th {padding:12px 0 8px;border-top:3px solid #666;border-bottom:1px solid #a9a9a9;font-size:0.75em}
th input {vertical-align:top} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */
td {padding:10px 0;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;font-size:0.75em}
.empty_table {padding:50px 0;text-align:center}
@ -35,12 +42,12 @@ fieldset select {padding:2px;border:1px solid #ddd;background:#f9f9f5;vertical-a
fieldset p {margin:0}
fieldset .span_highlight {color:#ff3061}
fieldset button,
.fieldset_submit {padding:0 15px;height:24px;border:0;background:#555;color:#fff;font-size:0.8em;line-height:1.9em;vertical-align:middle;cursor:pointer}
.fieldset_submit {padding:0 15px;height:24px;border:0;background:#555;color:#fff;font-size:0.75em;line-height:1.9em;vertical-align:middle;cursor:pointer}
fieldset button:focus,
.fieldset_submit:focus {padding:0 15px;height:24px;border:0;background:#555;color:#fff;font-size:0.8em;line-height:1.9em;vertical-align:middle}
.fieldset_submit:focus {padding:0 15px;height:24px;border:0;background:#555;color:#fff;font-size:0.75em;line-height:1.9em;vertical-align:middle}
/* 이미지 등비율 리사이징 */
.img_fix {float:left;width:100%;height:auto}
.img_fix {float:left;margin-bottom:20px;width:100%;height:auto}
/* 그누보드4s 설치 완료 메세지 */
#install_done {position:absolute;margin-top:-30px;width:100%;height:580px;background:#e7ebee}
@ -50,17 +57,16 @@ fieldset button:focus,
#install_done div span {position:absolute;top:-28px;left:0;width:700px;height:580px;background:url("../img/install_done.jpg")}
/* 내용 건너뛰기 */
#to_content a {display:block;position:absolute;top:0;left:0;height:0;text-decoration:none;overflow:hidden}
#to_content a {display:block;position:absolute;top:0;left:0;height:0;overflow:hidden}
#to_content a:focus,
#to_content a:active {padding:10px 0;width:100%;height:auto;background:#333;color:#fff;text-align:center;overflow:auto}
/* 헤딩 */
h1 {margin:0 0 30px;font-size:1.6em}
h2 {margin:0 0 20px}
h3 {margin:0 0 20px}
h4 {margin:0 0 20px}
h5 {margin:0 0 20px}
h6 {margin:0 0 20px}
h1 {margin:0 0 20px;font-size:1.6em}
h2, h3, h4, h5, h6 {margin:0 0 20px}
/* 하이퍼링크 */
a {color:#000;text-decoration:none}
/* 레이아웃 - 상단 */
#header {z-index:3;position:relative}
@ -74,12 +80,12 @@ h6 {margin:0 0 20px}
#tnb {padding-left:30px;border-bottom:1px solid #ccc;background:#ebebe9;zoom:1}
#tnb:after {display:block;visibility:hidden;clear:both;content:""}
#tnb li {float:left;margin-left:-1px}
#tnb a {display:block;padding:0 20px;height:35px;border-right:1px solid #ddd;border-left:1px solid #ddd;color:#595959;font-family:"dotum";font-size:0.8em;font-weight:bold;text-decoration:none;line-height:3em}
#tnb a {display:inline-block;padding:0 20px;height:35px;border-right:1px solid #ddd;border-left:1px solid #ddd;color:#595959;font-family:"dotum";font-size:0.75em;font-weight:bold;text-decoration:none;line-height:3em}
#tnb a:hover,
#tnb a:focus {background:#f9f9f5}
/* 전체검색 */
#hdsch {position:absolute;top:77px;right:0;margin:0;padding:0;width:219px;border:1px solid #ccc;border-top:0;border-right:0;background:#fff}
#hdsch {z-index:3;position:absolute;top:77px;right:0;margin:0;padding:0;width:219px;border:1px solid #ccc;border-top:0;border-right:0;background:#fff}
#hdsch legend {position:absolute;padding:0;width:0;height:0;border:0;overflow:hidden}
#hdsch_stx {margin:5px 0 5px 5px;padding:0 5px;height:25px;width:176px;border:0;background:transparent;font-size:1em;line-height:1.4em}
#hdsch_stx:focus {background:#464649;color:#fff}
@ -106,16 +112,16 @@ h6 {margin:0 0 20px}
#ol_before ul {position:relative;top:0;left:112px;margin:10px 0;width:90px;zoom:1}
#ol_before ul:after {display:block;visibility:hidden;clear:both;content:""}
#ol_before li {float:left;margin-right:5px}
#ol_before a {color:#696969;text-decoration:none;letter-spacing:-0.1em}
#ol_before a {color:#696969;letter-spacing:-0.1em}
#ol_submit {position:absolute;top:42px;right:12px;width:60px;height:24px;border:1px solid #b7b7b7;background:#fff;font-size:1em;font-weight:bold;letter-spacing:-0.1em;line-height:2em}
/* 로그인 후 */
#ol_after {padding-top:15px;width:219px;background:#f9f9f5;color:#000;font-size:0.75em}
#ol_after header {padding:0 0 13px;border-bottom:1px solid #dedace;text-align:center}
#ol_after ul {padding:5px 0;background:#fff}
#ol_after li a {display:block;position:relative;padding:7px 20px 7px 19px;color:#000;text-decoration:none}
#ol_after li a {display:block;position:relative;padding:7px 20px 7px 19px}
#ol_after li span {position:absolute;top:7px;right:19px;color:#ff3061}
#ol_after footer {padding:7px 0 10px;border-top:1px solid #dedace;text-align:center}
#ol_after footer a {display:inline-block;padding:0 10px;color:#000;text-decoration:none}
#ol_after footer a {display:inline-block;padding:0 10px}
/* 설문조사 */
#poll {width:219px;border-bottom:1px solid #dedace;border-left:1px solid #ddd;background:#fff;font-size:0.75em}
@ -125,8 +131,8 @@ h6 {margin:0 0 20px}
#poll ul {margin:10px}
#poll li {margin:7px 0}
#poll footer {padding:10px;border-top:1px solid #efeada;text-align:center}
#poll footer input {padding:0 15px;height:24px;border:0;background:#555;color:#fff;font-size:0.9em;letter-spacing:-0.1em;vertical-align:top}
#poll footer a {display:inline-block;padding:0 5px;height:22px;border:1px solid #b7b7b7;background:#fff;color:#000;font-size:0.9em;vertical-align:top;text-decoration:none;letter-spacing:-0.1em;line-height:2.1em}
#poll footer input {padding:0 15px;height:24px;border:0;background:#ff3061;color:#fff;font-size:0.9em;letter-spacing:-0.1em;vertical-align:top}
#poll footer a {display:inline-block;padding:0 5px;height:22px;border:1px solid #b7b7b7;background:#fff;font-size:0.9em;vertical-align:top;letter-spacing:-0.1em;line-height:2.1em}
/* 설문조사 결과 (새창) */
#poll_result section {margin:0 auto 20px;padding:10px;width:90%}
#poll_result h2 {margin-top:10px;font-size:1em}
@ -139,7 +145,7 @@ h6 {margin:0 0 20px}
#poll_result_list p {position:relative;margin-bottom:0}
#poll_result_list p span {position:absolute;top:5px;right:5%}
.poll_result_graph {position:relative;margin-right:5%;height:10px;background:#ddd}
.poll_result_graph span {position:absolute;top:0;left:0;height:100%;background:#ff7200}
.poll_result_graph span {position:absolute;top:0;left:0;height:100%;background:#ff3061}
#poll_result_cmt {border:1px solid #ddd;background:#f7f7f7}
#poll_result_cmt h2 {text-align:center}
#poll_result_cmt article {margin-bottom:15px;border-bottom:1px solid #e7e7e7}
@ -153,7 +159,7 @@ h6 {margin:0 0 20px}
#poll_result_another a {display:block;padding:5px 0}
/* 레이아웃 중간 */
#wrapper {z-index:2;clear:both;position:relative;margin:-2px 0 0 0;padding:1px 250px 30px 30px;min-height:520px;height:auto !important;height:520px;background:url("../img/wrapper_bg.jpg") top right repeat-y}
#wrapper {z-index:2;clear:both;position:relative;margin:-2px 0 0 0;padding:15px 250px 30px 30px;min-height:520px;height:auto !important;height:520px;background:url("../img/wrapper_bg.jpg") top right repeat-y}
#wrapper h1 {margin-top:30px}
/* 레이아웃 하단 */
@ -161,7 +167,7 @@ h6 {margin:0 0 20px}
#footer h1 {margin:0;height:0;overflow:hidden}
#footer section {margin-left:30px}
#footer h2 {margin:0;width:100px;color:#000;font-size:1em}
#footer a {color:#595959;text-decoration:none}
#footer a {color:#595959}
/* 방문자집계 */
#visit {margin-bottom:10px;zoom:1}
@ -191,38 +197,38 @@ h6 {margin:0 0 20px}
/* ##################################################################### 스킨 및 컨텐츠 */
/* 버튼 */
.btn01 {display:inline-block;padding:0 10px;height:25px;border:1px solid #ff5e1c;background:#ff7200;color:#fff;font-size:0.8em;text-decoration:none;line-height:2.2em}
.btn01 {display:inline-block;padding:0 10px;height:24px;border:1px solid #ff5e1c;background:#ff3061;color:#fff;font-size:0.75em;text-decoration:none;line-height:2.2em}
.btn01:hover,
.btn01:focus {}
.btn02 {display:inline-block;padding:0 10px;height:25px;border:1px solid #ccc;background:#fafafa;color:#000;font-size:0.8em;text-decoration:none;line-height:2.2em}
.btn02 {display:inline-block;padding:0 10px;height:24px;border:1px solid #ccc;background:#fafafa;color:#000;font-size:0.75em;text-decoration:none;line-height:2.2em}
.btn02:hover,
.btn02:focus {}
.btn03 {display:inline-block;padding:0 10px;height:25px;border:1px solid #555;background:#555;color:#fff;font-size:0.8em;text-decoration:none;line-height:2.2em}
.btn03 {display:inline-block;padding:0 10px;height:24px;border:1px solid #555;background:#555;color:#fff;font-size:0.75em;text-decoration:none;line-height:2.2em}
.btn02:hover,
.btn02:focus {}
/* 폼 테이블 */
.frm_tbl {}
.frm_tbl caption {padding-top:10px;border-bottom:1px solid #aaa;font-weight:bold}
.frm_tbl th {width:170px;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;text-align:left}
.frm_tbl caption {padding-top:10px;border-bottom:1px solid #aaa;font-size:0.75em;font-weight:bold}
.frm_tbl th {padding-left:10px;width:160px;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;background:#f9f9f9;text-align:left}
.frm_tbl td {padding:7px 10px}
.frm_tbl textarea,
.frm_tbl .frm_input,
.frm_tbl select {border:1px solid #d7d7d7;background:#f6f9fa;vertical-align:middle}
.frm_tbl textarea,
.frm_tbl .frm_input {padding:3px;background:#f5f5f2}
.frm_tbl .frm_input {padding:2px;background:#f5f5f2}
.frm_tbl textarea:focus,
.frm_tbl .frm_input:focus {padding:4px;border:0;background:#555;color:#fff}
.frm_tbl .frm_input:focus {padding:3px;border:0;background:#555;color:#fff}
.frm_tbl textarea {width:90%}
.frm_tbl select {padding:2px}
.frm_file {display:block;margin-bottom:5px}
.frm_info {display:block;padding:10px 0 0;color:#595959;line-height:1.3em}
.frm_info {display:block;padding:5px 0 0;color:#595959;line-height:1.3em}
.readonly {background:#ff3061}
/* 최신글 */
.latest {clear:both;position:relative;margin-bottom:30px;padding:0 0 20px;border-bottom:1px solid #ccc;font-size:0.8em}
.latest {clear:both;position:relative;margin-bottom:30px;padding:0 0 20px;border-bottom:1px solid #ccc;font-size:0.75em}
.latest strong {display:block;margin-bottom:15px;padding:0 10px 10px;border-bottom:1px solid #eee;font-size:1.1em}
.latest strong a {color:#000;text-decoration:none}
.latest ul {margin:0;padding:0;list-style:none}
.latest li {padding:0 10px}
.latest li a {display:inline-block;padding:4px 0}
@ -263,24 +269,24 @@ h6 {margin:0 0 20px}
/* 게시판 목록 */
#btn_bo_adm {text-align:center}
#btn_bo_adm a {display:inline-block;margin-bottom:20px;padding:10px 20px;text-align:center}
.btn_bo {margin-bottom:10px;zoom:1}
.btn_bo:after {display:block;visibility:hidden;clear:both;content:""}
.btn_bo ul {margin:0;padding:0;list-style:none}
.btn_bo_user {float:right}
.bo_link {margin-bottom:5px;zoom:1}
.bo_link:after {display:block;visibility:hidden;clear:both;content:""}
.bo_link ul {margin:0;padding:0;list-style:none}
#bo_cate {float:left;margin-bottom:10px;font-size:0.75em}
#bo_cate form {display:inline-block}
#bo_cate select {margin-right:5px;padding:4px;border:1px solid #ddd;background:#f9f9f5;font-size:1em;vertical-align:middle}
.btn_bo_user {float:right;margin:0;padding:0;list-style:none}
.btn_bo_user li {float:left;margin-left:5px}
.btn_bo_user a {display:block}
.btn_bo_adm {float:left}
.btn_bo_adm li {float:left;margin-right:5px}
.btn_bo_adm a {display:block}
#bo_sch {float:left;padding:0;margin:0;border:0}
#bo_sch {text-align:center}
#bo_sch legend {margin:0;padding:0;width:0;height:0;border:0;overflow:hidden}
#bo_sch form {display:inline-block}
#bo_sch .fieldset_submit {border:1px solid #ccc;background:#fafafa;color:#000}
#bo_cate {margin-bottom:10px}
#fcategory {display:inline-block}
#fcategory select {margin-right:5px;padding:2px;border:1px solid #ddd;background:#f9f9f5;vertical-align:middle}
#bo_list caption {padding:0;height:0;overflow:hidden}
.bo_cate_link {display:inline-block;margin-right:10px;color:#ff7200;font-weight:bold;text-decoration:none}
#bo_list caption {padding:0;height:0;color:transparent;overflow:hidden} /* ff에서 감추기 위해 color:transparent 사용 */
#bo_list td {line-height:1em}
#bo_list img {vertical-align:top}
.bo_cate_link {display:inline-block;margin:0 10px 0 0;font-weight:bold;text-decoration:none}
.td_subject img {margin-left:5px}
/* 게시판 쓰기 */
@ -300,27 +306,25 @@ h6 {margin:0 0 20px}
#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 {padding:0;list-style:none}
#bo_v_my {float:left}
#bo_v_my li {float:left;margin-right:5px}
.bo_v_com {float:right}
.bo_v_com li {float:left;margin-left:5px}
#bo_v_article {zoom:1}
#bo_v_article:after {display:block;visibility:hidden;clear:both;content:""}
#bo_v_article h1 {margin:0;padding:0;height:0;overflow:hidden}
#bo_v_article p {padding:0}
#bo_v_file {border-bottom:1px solid #666;background:#555;font-size:0.75em}
#bo_v_atc {padding:0 10px;zoom:1}
#bo_v_atc:after {display:block;visibility:hidden;clear:both;content:""}
#bo_v_atc h1 {margin:0;padding:0;height:0;overflow:hidden}
#bo_v_atc p {padding:0 0 10px;font-size:0.875em}
#bo_v_file {background:#555;font-size:0.75em}
#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 a {display:inline-block;margin-top:5px;padding:5px 10px;color:#fff}
.bo_v_file_cnt {display:inline-block;margin-left:10px;color:#ddd}
#bo_v_link {border-bottom:1px solid #666;background:#555;font-size:0.75em}
#bo_v_link {background:#555;font-size:0.75em}
#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 a {display:inline-block;margin-top:5px;padding:5px 10px;color:#fff}
.bo_v_link_cnt {display:inline-block;margin-left:10px;color:#ddd}
#bo_v_act {margin:20px 0;text-align:center}
#bo_v_act a {margin-right:5px;vertical-align:top}
#bo_v_act strong {color:#ff7200}
#bo_v_act strong {color:#ff3061}
#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}
@ -338,26 +342,35 @@ h6 {margin:0 0 20px}
.bo_vc_info:after {display:block;visibility:hidden;clear:both;content:""}
.bo_vc_info dt {float:left}
.bo_vc_info dd {float:left;margin:0 15px 0 10px}
#bo_vc p {padding:0}
#bo_vc p {padding:0;font-size:0.75em}
#bo_vc fieldset {margin:0;padding:5px 0 0;border:0;border-top:1px solid #ddd;background:transparent;font-size:0.75em}
#bo_vc .captcha {padding:0;border:0;font-size:1em !important}
#bo_vc .captcha a {display:inline-block;margin-right:5px;text-decoration:underline}
#bo_vc .fieldset_input {margin-right:5px;vertical-align:top}
#bo_vc footer {zoom:1}
#bo_vc footer:after {display:block;visibility:hidden;clear:both;content:""}
.bo_vc_act {float:right;font-size:0.75em;list-style:none;zoom:1}
.bo_vc_act {float:right;margin:0;font-size:0.75em;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_act a {color:#000;text-decoration:none}
#bo_vc_w {position:relative;margin-top:10px;zoom:1}
#bo_vc_w:after {display:block;visibility:hidden;clear:both;content:""}
#bo_vc_w fieldset {margin:0;padding:0;border:0;background:transparent}
#bo_vc_w textarea {margin:10px 0;width:98%;height:50px}
#bo_vc_w .fieldset_submit {float:right;margin:0 2% 0 0}
#bo_vc_w #char_cnt {position:absolute;top:0;right:0}
#bo_vc_w fieldset {margin:0;padding:0 0 0 10px;border:0;background:transparent;font-size:0.75em}
#bo_vc_w #char_cnt {position:absolute;top:5px;right:10px}
/* 댓글 CAPTCHA */
#bo_vc_w #captcha_comment {font-size:1em !important}
#bo_vc_warea {position:relative;margin:10px 100px 10px 0}
#bo_vc_warea textarea {width:100%;height:50px}
#bo_vc_warea .bo_vc_submit {position:absolute;top:0;right:-90px !important;right:10px;width:75px;height:57px;border:1px solid #666;background:#555;color:#fff;letter-spacing:-0.1em}
#bo_sch {display:hidden;visibility:hidden;height:0;overflow:hidden}
/* 우편번호 검색 */
#post_num dl {margin:0 auto 10px;padding:0;width:90%}
#post_num dt {margin-bottom:15px}
#post_num dd {margin:0;padding:0}
#post_num ul {margin:0;padding:0;list-style:none}
#post_num li a {display:block;padding:5px 0;font-size:0.8em}
#post_num li a {display:block;padding:5px 0;font-size:0.75em}
#post_num p {margin:0 auto 30px;width:90%}
/* 회원가입 약관 */
@ -381,16 +394,15 @@ h6 {margin:0 0 20px}
/* 새창 공통 */
.new_win h1 {padding:10px 30px;background:#393936;color:#fff;font-size:1.2em}
.new_win h1 a {color:#fff;text-decoration:none}
.new_win h1 a {color:#fff}
.new_win article h1 {background:transparent;color:#000}
.new_win article h1 a {color:#000;text-decoration:none}
.new_win h2 {font-size:1em}
.new_win table {margin:0 auto 30px;width:90%}
.new_win fieldset {margin:0 auto 30px;width:90%}
.new_win_ul {margin:-30px 0 20px 0;padding:0 0 0 30px;border-bottom:1px solid #ddd;background:#fff;font-size:0.8em;list-style:none;zoom:1}
.new_win_ul {margin:-30px 0 20px 0;padding:0 0 0 30px;border-bottom:1px solid #ddd;background:#fff;font-size:0.75em;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;border-right:1px solid #eee;border-left:1px solid #eee;color:#595959;font-family:"dotum";font-size:0.875em;font-weight:bold;text-decoration:none}
.new_win_ul a {display:block;padding:10px;border-right:1px solid #eee;border-left:1px solid #eee;color:#595959;font-family:"dotum";font-size:0.875em;font-weight:bold}
.new_win_ul a:hover,
.new_win_ul a:focus {background:#faf9f5}
@ -411,7 +423,7 @@ h6 {margin:0 0 20px}
/* 자기소개 */
#profile table {margin-bottom:15px}
#profile section {margin:0 auto 20px;width:90%;border-bottom:1px solid #d9d9d9}
#profile h2 {margin:0;font-size:0.8em;font-family:"gulim"}
#profile h2 {margin:0;font-size:0.75em;font-family:"gulim"}
#profile p {font-size:0.75em}
/* 쪽지 읽기 */
@ -423,6 +435,9 @@ h6 {margin:0 0 20px}
/* pagination */
.pg {clear:both;margin:0 0 10px;padding-top:20px;font-size:0.75em;text-align:center}
.pg_page, .pg_current {display:inline-block;position:relative;margin-left:-6px;padding:0 12px;height:30px;border:1px solid #ddd;background:#fff;color:#000;line-height:2.6em;vertical-align:middle}
.pg_page {text-decoration:none}
.pg_wrap {display:inline-block;border:1px solid #ddd;letter-spacing:-4px}
.pg_page, .pg_current {display:inline-block;padding:0 12px;height:30px;background:#fff;color:#000;letter-spacing:0;line-height:2.6em;vertical-align:middle}
.pg_page {background:#f9f9f9;text-decoration:none}
.pg_start, .pg_prev {border-right:1px solid #ddd}
.pg_end, .pg_next {border-left:1px solid #ddd}
.pg_current {background:#595959;color:#fff}

View File

@ -8,5 +8,7 @@ if (defined('_CAPTCHA_')) {
);
include_once($captcha->lib);
} else {
unset($_SESSION['ss_captcha_use']);
}
?>

View File

@ -58,6 +58,7 @@ header("Pragma: no-cache"); // HTTP/1.0
// 자바스크립트에서 사용하는 전역변수 선언
var g4_path = "<?=$g4['path']?>";
var g4_bbs = "<?=$g4['bbs']?>";
var g4_bbs_path = "<?=$g4['bbs_path']?>";
var g4_bbs_img = "<?=$g4['bbs_img']?>";
var g4_url = "<?=$g4['url']?>";
var g4_is_member = "<?=isset($is_member)?$is_member:'';?>";

View File

@ -19,8 +19,9 @@ function get_microtime()
function get_paging($write_pages, $cur_page, $total_page, $url, $add="")
{
$str = '';
$str .= "<span class=\"pg_wrap\">";
if ($cur_page > 1) {
$str .= '<a href="'.$url.'1'.$add.'" class="pg_page">처음</a>'.PHP_EOL;
$str .= '<a href="'.$url.'1'.$add.'" class="pg_page pg_start">처음</a>'.PHP_EOL;
}
$start_page = ( ( (int)( ($cur_page - 1 ) / $write_pages ) ) * $write_pages ) + 1;
@ -28,7 +29,7 @@ function get_paging($write_pages, $cur_page, $total_page, $url, $add="")
if ($end_page >= $total_page) $end_page = $total_page;
if ($start_page > 1) $str .= '<a href="'.$url.($start_page-1).$add.'" class="pg_page">이전</a>'.PHP_EOL;
if ($start_page > 1) $str .= '<a href="'.$url.($start_page-1).$add.'" class="pg_page pg_prev">이전</a>'.PHP_EOL;
if ($total_page > 1) {
for ($k=$start_page;$k<=$end_page;$k++) {
@ -39,12 +40,12 @@ function get_paging($write_pages, $cur_page, $total_page, $url, $add="")
}
}
if ($total_page > $end_page) $str .= '<a href="'.$url.($end_page+1).$add.'" class="pg_page">다음</a>'.PHP_EOL;
if ($total_page > $end_page) $str .= '<a href="'.$url.($end_page+1).$add.'" class="pg_page pg_next">다음</a>'.PHP_EOL;
if ($cur_page < $total_page) {
$str .= '<a href="'.$url.$total_page.$add.'" class="pg_page">맨끝</a>'.PHP_EOL;
$str .= '<a href="'.$url.$total_page.$add.'" class="pg_page pg_end">맨끝</a>'.PHP_EOL;
}
$str .= "";
$str .= "</span>";
return $str;
}

View File

@ -137,25 +137,24 @@ $captcha->run();
*/
// 캡챠이미지는 한개만 사용 가능함.
function get_captcha($input_name, $captcha_no)
function captcha_html($input_name, $captcha_id_suffix='')
{
global $g4;
// 세션생성을 한후 다음페이지에서 해당 세션이 있을때만 올바른 캡챠코드인지 비교합니다.
set_session('ss_captcha_use', true);
$captcha_class = str_pad($captcha_no,2,'0',STR_PAD_LEFT);// 캡챠 클래스를 선택할 수 있도록 지운아빠 2012-07-24
$code = '<fieldset id="captcha'.$captcha_class.'">';
$code .= '<legend>자동등록방지</legend>';
//$code .= '<img src="" id="captcha" alt="자동등록방지 이미지" title="이미지를 클릭하시면 숫자가 바뀝니다.">';
$code .= '<iframe id="captcha_iframe" name="captcha_iframe" src="'.$g4['path'].'/plugin/captcha/run.php" width="80" height="25" frameborder="0" scrolling="no"></iframe>';
$code .= '<a href="'.$g4['path'].'/plugin/captcha/run.php" target="captcha_iframe">새로고침</a>';
$code .= '<a href="'.$g4['path'].'/plugin/captcha/wav.php" id="captcha_wav">wav</a>';
$code .= '<label>자동등록방지 입력</label>';
$code .= '<input type="text" id="captcha_key" name="'.$input_name.'" class="captcha_box frm_input" size="10" maxlength="5" required title="자동등록방지 입력">';
$code .= '<p>이미지의 숫자를 순서대로 입력하세요. 새로고침을 클릭하시면 새로운 숫자가 나타납니다.</p>';
$code .= '</fieldset>';
return $code;
$html = '<fieldset id="captcha'.$captcha_id_suffix.'" class="captcha">';
$html .= '<legend class="sound_only">자동등록방지</legend>';
//$html .= '<img src="" id="captcha" alt="자동등록방지 이미지" title="이미지를 클릭하시면 숫자가 바뀝니다.">';
$html .= '<iframe id="captcha_iframe" name="captcha_iframe" src="'.$g4['path'].'/plugin/captcha/run.php" scrolling="no" marginwidth="0" marginheight="0" title="자동등록방지숫자"></iframe>';
$html .= '<a href="'.$g4['path'].'/plugin/captcha/run.php" target="captcha_iframe">새로고침</a>';
$html .= '<a href="'.$g4['path'].'/plugin/captcha/wav.php" id="captcha_wav">음성듣기</a>';
$html .= '<label for="captcha_key">자동등록방지 입력</label>';
$html .= '<input type="text" id="captcha_key" name="'.$input_name.'" class="captcha_box fieldset_input" size="5" maxlength="5" required title="자동등록방지 입력">';
$html .= '<p class="sound_only">이미지의 숫자를 순서대로 입력하세요. 새로고침을 클릭하시면 새로운 숫자가 나타납니다.</p>';
$html .= '</fieldset>';
return $html;
}
@ -170,4 +169,10 @@ function chk_captcha($input_name)
}
return true;
}
?>
// captcha javascript code
function captcha_js($element)
{
return "if (!check_captcha({$element})) { return false; }";
}
?>

View File

@ -844,4 +844,47 @@ l;if(!(a in m||this.typing)||!c&&!e&&(b||g)||c&&!d){var f=new i(this.editor),h=t
this.typesCount=0},fireChange:function(){this.hasUndo=!!this.getNextImage(!0);this.hasRedo=!!this.getNextImage(!1);this.resetType();this.onChange()},save:function(a,c,b){if(this.locked)return!1;var d=this.snapshots;c||(c=new i(this.editor));if(!1===c.contents||this.currentImage&&c.equals(this.currentImage,a))return!1;d.splice(this.index+1,d.length-this.index-1);d.length==this.limit&&d.shift();this.index=d.push(c)-1;this.currentImage=c;!1!==b&&this.fireChange();return!0},restoreImage:function(a){var c=
this.editor,b;a.bookmarks&&(c.focus(),b=c.getSelection());this.locked=1;this.editor.loadSnapshot(a.contents);a.bookmarks?b.selectBookmarks(a.bookmarks):CKEDITOR.env.ie&&(c=this.editor.document.getBody().$.createTextRange(),c.collapse(!0),c.select());this.locked=0;this.index=a.index;this.update();this.fireChange()},getNextImage:function(a){var c=this.snapshots,b=this.currentImage,d;if(b)if(a)for(d=this.index-1;0<=d;d--){if(a=c[d],!b.equals(a,!0))return a.index=d,a}else for(d=this.index+1;d<c.length;d++)if(a=
c[d],!b.equals(a,!0))return a.index=d,a;return null},redoable:function(){return this.enabled&&this.hasRedo},undoable:function(){return this.enabled&&this.hasUndo},undo:function(){if(this.undoable()){this.save(!0);var a=this.getNextImage(!0);if(a)return this.restoreImage(a),!0}return!1},redo:function(){if(this.redoable()&&(this.save(!0),this.redoable())){var a=this.getNextImage(!1);if(a)return this.restoreImage(a),!0}return!1},update:function(){this.locked||this.snapshots.splice(this.index,1,this.currentImage=
new i(this.editor))},lock:function(){if(!this.locked){var a=this.editor.getSnapshot();this.locked={update:this.currentImage&&a==this.currentImage.contents?a:null}}},unlock:function(){if(this.locked){var a=this.locked.update,c=this.editor.getSnapshot();this.locked=null;"string"==typeof a&&c!=a&&this.update()}}}})();CKEDITOR.config.plugins='dialogui,dialog,about,a11yhelp,dialogadvtab,basicstyles,bidi,blockquote,clipboard,button,panelbutton,panel,floatpanel,colorbutton,colordialog,templates,menu,contextmenu,div,resize,toolbar,elementspath,list,indent,enterkey,entities,popup,filebrowser,find,fakeobjects,flash,floatingspace,listblock,richcombo,font,forms,format,htmlwriter,horizontalrule,iframe,wysiwygarea,image,smiley,justify,link,liststyle,magicline,maximize,newpage,pagebreak,pastetext,pastefromword,preview,print,removeformat,save,selectall,showblocks,showborders,sourcearea,specialchar,stylescombo,tab,table,tabletools,undo';CKEDITOR.config.skin='moono';(function() {var icons = ( 'about,0,bold,32,italic,64,strike,96,subscript,128,superscript,160,underline,192,bidiltr,224,bidirtl,256,blockquote,288,copy-rtl,320,copy,352,cut-rtl,384,cut,416,paste-rtl,448,paste,480,bgcolor,512,textcolor,544,templates-rtl,576,templates,608,creatediv,640,bulletedlist-rtl,672,bulletedlist,704,numberedlist-rtl,736,numberedlist,768,indent-rtl,800,indent,832,outdent-rtl,864,outdent,896,find-rtl,928,find,960,replace,992,flash,1024,button,1056,checkbox,1088,form,1120,hiddenfield,1152,imagebutton,1184,radio,1216,select-rtl,1248,select,1280,textarea-rtl,1312,textarea,1344,textfield-rtl,1376,textfield,1408,horizontalrule,1440,iframe,1472,image,1504,smiley,1536,justifyblock,1568,justifycenter,1600,justifyleft,1632,justifyright,1664,anchor-rtl,1696,anchor,1728,link,1760,unlink,1792,maximize,1824,newpage-rtl,1856,newpage,1888,pagebreak-rtl,1920,pagebreak,1952,pastetext-rtl,1984,pastetext,2016,pastefromword-rtl,2048,pastefromword,2080,preview-rtl,2112,preview,2144,print,2176,removeformat,2208,save,2240,selectall,2272,showblocks-rtl,2304,showblocks,2336,source-rtl,2368,source,2400,specialchar,2432,table,2464,redo-rtl,2496,redo,2528,undo-rtl,2560,undo,2592' ),path = CKEDITOR.getUrl( 'plugins/icons.png' ),icons = icons.split( ',' );for ( var i = 0; i < icons.length; i++ )CKEDITOR.skin.icons[ icons[ i ] ] = { path: path, offset: -icons[ ++i ] };})();CKEDITOR.lang.languages={"af":1,"ar":1,"eu":1,"bn":1,"bs":1,"bg":1,"ca":1,"zh-cn":1,"zh":1,"hr":1,"cs":1,"da":1,"nl":1,"en":1,"en-au":1,"en-ca":1,"en-gb":1,"eo":1,"et":1,"fo":1,"fi":1,"fr":1,"fr-ca":1,"gl":1,"ka":1,"de":1,"el":1,"gu":1,"he":1,"hi":1,"hu":1,"is":1,"it":1,"ja":1,"km":1,"ko":1,"ku":1,"lv":1,"lt":1,"mk":1,"ms":1,"mn":1,"no":1,"nb":1,"fa":1,"pl":1,"pt-br":1,"pt":1,"ro":1,"ru":1,"sr":1,"sr-latn":1,"sk":1,"sl":1,"es":1,"sv":1,"th":1,"tr":1,"ug":1,"uk":1,"vi":1,"cy":1};}());
new i(this.editor))},lock:function(){if(!this.locked){var a=this.editor.getSnapshot();this.locked={update:this.currentImage&&a==this.currentImage.contents?a:null}}},unlock:function(){if(this.locked){var a=this.locked.update,c=this.editor.getSnapshot();this.locked=null;"string"==typeof a&&c!=a&&this.update()}}}})();CKEDITOR.config.plugins='dialogui,dialog,about,a11yhelp,dialogadvtab,basicstyles,bidi,blockquote,clipboard,button,panelbutton,panel,floatpanel,colorbutton,colordialog,templates,menu,contextmenu,div,resize,toolbar,elementspath,list,indent,enterkey,entities,popup,filebrowser,find,fakeobjects,flash,floatingspace,listblock,richcombo,font,forms,format,htmlwriter,horizontalrule,iframe,wysiwygarea,image,smiley,justify,link,liststyle,magicline,maximize,newpage,pagebreak,pastetext,pastefromword,preview,print,removeformat,save,selectall,showblocks,showborders,sourcearea,specialchar,stylescombo,tab,table,tabletools,undo';CKEDITOR.config.skin='moono';(function() {var icons = ( 'about,0,bold,32,italic,64,strike,96,subscript,128,superscript,160,underline,192,bidiltr,224,bidirtl,256,blockquote,288,copy-rtl,320,copy,352,cut-rtl,384,cut,416,paste-rtl,448,paste,480,bgcolor,512,textcolor,544,templates-rtl,576,templates,608,creatediv,640,bulletedlist-rtl,672,bulletedlist,704,numberedlist-rtl,736,numberedlist,768,indent-rtl,800,indent,832,outdent-rtl,864,outdent,896,find-rtl,928,find,960,replace,992,flash,1024,button,1056,checkbox,1088,form,1120,hiddenfield,1152,imagebutton,1184,radio,1216,select-rtl,1248,select,1280,textarea-rtl,1312,textarea,1344,textfield-rtl,1376,textfield,1408,horizontalrule,1440,iframe,1472,image,1504,smiley,1536,justifyblock,1568,justifycenter,1600,justifyleft,1632,justifyright,1664,anchor-rtl,1696,anchor,1728,link,1760,unlink,1792,maximize,1824,newpage-rtl,1856,newpage,1888,pagebreak-rtl,1920,pagebreak,1952,pastetext-rtl,1984,pastetext,2016,pastefromword-rtl,2048,pastefromword,2080,preview-rtl,2112,preview,2144,print,2176,removeformat,2208,save,2240,selectall,2272,showblocks-rtl,2304,showblocks,2336,source-rtl,2368,source,2400,specialchar,2432,table,2464,redo-rtl,2496,redo,2528,undo-rtl,2560,undo,2592' ),path = CKEDITOR.getUrl( 'plugins/icons.png' ),icons = icons.split( ',' );for ( var i = 0; i < icons.length; i++ )CKEDITOR.skin.icons[ icons[ i ] ] = { path: path, offset: -icons[ ++i ] };})();CKEDITOR.lang.languages={"af":1,"ar":1,"eu":1,"bn":1,"bs":1,"bg":1,"ca":1,"zh-cn":1,"zh":1,"hr":1,"cs":1,"da":1,"nl":1,"en":1,"en-au":1,"en-ca":1,"en-gb":1,"eo":1,"et":1,"fo":1,"fi":1,"fr":1,"fr-ca":1,"gl":1,"ka":1,"de":1,"el":1,"gu":1,"he":1,"hi":1,"hu":1,"is":1,"it":1,"ja":1,"km":1,"ko":1,"ku":1,"lv":1,"lt":1,"mk":1,"ms":1,"mn":1,"no":1,"nb":1,"fa":1,"pl":1,"pt-br":1,"pt":1,"ro":1,"ru":1,"sr":1,"sr-latn":1,"sk":1,"sl":1,"es":1,"sv":1,"th":1,"tr":1,"ug":1,"uk":1,"vi":1,"cy":1};}());
CKEDITOR.on('instanceReady', function (ev) {
// Ends self closing tags the HTML4 way, like <br>.
ev.editor.dataProcessor.htmlFilter.addRules(
{
elements:
{
$: function (element) {
// Output dimensions of images as width and height
if (element.name == 'img') {
var style = element.attributes.style;
if (style) {
// Get the width from the style.
var match = /(?:^|\s)width\s*:\s*(\d+)px/i.exec(style),
width = match && match[1];
// Get the height from the style.
match = /(?:^|\s)height\s*:\s*(\d+)px/i.exec(style);
var height = match && match[1];
if (width) {
element.attributes.style = element.attributes.style.replace(/(?:^|\s)width\s*:\s*(\d+)px;?/i, '');
element.attributes.width = width;
}
if (height) {
element.attributes.style = element.attributes.style.replace(/(?:^|\s)height\s*:\s*(\d+)px;?/i, '');
element.attributes.height = height;
}
}
}
if (!element.attributes.style)
delete element.attributes.style;
return element;
}
}
});
});

View File

@ -23,7 +23,7 @@ function editor_getdata($id)
function editor_empty($id, $textarea_name="내용을")
{
if (defined('_EDITOR_'))
return "if (!{$id}_data) { alert(\"$textarea_name 입력해 주십시오.\"); return false; }\n";
return "if (!{$id}_data) { alert(\"$textarea_name 입력해 주십시오.\"); CKEDITOR.instances.{$id}.focus(); return false; }\n";
else
return "";
}

View File

@ -11,50 +11,26 @@ if ($is_nogood) $colspan++;
<? if (!$wr_id) {?><h1><?=$g4['title']?></h1><?}?>
<? if ($admin_href) { ?><div id="btn_bo_adm"><a href="<?=$admin_href?>">게시판 관리자 바로가기</a></div><?}?>
<? if ($admin_href) { ?><div id="btn_bo_adm"></div><?}?>
<div id="bo_cate">
<? if ($is_category) { ?>
<form id="fcategory" name="fcategory" method="get">
<select name="sca" onchange="location='<?=$category_location?>'+<?=strtolower($g4['charset'])=='utf-8' ? "encodeURIComponent(this.value)" : "this.value"?>;">
<option value=''>전체</option>
<?=$category_option?>
</select>
</form>
<? } ?>
<span>Total <?=number_format($total_count)?>건</span>
<?=$page?> 페이지
</div>
<div class="btn_bo">
<fieldset id="bo_sch">
<legend>게시물 검색</legend>
<form name="fsearch" method="get">
<input type="hidden" name="bo_table" value="<?=$bo_table?>">
<input type="hidden" name="sca" value="<?=$sca?>">
<select name="sfl" title="검색대상">
<option value="wr_subject">제목</option>
<option value="wr_content">내용</option>
<option value="wr_subject||wr_content">제목+내용</option>
<option value="mb_id,1">회원아이디</option>
<option value="mb_id,0">회원아이디(코)</option>
<option value="wr_name,1">글쓴이</option>
<option value="wr_name,0">글쓴이(코)</option>
<div class="bo_link">
<div id="bo_cate">
<? if ($is_category) { ?>
<form id="fcategory" name="fcategory" method="get">
<select name="sca" onchange="location='<?=$category_location?>'+<?=strtolower($g4['charset'])=='utf-8' ? "encodeURIComponent(this.value)" : "this.value"?>;">
<option value=''>전체</option>
<?=$category_option?>
</select>
<input name="stx" class="fieldset_input required" maxlength="15" size="15" required value="<?=stripslashes($stx)?>" title="검색어">
<input type="radio" id="sop_and" name="sop" value="and">
<label for="sop_and">and</label>
<input type="radio" id="sop_or" name="sop" value="or">
<label for="sop_or">or</label>
<input type="submit" class="fieldset_submit" value="검색">
</form>
</fieldset>
<? } ?>
<span>Total <?=number_format($total_count)?>건</span>
<?=$page?> 페이지
</div>
<? if ($rss_href || $write_href) {?>
<ul class="btn_bo_user">
<? if ($rss_href) { ?><li><a href="<?=$rss_href?>" class="btn02">RSS</a></li><? } ?>
<? if ($admin_href) { ?><li><a href="<?=$admin_href?>" class="btn03">관리자</a></li><? } ?>
<? if ($write_href) { ?><li><a href="<?=$write_href?>" class="btn01">글쓰기</a></li><? } ?>
</ul>
<? } ?>
@ -136,15 +112,15 @@ for ($i=0; $i<count($list); $i++) {
</table>
</form>
<div class="btn_bo">
<div class="bo_link">
<ul class="btn_bo_adm">
<? if ($list_href) { ?>
<li><a href="<?=$list_href?>">목록</a></li>
<li><a href="<?=$list_href?>" class="btn02">목록</a></li>
<? } ?>
<? if ($is_checkbox) { ?>
<li><a href="javascript:select_delete();" class="btn03">선택삭제</a></li>
<li><a href="javascript:select_copy('copy');" class="btn03">선택복사</a></li>
<li><a href="javascript:select_copy('move');" class="btn03">선택이동</a></li>
<li><a href="javascript:select_delete();" class="btn02">선택삭제</a></li>
<li><a href="javascript:select_copy('copy');" class="btn02">선택복사</a></li>
<li><a href="javascript:select_copy('move');" class="btn02">선택이동</a></li>
<? } ?>
</ul>
@ -160,6 +136,31 @@ for ($i=0; $i<count($list); $i++) {
<? if ($next_part_href) { echo '<a href="'.$next_part_href.'">다음검색</a>'; } ?>
</div>
<fieldset id="bo_sch">
<legend>게시물 검색</legend>
<form name="fsearch" method="get">
<input type="hidden" name="bo_table" value="<?=$bo_table?>">
<input type="hidden" name="sca" value="<?=$sca?>">
<select name="sfl" title="검색대상">
<option value="wr_subject">제목</option>
<option value="wr_content">내용</option>
<option value="wr_subject||wr_content">제목+내용</option>
<option value="mb_id,1">회원아이디</option>
<option value="mb_id,0">회원아이디(코)</option>
<option value="wr_name,1">글쓴이</option>
<option value="wr_name,0">글쓴이(코)</option>
</select>
<input name="stx" class="fieldset_input required" maxlength="15" size="15" required value="<?=stripslashes($stx)?>" title="검색어">
<input type="radio" id="sop_and" name="sop" value="and">
<label for="sop_and">and</label>
<input type="radio" id="sop_or" name="sop" value="or">
<label for="sop_or">or</label>
<input type="submit" class="fieldset_submit" value="검색">
</form>
</fieldset>
<script>
if ('<?=$sca?>') document.fcategory.sca.value = '<?=$sca?>';
if ('<?=$stx?>') {

View File

@ -15,7 +15,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
<dd><?=($category_name ? "{$view['ca_name']} " : "");?></dd>
<? } ?>
<dt>작성자</dt>
<dd><?=$view['name']?><? if ($is_ip_view) { echo "&nbsp;($ip)"; } ?></dd>
<dd><div><?=$view['name']?><? if ($is_ip_view) { echo "&nbsp;($ip)"; } ?></div></dd>
<dt>작성일</dt>
<dd><?=date("y-m-d H:i", strtotime($view['wr_datetime']))?></dd>
<dt>조회</dt>
@ -25,7 +25,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
</dl>
</section>
<? if ($view['file'][$i]) {?>
<? if (!empty($view['file'])) {?>
<section id="bo_v_file">
<h2>첨부파일</h2>
<ul>
@ -51,7 +51,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
</section>
<? } ?>
<? if ($view['link'][$i]) {?>
<? if (!empty($view['link'])) {?>
<section id="bo_v_link">
<h2>관련링크</h2>
<ul>
@ -79,18 +79,12 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
<aside id="bo_v_top">
<h2>게시물 상단 링크</h2>
<!-- 링크 버튼 -->
<? if ($update_href || $delete_href) {?>
<ul id="bo_v_my">
<? if ($update_href) { ?><li><a href="<?=$update_href?>" class="btn02">수정</a></li><? } ?>
<? if ($delete_href) { ?><li><a href="<?=$delete_href?>" class="btn02">삭제</a></li><? } ?>
</ul>
<? } ?>
<?
ob_start();
?>
<ul class="bo_v_com">
<? if ($update_href) { ?><li><a href="<?=$update_href?>" class="btn02">수정</a></li><? } ?>
<? if ($delete_href) { ?><li><a href="<?=$delete_href?>" class="btn02">삭제</a></li><? } ?>
<? if ($copy_href) { ?><li><a href="<?=$copy_href?>" class="btn03">복사</a></li><? } ?>
<? if ($move_href) { ?><li><a href="<?=$move_href?>" class="btn03">이동</a></li><? } ?>
<? if ($search_href) { ?><li><a href="<?=$search_href?>" class="btn02">검색</a></li><? } ?>
@ -104,7 +98,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
</aside>
<article id="bo_v_article">
<article id="bo_v_atc">
<header>
<h1>본문</h1>
</header>
@ -166,10 +160,10 @@ function file_download(link, file) {
<script>
// 이미지 등비율 리사이징
$(document).ready(function(){
var img = $('article img');
var img = $('#bo_v_atc img');
var img_org_width = img.width();
$(window).resize(function(){
var wrapper_width = $('#wrapper').width();
var wrapper_width = $('#bo_v_atc').width();
img.each(function() {
var img_width = $(this).width();
if (img_width > wrapper_width) {

View File

@ -73,18 +73,19 @@ var char_max = parseInt(<?=$comment_max?>); // 최대
<h2>댓글쓰기</h2>
<fieldset>
<? if ($is_guest) { ?>
<label for="wr_name">이름</label> <input type="text" id="wr_name" name="wr_name" class="fieldset_input" maxLength="20" size="10" required>
<label for="wr_password">패스워드</label> <input type="password" id="wr_password" name="wr_password" class="fieldset_input" maxLength="20" size="10" required>
<img id="kcaptcha_image" alt="" />
<input type="text" name="wr_key" class="fieldset_input" title="왼쪽의 글자를 입력하세요." size="10" required>
<label for="wr_name">이름</label> <input type="text" id="wr_name" name="wr_name" class="fieldset_input required" maxLength="20" size="5" required>
<label for="wr_password">패스워드</label> <input type="password" id="wr_password" name="wr_password" class="fieldset_input required" maxLength="20" size="10" required>
<? echo $captcha_html; ?>
<? } ?>
<input type="checkbox" id="wr_secret" name="wr_secret" value="secret">
<label for="wr_secret">비밀글</label>
<? if ($comment_min || $comment_max) { ?><strong id="char_cnt"><span id="char_count"></span>글자</strong><?}?>
<textarea id="wr_content" name="wr_content" required
<? if ($comment_min || $comment_max) { ?>onkeyup="check_byte('wr_content', 'char_count');"<?}?>></textarea>
<? if ($comment_min || $comment_max) { ?><script> check_byte('wr_content', 'char_count'); </script><?}?>
<input type="submit" class="fieldset_submit" value="댓글입력">
<div id="bo_vc_warea">
<textarea id="wr_content" name="wr_content" required
<? if ($comment_min || $comment_max) { ?>onkeyup="check_byte('wr_content', 'char_count');"<?}?>></textarea>
<? if ($comment_min || $comment_max) { ?><script> check_byte('wr_content', 'char_count'); </script><?}?>
<input type="submit" class="bo_vc_submit" value="댓글입력">
</div>
</fieldset>
</aside>

View File

@ -106,61 +106,33 @@ if ($option) {
<tr>
<th scope="row"><label for="wr_subject">제목</label></th>
<td><input id="wr_subject" name="wr_subject" class="frm_input required" size="60" required value="<?=$subject?>" title="제목"></td>
<td><input id="wr_subject" name="wr_subject" class="frm_input required" size="50" required value="<?=$subject?>" title="제목"></td>
</tr>
<tr>
<th scope="row"><label for="wr_content">내용</label></th>
<td>
<?=editor_textarea("wr_content", $content);?>
<textarea id="wr_content" name="wr_content" class="ckeditor" rows="10" style="width:100%;"><?=$content?></textarea>
<? if ($write_min || $write_max) { ?><span id="char_count"></span>글자<?}?>
<? if ($write_min || $write_max) { ?><script> check_byte('wr_content', 'char_count'); </script><?}?>
</td>
</tr>
<? if ($is_link) { ?>
<? for ($i=1; $i<=$g4['link_count']; $i++) { ?>
<? for ($i=1; $is_link && $i<=$g4['link_count']; $i++) { ?>
<tr>
<th scope="row"><label for="wr_link<?=$i?>">링크 #<?=$i?></label></th>
<td><input type="text" id="wr_link<?=$i?>" name="wr_link<?=$i?>" class="frm_input" size="60" value="<?if($w=="u"){echo$write['wr_link'.$i];}?>"></td>
<td><input type="text" id="wr_link<?=$i?>" name="wr_link<?=$i?>" class="frm_input" size="50" value="<?if($w=="u"){echo$write['wr_link'.$i];}?>"></td>
</tr>
<? } ?>
<? } ?>
<? if ($is_file) { ?>
<? for ($i=1; $is_file && $i<=$file_count; $i++) { ?>
<tr>
<th scope="row">파일 #1</th>
<td>
<input type="file" name="bf_file[]" class="frm_input frm_file" size="50" title="파일 용량 <?=$upload_max_filesize?> 이하만 업로드 가능">
<input type="text" name="bf_content[]" class="frm_input" size="50" title="파일 설명을 입력해주세요.">
</td>
</tr>
<tr>
<th scope="row">파일 #2</th>
<td>
<input type="file" name="bf_file[]" class="frm_input frm_file" size="50" title="파일 용량 <?=$upload_max_filesize?> 이하만 업로드 가능">
<input type="text" name="bf_content[]" class="frm_input" size="50" title="파일 설명을 입력해주세요.">
</td>
</tr>
<tr>
<th scope="row">파일 #3</th>
<td>
<input type="file" name="bf_file[]" class="frm_input frm_file" size="50" title="파일 용량 <?=$upload_max_filesize?> 이하만 업로드 가능">
<input type="text" name="bf_content[]" class="frm_input" size="50" title="파일 설명을 입력해주세요.">
</td>
</tr>
<tr>
<th scope="row">파일 #4</th>
<td>
<input type="file" name="bf_file[]" class="frm_input frm_file" size="50" title="파일 용량 <?=$upload_max_filesize?> 이하만 업로드 가능">
<input type="text" name="bf_content[]" class="frm_input" size="50" title="파일 설명을 입력해주세요.">
</td>
</tr>
<tr>
<th scope="row">파일 #5</th>
<th scope="row">파일 #<?=$i?></th>
<td>
<input type="file" name="bf_file[]" class="frm_input frm_file" size="50" title="파일 용량 <?=$upload_max_filesize?> 이하만 업로드 가능">
<? if ($is_file_content) { ?>
<input type="text" name="bf_content[]" class="frm_input" size="50" title="파일 설명을 입력해주세요.">
<?}?>
</td>
</tr>
<?}?>
@ -168,9 +140,7 @@ if ($option) {
</tbody>
</table>
<?
echo run_captcha();
?>
<?=$captcha_html?>
<div class="btn_confirm">
<input type="submit" id="btn_submit" value="글쓰기" accesskey="s">
@ -253,14 +223,13 @@ function fwrite_submit(f)
}
*/
<?
echo chk_editor("wr_content");
?>
<? echo editor_getdata("wr_content"); ?>
<? echo editor_empty("wr_content"); ?>
var subject = "";
var content = "";
$.ajax({
url: bbs_path+"/filter.ajax.php",
url: g4_bbs_path+"/filter.ajax.php",
type: "POST",
data: {
"subject": f.wr_subject.value,
@ -290,9 +259,7 @@ function fwrite_submit(f)
return false;
}
<?
echo chk_js_captcha();
?>
<? if (defined('_CAPTCHA_')) echo captcha_js('f.wr_key'); ?>
return true;
}

View File

@ -8,7 +8,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
<tr>
<th scope="col">번호</th>
<th scope="col">이름</th>
<th scope="col">링크</th>
<th scope="col">위치</th>
</tr>
</thead>
<tbody>

View File

@ -41,7 +41,7 @@ var member_skin_path = "<?=$member_skin_path?>";
<tr>
<th scope="row"><label for="reg_mb_name">이름</label></th>
<td>
<input id="reg_mb_name" name="mb_name" class="frm_input hangul <?=$required?> <?=$readonly?>" value="<?=$member['mb_name']?>" <?=$required?> <?=$readonly?> title="이름">
<input id="reg_mb_name" name="mb_name" class="frm_input hangul <?=$required?> <?=$readonly?>" value="<?=$member['mb_name']?>" size="10" <?=$required?> <?=$readonly?> title="이름">
<? if ($w=='') { echo "<span class=\"frm_info\">공백없이 한글만 입력하세요.</span>"; } ?>
</td>
</tr>
@ -50,7 +50,7 @@ var member_skin_path = "<?=$member_skin_path?>";
<th scope="row"><label for="reg_mb_nick">별명</label></th>
<td>
<input type="hidden" name="mb_nick_default" value="<?=isset($member['mb_nick'])?$member['mb_nick']:'';?>">
<input type="text" id="reg_mb_nick" name="mb_nick" class="frm_input required" maxlength="20" value="<?=isset($member['mb_nick'])?$member['mb_nick']:'';?>" required title="별명">
<input type="text" id="reg_mb_nick" name="mb_nick" class="frm_input required" maxlength="20" size="10" value="<?=isset($member['mb_nick'])?$member['mb_nick']:'';?>" required title="별명">
<span id="msg_mb_nick"></span>
<span class="frm_info">
공백없이 한글,영문,숫자만 입력 가능 (한글2자, 영문4자 이상)<br>
@ -64,7 +64,7 @@ var member_skin_path = "<?=$member_skin_path?>";
<th scope="row"><label for="reg_mb_email">E-mail</label></th>
<td>
<input type="hidden" name="old_email" value="<?=$member['mb_email']?>">
<input type="text" id="reg_mb_email" name="mb_email" class="frm_input email <?=$config['cf_use_email_certify']?"required":"";?>" maxlength="100" value='<?=isset($member['mb_email'])?$member['mb_email']:'';?>' <?=$config['cf_use_email_certify']?"required":"";?> title="E-mail">
<input type="text" id="reg_mb_email" name="mb_email" class="frm_input email <?=$config['cf_use_email_certify']?"required":"";?>" maxlength="100" size="50" value='<?=isset($member['mb_email'])?$member['mb_email']:'';?>' <?=$config['cf_use_email_certify']?"required":"";?> title="E-mail">
<span id="msg_mb_email"></span>
<? if ($config['cf_use_email_certify']) { ?>
<span class="frm_info">
@ -162,7 +162,7 @@ var member_skin_path = "<?=$member_skin_path?>";
</tr>
<? } ?>
<? if (isset($member['mb_open_date']) && $member['mb_open_date'] <= date("Y-m-d", $g4['server_time'] - ($config['cf_open_modify'] * 86400))) { // 정보공개 수정일이 지났다면 수정가능 ?>
<? if (isset($member['mb_open_date']) && $member['mb_open_date'] <= date("Y-m-d", $g4['server_time'] - ($config['cf_open_modify'] * 86400)) || !$member['mb_open_date']) { // 정보공개 수정일이 지났다면 수정가능 ?>
<tr>
<th scope="row"><label for="reg_mb_open">정보공개</label></th>
<td>
@ -195,7 +195,7 @@ var member_skin_path = "<?=$member_skin_path?>";
<? } ?>
</table>
<?=get_captcha("wr_key", 1);?>
<?=$captcha_html?>
<div class="btn_confirm">
<input type="submit" value="회원가입" accesskey="s">

View File

@ -12,17 +12,17 @@ $tmp_row = sql_fetch($tmp_sql);
//sql_query(" lock table $g4['login_table'] write ", false);
if ($tmp_row['cnt']) {
$tmp_sql = " update {$g4['login_table']} set mb_id = '{$member['mb_id']}', lo_datetime = '{$g4['time_ymdhis']}', lo_location = '$lo_location', lo_url = '$lo_url' where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
sql_query($tmp_sql, FALSE);
$tmp_sql = " update {$g4['login_table']} set mb_id = '{$member['mb_id']}', lo_datetime = '{$g4['time_ymdhis']}', lo_location = '$lo_location', lo_url = '$lo_url' where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
sql_query($tmp_sql, FALSE);
} else {
$tmp_sql = " insert into {$g4['login_table']} ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '{$_SERVER['REMOTE_ADDR']}', '{$member['mb_id']}', '{$g4['time_ymdhis']}', '$lo_location', '$lo_url' ) ";
sql_query($tmp_sql, FALSE);
$tmp_sql = " insert into {$g4['login_table']} ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '{$_SERVER['REMOTE_ADDR']}', '{$member['mb_id']}', '{$g4['time_ymdhis']}', '$lo_location', '$lo_url' ) ";
sql_query($tmp_sql, FALSE);
// 시간이 지난 접속은 삭제한다
sql_query(" delete from {$g4['login_table']} where lo_datetime < '".date("Y-m-d H:i:s", $g4['server_time'] - (60 * $config['cf_login_minutes']))."' ");
// 시간이 지난 접속은 삭제한다
sql_query(" delete from {$g4['login_table']} where lo_datetime < '".date("Y-m-d H:i:s", $g4['server_time'] - (60 * $config['cf_login_minutes']))."' ");
// 부담(overhead)이 있다면 테이블 최적화
//$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g4['login_table']' ");
//if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g4['login_table'] ");
// 부담(overhead)이 있다면 테이블 최적화
//$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g4['login_table']' ");
//if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g4['login_table'] ");
}
?>

View File

@ -29,7 +29,9 @@ outline:0;
</head>
<body>
<input type="text">
<label for="text">테스트 필수</label>
<input type="text" id="text" title="테스트">
<input type="checkbox">