g4s 2013-03-21일자 코드 반영

This commit is contained in:
chicpro
2013-03-21 14:48:34 +09:00
parent 260381451e
commit 40451a9f48
87 changed files with 2093 additions and 1804 deletions

View File

@ -114,10 +114,6 @@ function imageview(id, w, h)
echo $gnb_str;
?>
</nav>
<div id="current_loc">
<p><?=$member['mb_id']?>님 현재위치</p>
</div>
</div>
</header>

View File

@ -15,6 +15,7 @@ function get_skin_select($skin_gubun, $id, $name, $selected='', $event='')
$skins = get_skin_dir($skin_gubun);
$str = "<select id=\"$id\" name=\"$name\" $event>\n";
for ($i=0; $i<count($skins); $i++) {
if ($i == 0) $str .= "<option value=\"\">선택</option>";
$str .= option_selected($skins[$i], $selected);
}
$str .= "</select>";
@ -27,6 +28,7 @@ function get_mobile_skin_select($skin_gubun, $id, $name, $selected='', $event=''
$skins = get_skin_dir($skin_gubun, G4_MOBILE_PATH.'/'.G4_SKIN_DIR);
$str = "<select id=\"$id\" name=\"$name\" $event>\n";
for ($i=0; $i<count($skins); $i++) {
if ($i == 0) $str .= "<option value=\"\">선택</option>";
$str .= option_selected($skins[$i], $selected);
}
$str .= "</select>";

View File

@ -13,7 +13,10 @@ if (!defined('_GNUBOARD_')) exit;
</div>
<footer id="ft">
<p>Copyright &copy; 소유하신 도메인. All rights reserved.</p>
<p>
Copyright &copy; 소유하신 도메인. All rights reserved.<br>
<a href="#">상단으로</a>
</p>
</footer>
<!-- <p>실행시간 : <?=get_microtime() - $begin_time;?> -->

View File

@ -41,14 +41,15 @@ include_once(G4_PATH.'/head.sub.php');
</tr>
</tbody>
</table>
</div>
<div class="btn_confirm">
<input type="submit" class="btn_submit" value="복사">
<input type="button" class="btn_cancel" value="창닫기" onclick="window.close();">
</div>
<div class="btn_confirm">
<input type="submit" class="btn_submit" value="복사">
<input type="button" class="btn_cancel" value="창닫기" onclick="window.close();">
</div>
</form>
</form>
</div>
<script>
function fboardcopy_check(f)

View File

@ -68,6 +68,7 @@ $sql = " insert into {$g4['board_table']}
bo_hot = '{$board[bo_hot]}',
bo_image_width = '{$board[bo_image_width]}',
bo_skin = '{$board['bo_skin']}',
bo_mobile_skin = '{$board['bo_mobile']}',
bo_include_head = '{$board['bo_include_head']}',
bo_include_tail = '{$board['bo_include_tail']}',
bo_content_head = '".addslashes($board['bo_content_head'])."',

View File

@ -37,7 +37,7 @@ if ($w == '') {
$html_title .= ' 생성';
$bo_table_attr = 'class="required alnum_"';
$bo_table_attr = 'required alnum_';
$sound_only = '<strong class="sound_only">필수</strong>';
$board['bo_count_delete'] = 1;
@ -48,11 +48,11 @@ if ($w == '') {
$board['bo_download_point'] = $config['cf_download_point'];
$board['bo_gallery_cols'] = 4;
$board['bo_gallery_width'] = 200;
$board['bo_gallery_height'] = 150;
$board['bo_mobile_gallery_cols'] = 2;
$board['bo_mobile_gallery_width'] = 160;
$board['bo_mobile_gallery_height'] = 120;
$board['bo_gallery_width'] = 174;
$board['bo_gallery_height'] = 124;
$board['bo_mobile_gallery_cols'] = 3;
$board['bo_mobile_gallery_width'] = 125;
$board['bo_mobile_gallery_height'] = 100;
$board['bo_table_width'] = 100;
$board['bo_page_rows'] = $config['cf_page_rows'];
$board['bo_subject_len'] = 60;
@ -127,7 +127,7 @@ $pg_anchor = "<ul class=\"anchor\">
<tr>
<th scope="row"><label for="bo_table">TABLE<?=$sound_only?></label></th>
<td colspan="2">
<input type="text" name="bo_table" value="<?=$board['bo_table'] ?>" id="bo_table" required class="required frm_input" maxlength="20" <?=$bo_table_attr?>>
<input type="text" name="bo_table" value="<?=$board['bo_table'] ?>" id="bo_table" required class="frm_input <?=$bo_table_attr?>" maxlength="20">
<? if ($w == '') { ?>
영문자, 숫자, _ 만 가능 (공백없이 20자 이내)
<? } else { ?>
@ -160,10 +160,10 @@ $pg_anchor = "<ul class=\"anchor\">
</select>
</td>
<td class="group_setting">
<input type="checkbox" name="chk_grp_use" value="1" id="chk_grp_use">
<label for="chk_grp_use">그룹적용</label>
<input type="checkbox" name="chk_all_use" value="1" id="chk_all_use">
<label for="chk_all_use">전체적용</label>
<input type="checkbox" name="chk_grp_device" value="1" id="chk_grp_device">
<label for="chk_grp_device">그룹적용</label>
<input type="checkbox" name="chk_all_device" value="1" id="chk_all_device">
<label for="chk_all_device">전체적용</label>
</td>
</tr>
<tr>
@ -530,7 +530,7 @@ $pg_anchor = "<ul class=\"anchor\">
<tr>
<th scope="row"><label for="bo_upload_count">파일 업로드 갯수<strong class="sound_only">필수</strong></label></th>
<td>
<?=help('게시물 한건당 업로드 할 수 있는 파일의 최대 개수 (0 이면 제한 없음)')?>
<?=help('게시물 한건당 업로드 할 수 있는 파일의 최대 개수 (0 은 파일첨부 사용하지 않음)')?>
<input type="text" name="bo_upload_count" value="<?=$board['bo_upload_count']?>" id="bo_upload_count" required class="required numeric frm_input" size="4">
</td>
<td class="group_setting">

View File

@ -53,7 +53,7 @@ $bo_category_list = str_replace($src_char, $dst_char, $bo_category_list);
$sql_common = " gr_id = '{$_POST['gr_id']}',
bo_subject = '{$_POST['bo_subject']}',
bo_device = '{$_POST['bo_device']}',
bo_device = '{$_POST['bo_device']}',
bo_admin = '{$_POST['bo_admin']}',
bo_list_level = '{$_POST['bo_list_level']}',
bo_read_level = '{$_POST['bo_read_level']}',
@ -109,6 +109,7 @@ $sql_common = " gr_id = '{$_POST['gr_id']}',
bo_reply_order = '{$_POST['bo_reply_order']}',
bo_use_search = '{$_POST['bo_use_search']}',
bo_order = '{$_POST['bo_order']}',
bo_show_menu = '{$_POST['bo_show_menu']}',
bo_write_min = '{$_POST['bo_write_min']}',
bo_write_max = '{$_POST['bo_write_max']}',
bo_comment_min = '{$_POST['bo_comment_min']}',
@ -222,7 +223,7 @@ if ($w == '') {
// 같은 그룹내 게시판 동일 옵션 적용
$grp_fields = '';
if (is_checked('chk_grp_use')) $grp_fields .= " , bo_use = '{$bo_use}' ";
if (is_checked('chk_grp_device')) $grp_fields .= " , bo_device = '{$bo_device}' ";
if (is_checked('chk_grp_admin')) $grp_fields .= " , bo_admin = '{$bo_admin}' ";
if (is_checked('chk_grp_list_level')) $grp_fields .= " , bo_list_level = '{$bo_list_level}' ";
if (is_checked('chk_grp_read_level')) $grp_fields .= " , bo_read_level = '{$bo_read_level}' ";
@ -285,6 +286,7 @@ if (is_checked('chk_grp_content_tail')) $grp_fields .= " , bo_content_ta
if (is_checked('chk_grp_insert_content')) $grp_fields .= " , bo_insert_content = '{$bo_insert_content}' ";
if (is_checked('chk_grp_use_search')) $grp_fields .= " , bo_use_search = '{$bo_use_search}' ";
if (is_checked('chk_grp_order')) $grp_fields .= " , bo_order = '{$bo_order}' ";
if (is_checked('chk_grp_show_menu')) $grp_fields .= " , bo_show_menu = '{$bo_show_menu}' ";
for ($i=1; $i<=10; $i++) {
if (is_checked('chk_grp_'.$i)) {
$grp_fields .= " , bo_{$i}_subj = '".$_POST['bo_'.$i.'_subj']."' ";
@ -299,7 +301,7 @@ if ($grp_fields) {
// 모든 게시판 동일 옵션 적용
$all_fields = '';
if (is_checked('chk_all_use')) $all_fields .= " , bo_use = '{$bo_use}' ";
if (is_checked('chk_all_device')) $all_fields .= " , bo_device = '{$bo_device}' ";
if (is_checked('chk_all_admin')) $all_fields .= " , bo_admin = '{$bo_admin}' ";
if (is_checked('chk_all_list_level')) $all_fields .= " , bo_list_level = '{$bo_list_level}' ";
if (is_checked('chk_all_read_level')) $all_fields .= " , bo_read_level = '{$bo_read_level}' ";
@ -362,6 +364,7 @@ if (is_checked('chk_all_content_tail')) $all_fields .= " , bo_content_ta
if (is_checked('chk_all_insert_content')) $all_fields .= " , bo_insert_content = '{$bo_insert_content}' ";
if (is_checked('chk_all_use_search')) $all_fields .= " , bo_use_search = '{$bo_use_search}' ";
if (is_checked('chk_all_order')) $all_fields .= " , bo_order = '{$bo_order}' ";
if (is_checked('chk_all_show_menu')) $all_fields .= " , bo_show_menu = '{$bo_show_menu}' ";
for ($i=1; $i<=10; $i++) {
if (is_checked('chk_all_'.$i)) {
$all_fields .= " , bo_{$i}_subj = '".$_POST['bo_'.$i.'_subj']."' ";

View File

@ -76,7 +76,7 @@ include_once('./admin.head.php');
<th scope="row"><label for="gr_device">접속기기</label></th>
<td>
<?=help("PC 와 모바일 사용을 구분합니다.")?>
<select id="gr_device_" name="gr_device">
<select id="gr_device" name="gr_device">
<option value="both"<?=get_selected($group['gr_device'], 'both', true);?>>PC와 모바일에서 모두 사용</option>
<option value="pc"<?=get_selected($group['gr_device'], 'pc');?>>PC 전용</option>
<option value="mobile"<?=get_selected($group['gr_device'], 'mobile');?>>모바일 전용</option>
@ -144,11 +144,6 @@ include_once('./admin.head.php');
</div>
<script>
if (document.fboardgroup.w.value == '')
document.fboardgroup.gr_id.focus();
else
document.fboardgroup.gr_subject.focus();
function fboardgroup_check(f)
{
f.action = './boardgroup_form_update.php';

View File

@ -123,6 +123,7 @@ $colspan = 15;
<th scope="col"><?=subject_sort_link('mb_level', '', 'desc')?>권한</a></th>
<th scope="col"><?=subject_sort_link('mb_point', '', 'desc')?> 포인트</a></th>
<th scope="col"><?=subject_sort_link('mb_today_login', '', 'desc')?>최종접속</a></th>
<th scope="col"><?=subject_sort_link('mb_datetime', '', 'desc')?>가입일</a></th>
<th scope="col"><?=subject_sort_link('mb_mailling', '', 'desc')?>수신</a></th>
<th scope="col"><?=subject_sort_link('mb_open', '', 'desc')?>공개</a></th>
<th scope="col"><?=subject_sort_link('mb_email_certify', '', 'desc')?>인증</a></th>
@ -189,6 +190,7 @@ $colspan = 15;
<td><?=get_member_level_select("mb_level[$i]", 1, $member['mb_level'], $row['mb_level'])?></td>
<td class="td_bignum"><a href="point_list.php?sfl=mb_id&amp;stx=<?=$row['mb_id']?>"><?=number_format($row['mb_point'])?></a></td>
<td><?=substr($row['mb_today_login'],2,8)?></td>
<td><?=substr($row['mb_datetime'],2,8)?></td>
<td><?=$row['mb_mailling']?'<span class="txt_true">Yes</span>':'<span class="txt_false">No</span>';?></td>
<td><?=$row['mb_open']?'<span class="txt_true">Yes</span>':'<span class="txt_false">No</span>';?></td>
<td><?=preg_match('/[1-9]/', $row['mb_email_certify'])?'<span class="txt_true">Yes</span>':'<span class="txt_false">No</span>';?></td>

View File

@ -63,15 +63,8 @@ $result = sql_query($sql);
$referer = get_text(cut_str($row['vi_referer'], 255, ''));
$referer = urldecode($referer);
if (strtolower($g4['charset']) == 'utf-8') {
if (!is_utf8($referer)) {
$referer = iconv('euc-kr', 'utf-8', $referer);
}
}
else {
if (is_utf8($referer)) {
$referer = iconv('utf-8', 'euc-kr', $referer);
}
if (!is_utf8($referer)) {
$referer = iconv_utf8($referer);
}
$title = str_replace(array('<', '>', '&'), array("&lt;", "&gt;", "&amp;"), $referer);

View File

@ -8,10 +8,30 @@ function editor_html($id, $content, $ckeditor=true, $class="")
$html = "";
$html .= "<span class=\"sound_only\">웹에디터 시작</span>";
if ($ckeditor)
$html .= '<script>document.write("<div class=\'cke_sc\'><button type=\'button\' class=\'btn_cke_sc\'>단축키 일람</button></div>");</script>';
if ($js) {
$html .= "\n".'<script src="'.G4_CKEDITOR_URL.'/ckeditor.js"></script>';
$html .= "\n".'<script>var g4_ckeditor_url = "'.G4_CKEDITOR_URL.'";</script>';
$html .= "\n".'<script src="'.G4_CKEDITOR_URL.'/config.js"></script>';
$html .= "\n<script>";
$html .= '
$(function(){
$(".btn_cke_sc").click(function(){
if ($(this).next("div.cke_sc_def").length) {
$(this).next("div.cke_sc_def").remove();
$(this).text("단축키 일람");
} else {
$(this).after("<div class=\'cke_sc_def\' />").next("div.cke_sc_def").load("'.G4_CKEDITOR_URL.'/shortcut.html");
$(this).text("단축키 일람 닫기");
}
});
$(".btn_cke_sc_close").live("click",function(){
$(this).parent("div.cke_sc_def").remove();
});
});';
$html .= "\n</script>";
$js = false;
}

View File

@ -43,6 +43,8 @@ CKEDITOR.on('dialogDefinition', function(ev) {
this.selectPage('Upload');
};
/*
alt 를 넘기지 못하는 관계로 주석 처리함. 130314 kagla
dialogDefinition.onOk = function (e) {
var imageSrcUrl = e.sender.originalElement.$.src;
var imgHtml = CKEDITOR.dom.element.createFromHtml('<img src=' + imageSrcUrl + ' alt="" />');
@ -55,6 +57,7 @@ CKEDITOR.on('dialogDefinition', function(ev) {
$(".cke_dialog_ui_button_ok span").click();
}
};
*/
/*
var uploadTab = dialogDefinition.getContents('Upload');
@ -167,4 +170,4 @@ CKEDITOR.editorConfig = function( config ) {
[ CKEDITOR.ALT + 48 /*ZERO*/, 'toolbarCollapse' ],
[ CKEDITOR.ALT + 121 /*F10*/, 'toolbarFocus' ],
];
};
};

View File

@ -14,13 +14,18 @@ $CKEditor = $_GET['CKEditor'] ;
$langCode = $_GET['langCode'] ;
if(isset($_FILES['upload']['tmp_name'])) {
$file_name = $_FILES['upload']['name'];
$ext = substr($file_name, (strrpos($file_name, '.') + 1));
if (!preg_match("/\.(jpe?g|gif|png)$/i", $file_name)) {
echo '이미지만 가능';
$file = $_FILES['upload']['name'];
$pos = strrpos($file, '.');
$filename = substr($file, 0, $pos);
$extension = substr($file, $pos, strlen($file) - $pos);
if (!preg_match("/\.(jpe?g|gif|png)$/i", $extension)) {
echo '이미지 파일만 가능합니다.';
return false;
}
// 윈도우에서 한글파일명으로 업로드 되지 않는 오류 해결
$file_name = sprintf('%u', ip2long($_SERVER['REMOTE_ADDR'])).'_'.get_microtime().$extension;
$save_dir = sprintf('%s/%s', $data_dir, $file_name);
$save_url = sprintf('%s/%s', $data_url, $file_name);

View File

@ -16,9 +16,9 @@ if (!$file['bf_file'])
alert_close('파일 정보가 존재하지 않습니다.');
// JavaScript 불가일 때
if($confirm != 'yes' && $board['bo_download_point'] < 0) {
if($js != 'on' && $board['bo_download_point'] < 0) {
$msg = $file['bf_source'].' 파일을 다운로드 하시면 포인트가 차감('.number_format($board['bo_download_point']).'점)됩니다.\\n포인트는 게시물당 한번만 차감되며 다음에 다시 다운로드 하셔도 중복하여 차감하지 않습니다.\\n그래도 다운로드 하시겠습니까?';
$url1 = './download.php?'.$_SERVER['QUERY_STRING'].'&amp;confirm=yes';
$url1 = G4_BBS_URL.'/download.php?'.$_SERVER['QUERY_STRING'].'&amp;js=on';
$url2 = $_SERVER['HTTP_REFERER'];
//$url1 = 확인link, $url2=취소link
@ -31,7 +31,7 @@ if ($member['mb_level'] < $board['bo_download_level']) {
if ($member['mb_id'])
alert($alert_msg);
else
alert($alert_msg.'\\n회원이시라면 로그인 후 이용해 보십시오.', './login.php?wr_id='.$wr_id.'&amp;'.$qstr.'&amp;url='.urlencode($g4['bbs_path'].'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id));
alert($alert_msg.'\\n회원이시라면 로그인 후 이용해 보십시오.', G4_BBS_URL.'/login.php?wr_id='.$wr_id.'&amp;'.$qstr.'&amp;url='.urlencode(G4_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id));
}
$filepath = G4_DATA_PATH.'/file/'.$bo_table.'/'.$file['bf_file'];
@ -54,7 +54,7 @@ if (!get_session($ss_name))
{
// 다운로드 포인트가 음수이고 회원의 포인트가 0 이거나 작다면
if ($member['mb_point'] + $board['bo_download_point'] < 0)
alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 다운로드('.number_format($board['bo_download_point']).')가 불가합니다.'."\n\n".'포인트를 적립하신 후 다시 다운로드 해 주십시오.');
alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 다운로드('.number_format($board['bo_download_point']).')가 불가합니다.\\n\\n포인트를 적립하신 후 다시 다운로드 해 주십시오.');
// 게시물당 한번만 차감하도록 수정
insert_point($member['mb_id'], $board['bo_download_point'], "{$board['bo_subject']} $wr_id 파일 다운로드", $bo_table, $wr_id, "다운로드");

View File

@ -64,9 +64,9 @@ if ($is_member && ($is_admin == 'super' || $group['gr_admin'] == $member['mb_id'
// 정렬에 사용하는 QUERY_STRING
$qstr2 = 'bo_table='.$bo_table.'&amp;sop='.$sop;
if ($board['bo_gallery_cols']) {
$td_width = (int)(100 / $board['bo_gallery_cols']);
}
// 0 으로 나눌시 오류를 방지하기 위하여 값이 없으면 1 로 설정
$bo_gallery_cols = $board['bo_gallery_cols'] ? $board['bo_gallery_cols'] : 1;
$td_width = (int)(100 / $bo_gallery_cols);
// 정렬
// 인덱스 필드가 아니면 정렬에 사용하지 않음

View File

@ -11,27 +11,27 @@ if (!trim($mb_id) || !trim($mb_password))
$mb = get_member($mb_id);
// 가입된 회원이 아니다. 패스워드가 틀리다. 라는 메세지를 따로 보여주지 않는 이유는
// 가입된 회원이 아니다. 패스워드가 틀리다. 라는 메세지를 따로 보여주지 않는 이유는
// 회원아이디를 입력해 보고 맞으면 또 패스워드를 입력해보는 경우를 방지하기 위해서입니다.
// 불법사용자의 경우 회원아이디가 틀린지, 패스워드가 틀린지를 알기까지는 많은 시간이 소요되기 때문입니다.
if (!$mb['mb_id'] || (sql_password($mb_password) != $mb['mb_password'])) {
alert('가입된 회원아이디가 아니거나 패스워드가 틀립니다.\n패스워드는 대소문자를 구분합니다.');
alert('가입된 회원아이디가 아니거나 패스워드가 틀립니다.\\n패스워드는 대소문자를 구분합니다.');
}
// 차단된 아이디인가?
if ($mb['mb_intercept_date'] && $mb['mb_intercept_date'] <= date("Ymd", G4_SERVER_TIME)) {
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb['mb_intercept_date']);
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb['mb_intercept_date']);
alert('회원님의 아이디는 접근이 금지되어 있습니다.\n처리일 : '.$date);
}
// 탈퇴한 아이디인가?
if ($mb['mb_leave_date'] && $mb['mb_leave_date'] <= date("Ymd", G4_SERVER_TIME)) {
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb['mb_leave_date']);
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb['mb_leave_date']);
alert('탈퇴한 아이디이므로 접근하실 수 없습니다.\n탈퇴일 : '.$date);
}
if ($config['cf_use_email_certify'] && !preg_match("/[1-9]/", $mb['mb_email_certify']))
alert('메일인증을 받으셔야 로그인 하실 수 있습니다.\n회원님의 메일주소는 '.$mb['mb_email'].' 입니다.');
alert('메일인증을 받으셔야 로그인 하실 수 있습니다.\\n회원님의 메일주소는 '.$mb['mb_email'].' 입니다.');
@include_once($member_skin_path.'/login_check.skin.php');
@ -59,9 +59,9 @@ if ($url) {
$link = urldecode($url);
// 2003-06-14 추가 (다른 변수들을 넘겨주기 위함)
if (preg_match("/\?/", $link))
$split= "&amp;";
$split= "&amp;";
else
$split= "?";
$split= "?";
// $_POST 배열변수에서 아래의 이름을 가지지 않은 것만 넘김
foreach($_POST as $key=>$value) {

View File

@ -4,6 +4,8 @@ include_once('./_common.php');
if (!$member[mb_id])
alert('회원만 이용하실 수 있습니다.');
$me_id = (int)$_REQUEST['me_id'];
$sql = " select * from {$g4[memo_table]} where me_id = '{$me_id}' ";
$row = sql_fetch($sql);
if (!$row[mb_read_datetime][0]) // 메모 받기전이면

View File

@ -4,6 +4,8 @@ include_once('./_common.php');
if (!$is_member)
alert('회원만 이용하실 수 있습니다.');
$me_id = (int)$_REQUEST['me_id'];
if ($kind == 'recv')
{
$t = '받은';

View File

@ -3,7 +3,7 @@ include_once('./_common.php');
// 로그인중인 경우 회원가입 할 수 없습니다.
if ($is_member) {
goto_url(G4_PATH);
goto_url(G4_URL);
}
// 세션을 지웁니다.

View File

@ -1,12 +1,12 @@
<?
include_once('./_common.php');
if (isset($_SESSION['ss_mb_reg']))
if (isset($_SESSION['ss_mb_reg']))
$mb = get_member($_SESSION['ss_mb_reg']);
// 회원정보가 없다면 초기 페이지로 이동
if (!$mb['mb_id'])
goto_url(G4_PATH);
if (!$mb['mb_id'])
goto_url(G4_URL);
$g4['title'] = '회원가입이 완료되었습니다.';
include_once('./_head.php');

View File

@ -30,15 +30,15 @@ if (!$row['bo_use_rss_view']) {
exit;
}
Header("Content-type: text/xml");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header('Content-type: text/xml');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');
$sql = " select gr_subject from {$g4['group_table']} where gr_id = '{$row['gr_id']}' ";
$row = sql_fetch($sql);
$subj1 = specialchars_replace($row['gr_subject'], 255);
echo '<?xml version="1.0" encoding="'.$g4['charset'].'"?>'."\n";
echo '<?xml version="1.0" encoding="utf-8"?>'."\n";
?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>

View File

@ -4,7 +4,7 @@
* @author sol (ngleader@gmail.com)
* @brief 게시판 삭제시 Syndication Ping
* gnuboard4/adm/board_delete.inc.php 파일에 추가
* include '../syndi/include/gnuboard4_euckr/include.adm.board_delete.inc.php';
* include '../syndi/include/include.adm.board_delete.inc.php';
*/
if(!defined('_GNUBOARD_')) return;

View File

@ -4,7 +4,7 @@
* @author sol (ngleader@gmail.com)
* @brief 게시판 삭제시 Syndication Ping
* gnuboard4/adm/board_form_update.php 파일에 추가
* include '../syndi/include/gnuboard4_euckr/include.adm.board_form_update.php';
* include '../syndi/include/include.adm.board_form_update.php';
*/
if(!defined('_GNUBOARD_')) return;

View File

@ -4,7 +4,7 @@
* @author sol (ngleader@gmail.com)
* @brief 글 삭제시 Syndication Ping
* gnuboard4/bbs/bbs.delete.php 파일에 추가
* include '../syndi/include/gnuboard4_euckr/include.bbs.delete.php';
* include '../syndi/include/include.bbs.delete.php';
*/
if(!defined('_GNUBOARD_')) return;

View File

@ -4,7 +4,7 @@
* @author sol (ngleader@gmail.com)
* @brief 글 삭제시 Syndication Ping
* gnuboard4/bbs/bbs.delete_all.php 파일에 추가
* include '../syndi/include/gnuboard4_euckr/include.bbs.delete_all.php';
* include '../syndi/include/include.bbs.delete_all.php';
*/
if(!defined('_GNUBOARD_')) return;

View File

@ -4,7 +4,7 @@
* @author sol (ngleader@gmail.com)
* @brief 글 등록/수정시 Syndication Ping
* gnuboard4/bbs/move_update.php 파일에 추가
* include '../syndi/include/gnuboard4_euckr/include.bbs.move_update.php';
* include '../syndi/include/include.bbs.move_update.php';
*/
if(!defined('_GNUBOARD_')) return;

View File

@ -4,7 +4,7 @@
* @author sol (ngleader@gmail.com)
* @brief 글 등록/수정시 Syndication Ping
* gnuboard4/bbs/write_update.php 파일에 추가
* include '../syndi/include/gnuboard4_euckr/include.bbs.write_update.php';
* include '../syndi/include/include.bbs.write_update.php';
*/
if(!defined('_GNUBOARD_')) return;

View File

@ -2,19 +2,20 @@
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 컴퓨터의 아이피와 쿠키에 저장된 아이피가 다르다면 테이블에 반영함
if (get_cookie('ck_visit_ip') != $_SERVER['REMOTE_ADDR']) {
if (get_cookie('ck_visit_ip') != $_SERVER['REMOTE_ADDR'])
{
set_cookie('ck_visit_ip', $_SERVER['REMOTE_ADDR'], 86400); // 하루동안 저장
$tmp_row = sql_fetch(" select max(vi_id) as max_vi_id from {$g4['visit_table']} ");
$vi_id = $tmp_row['max_vi_id'] + 1;
// $_SERVER 배열변수 값의 변조를 이용한 SQL Injection 공격을 막는 코드입니다. 110810
$remote_addr = mysql_real_escape_string($_SERVER['REMOTE_ADDR']);
$remote_addr = escape_trim($_SERVER['REMOTE_ADDR']);
$referer = "";
if (isset($_SERVER['HTTP_REFERER']))
$referer = mysql_real_escape_string($_SERVER['HTTP_REFERER']);
$user_agent = mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']);
$sql = " insert {$g4['visit_table']} ( vi_id, vi_ip, vi_date, vi_time, vi_referer, vi_agent ) values ( '{$vi_id}', '{$remote_addr}', '".G4_TIME_YMD."', '{$g4['time_his']}', '{$referer}', '{$user_agent}' ) ";
$referer = escape_trim($_SERVER['HTTP_REFERER']);
$user_agent = escape_trim($_SERVER['HTTP_USER_AGENT']);
$sql = " insert {$g4['visit_table']} ( vi_id, vi_ip, vi_date, vi_time, vi_referer, vi_agent ) values ( '{$vi_id}', '{$remote_addr}', '".G4_TIME_YMD."', '".G4_TIME_HIS."', '{$referer}', '{$user_agent}' ) ";
$result = sql_query($sql, FALSE);
// 정상으로 INSERT 되었다면 방문자 합계에 반영
@ -59,4 +60,4 @@ if (get_cookie('ck_visit_ip') != $_SERVER['REMOTE_ADDR']) {
sql_query(" update {$g4['config_table']} set cf_visit = '{$visit}' ");
}
}
?>
?>

View File

@ -3,8 +3,8 @@ include_once('./_common.php');
include_once(G4_CKEDITOR_PATH.'/ckeditor.lib.php');
include_once(G4_GCAPTCHA_PATH.'/gcaptcha.lib.php');
set_session('ss_bo_table', $bo_table);
set_session('ss_wr_id', $wr_id);
set_session('ss_bo_table', $_REQUEST['bo_table']);
set_session('ss_wr_id', $_REQUEST['wr_id']);
if (!$board['bo_table']) {
alert('존재하지 않는 게시판입니다.', G4_URL);

View File

@ -42,8 +42,8 @@ if (empty($_POST)) {
}
$w = $_POST['w'];
$wr_link1 = mysql_real_escape_string($_POST['wr_link1']);
$wr_link2 = mysql_real_escape_string($_POST['wr_link2']);
$wr_link1 = escape_trim(strip_tags($_POST['wr_link1']));
$wr_link2 = escape_trim(strip_tags($_POST['wr_link2']));
$notice_array = explode(',', trim($board['bo_notice']));
@ -349,7 +349,7 @@ if ($w == '' || $w == 'r') {
// 쓰기 포인트 부여
if ($w == '') {
if ($notice) {
$bo_notice = $wr_id."\n".$board['bo_notice'];
$bo_notice = $wr_id.",".$board['bo_notice'];
sql_query(" update {$g4['board_table']} set bo_notice = '{$bo_notice}' where bo_table = '{$bo_table}' ");
}
@ -364,26 +364,28 @@ if ($w == '' || $w == 'r') {
alert('올바른 방법으로 수정하여 주십시오.');
}
$return_url = './board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id;
if ($is_admin == 'super') // 최고관리자 통과
;
else if ($is_admin == 'group') { // 그룹관리자
$mb = get_member($write['mb_id']);
if ($member['mb_id'] != $group['gr_admin']) // 자신이 관리하는 그룹인가?
alert('자신이 관리하는 그룹의 게시판이 아니므로 수정할 수 없습니다.');
alert('자신이 관리하는 그룹의 게시판이 아니므로 수정할 수 없습니다.', $return_url);
else if ($member['mb_level'] < $mb['mb_level']) // 자신의 레벨이 크거나 같다면 통과
alert('자신의 권한보다 높은 권한의 회원이 작성한 글은 수정할 수 없습니다.');
alert('자신의 권한보다 높은 권한의 회원이 작성한 글은 수정할 수 없습니다.', $return_url);
} else if ($is_admin == 'board') { // 게시판관리자이면
$mb = get_member($write['mb_id']);
if ($member['mb_id'] != $board['bo_admin']) // 자신이 관리하는 게시판인가?
alert('자신이 관리하는 게시판이 아니므로 수정할 수 없습니다.');
alert('자신이 관리하는 게시판이 아니므로 수정할 수 없습니다.', $return_url);
else if ($member['mb_level'] < $mb['mb_level']) // 자신의 레벨이 크거나 같다면 통과
alert('자신의 권한보다 높은 권한의 회원이 작성한 글은 수정할 수 없습니다.');
alert('자신의 권한보다 높은 권한의 회원이 작성한 글은 수정할 수 없습니다.', $return_url);
} else if ($member['mb_id']) {
if ($member['mb_id'] != $write['mb_id'])
alert('자신의 글이 아니므로 수정할 수 없습니다.');
alert('자신의 글이 아니므로 수정할 수 없습니다.', $return_url);
} else {
if ($write['mb_id'])
alert('로그인 후 수정하세요.', './login.php?url='.urlencode('./board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id));
alert('로그인 후 수정하세요.', './login.php?url='.urlencode($return_url));
}
if ($member['mb_id']) {
@ -445,7 +447,7 @@ if ($w == '' || $w == 'r') {
if ($notice) {
//if (!preg_match("/[^0-9]{0,1}{$wr_id}[\r]{0,1}/",$board['bo_notice']))
if (!in_array((int)$wr_id, $notice_array)) {
$bo_notice = $wr_id . '\n' . $board['bo_notice'];
$bo_notice = $wr_id . ',' . $board['bo_notice'];
sql_query(" update {$g4['board_table']} set bo_notice = '{$bo_notice}' where bo_table = '{$bo_table}' ");
}
} else {

2965
bbs/zip.db

File diff suppressed because it is too large Load Diff

View File

@ -2,9 +2,6 @@
/*******************************************************************************
** 공통 변수, 상수, 코드
*******************************************************************************/
//error_reporting(E_ALL ^ E_NOTICE);
//error_reporting(E_ALL & ~E_NOTICE);
//error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT);
error_reporting( E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING | E_RECOVERABLE_ERROR );
// 보안설정이나 프레임이 달라도 쿠키가 통하도록 설정
@ -69,19 +66,14 @@ $g4 = array();
function g4_path()
{
$path = dirname(__FILE__); // 예) /home/sir/www/g4s
$linux_dir = str_replace("\\", "/", $path); // 예) /home/sir/www/g4s
$document_root = str_replace("\\", "/", $_SERVER['DOCUMENT_ROOT']); // 예) /home/sir/www
$base_dir = preg_replace('#^'.$document_root.'#i', '', $linux_dir); // 예) /g4s
$port = $_SERVER['SERVER_PORT'] != 80 ? ':'.$_SERVER['SERVER_PORT'] : '';
$http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 's' : '') . '://';
$result = array();
$result['path'] = $path;
$result['url'] = $http.$_SERVER['SERVER_NAME'].$port.$base_dir;
$result['curr_url'] = $http.$_SERVER['SERVER_NAME'].$port.$_SERVER['PHP_SELF'];
$result['curr_uri'] = $result['curr_url'] . ($_SERVER['QUERY_STRING'] ? '?'.$_SERVER['QUERY_STRING'] : '');
$result['path'] = str_replace('\\', '/', dirname(__FILE__));
$tilde_remove = preg_replace('/^\/\~[^\/]+(.*)$/', '$1', $_SERVER['SCRIPT_NAME']);
$document_root = str_replace($tilde_remove, '', $_SERVER['SCRIPT_FILENAME']);
$root = str_replace($document_root, '', $result['path']);
$port = $_SERVER['SERVER_PORT'] != 80 ? ':'.$_SERVER['SERVER_PORT'] : '';
$http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 's' : '') . '://';
$user = str_replace(str_replace($document_root, '', $_SERVER['SCRIPT_FILENAME']), '', $_SERVER['SCRIPT_NAME']);
$result['url'] = $http.$_SERVER['SERVER_NAME'].$port.$user.$root;
return $result;
}
@ -124,10 +116,10 @@ div a {display:block;margin:50px auto 10px;width:170px;text-align:center}
<div>
<p>다음 파일을 찾을 수 없습니다.</p>
<ul>
<li><strong><?=$dbconfig_file?></strong></li>
<li><strong><?=G4_DATA_DIR.'/'.G4_DBCONFIG_FILE?></strong></li>
</ul>
<p>프로그램 설치 후 실행하시기 바랍니다.</p>
<a href="<?=G4_URL?>/install/">그누보드4S 설치하기</a>
<a href="./install/">그누보드4S 설치하기</a>
</div>
</body>
</html>
@ -220,6 +212,7 @@ if (isset($_REQUEST['sca'])) {
if (isset($_REQUEST['sfl'])) {
$sfl = escape_trim($_REQUEST['sfl']);
$sfl = preg_replace("/[\<\>\'\"\%\=\(\)\s]/", "", $sfl);
if ($sfl)
$qstr .= '&amp;sfl=' . urlencode($sfl); // search field (검색 필드)
} else {

View File

@ -17,7 +17,7 @@ if (PHP_VERSION >= '5.3.0') {
/*
보안서버 도메인
회원가입, 글쓰기에 사용되는 https 로 시작되는 주소를 말합니다.
회원가입, 글쓰기에 사용되는 https 로 시작되는 주소를 말합니다.
포트가 있다면 도메인 뒤에 :443 과 같이 입력하세요.
보안서버주소가 없다면 공란으로 두시면 되며 보안서버주소 뒤에 / 는 붙이지 않습니다.
입력예) https://www.domain.com:443/gnuboard4s
@ -50,9 +50,9 @@ define('G4_MOBILE_DIR', 'mobile');
if (G4_DOMAIN) {
define('G4_URL', G4_DOMAIN);
} else {
if (isset($g4_path['url']))
if (isset($g4_path['url']))
define('G4_URL', $g4_path['url']);
else
else
define('G4_URL', '');
}
@ -87,7 +87,6 @@ define('G4_MOBILE_PATH', G4_PATH.'/'.G4_MOBILE_DIR);
define('G4_USE_CACHE', true); // 최신글등에 cache 기능 사용 여부
define('G4_USE_SHOP', true); // 쇼핑몰 사용 여부
// 시간 상수

View File

@ -13,7 +13,7 @@ input[type=text],
input[type=password],
input[type=submit],
input[type=image] {-webkit-appearance:none}
button {border-radius:0;-webkit-appearance:none}
button {border-radius:0;font-size:1em;-webkit-appearance:none}
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}
@ -38,11 +38,22 @@ h2 {font-size:1.2em}
#captcha img {border:1px solid #ddd;border-right:0}
#captcha_mp3 img {border:1px solid #ddd;border-left:0;background:#494949}
/* ckeditor 단축키 */
.cke_sc {margin:0 0 5px;text-align:right}
.btn_cke_sc{display:inline-block;padding:0 10px;height:23px;border:1px solid #ccc !important;background:#fafafa !important;color:#000 !important;text-decoration:none !important;line-height:1.9em;vertical-align:middle}
.cke_sc_def {margin:0 0 5px;padding:10px;border:1px solid #ccc;background:#f7f7f7;text-align:center}
.cke_sc_def dl{margin:0 0 5px;text-align:left;zoom:1}
.cke_sc_def dl:after {display:block;visibility:hidden;clear:both;content:""}
.cke_sc_def dt,
.cke_sc_def dd {float:left;margin:0;padding:5px 0;border-bottom:1px solid .e9e9e9}
.cke_sc_def dt {width:20%;font-weight:bold}
.cke_sc_def dd {width:30%}
/* 레이아웃 */
#hd {z-index:10;min-width:1000px;background:url('../adm/img/hd_bg.jpg') #383b3f top left repeat-x}
#hd h1,
#hd h2 {margin:0;padding:0;font-size:0;line-height:0;border:0;overflow:hidden}
#hd_wrap {position:relative;margin:0 auto;width:1000px}
#hd_wrap {z-index:11;position:relative;margin:0 auto;width:1000px}
#logo {position:relative;height:70px}
#logo img {position:absolute;top:15px;left:0}
@ -54,11 +65,11 @@ h2 {font-size:1.2em}
#mb_nb a {display:inline-block;padding:5px 0;color:#e0e0e0;font-size:0.9em;text-decoration:none}
/* gnb js off */
#gnb {z-index:10;background:#383a3f}
#gnb {z-index:12;background:#383a3f}
#gnb h2 {margin:0;padding:0;width:1px;height:1px;font-size:0;line-height:0;overflow:hidden}
#gnb_ul {margin:0 auto;padding:0;width:1000px;zoom:1}
#gnb_ul:after {display:block;visibility:hidden;clear:both;content:""}
.gnb_1depth {z-index:10;clear:both;zoom:1}
.gnb_1depth {z-index:13;clear:both;zoom:1}
.gnb_1depth:after {display:block;visibility:hidden;clear:both;content:""}
.gnb_1depth a {display:block;float:left;width:80px;height:35px;color:#e0e0e0;font-weight:bold;line-height:2.95em;text-decoration:none}
.gnb_1depth a:focus,
@ -79,10 +90,8 @@ h2 {font-size:1.2em}
.gnb_1depth_over .gnb_sub_ul {left:-1px;width:181px;height:auto;border:1px solid #c3c7c5;border-top:0;background:#fff}
.gnb_1depth_over2 .gnb_sub_ul {right:-1px;width:181px;height:auto;border:1px solid #c3c7c5;border-top:0;background:#fff}
#current_loc {position:absolute;top:-5000px;left:0}
/* 중간 레이아웃 */
#wrapper {margin:30px auto;width:1000px;min-height:630px;height:auto !important;height:630px;zoom:1}
#wrapper {z-index:5;margin:30px auto;width:1000px;min-height:630px;height:auto !important;height:630px;zoom:1}
#wrapper:after {display:block;visibility:hidden;clear:both;content:""}
#qnb {float:right;margin:0;padding:0;list-style:none}
@ -93,7 +102,7 @@ h2 {font-size:1.2em}
#qnb a:active {text-decoration:none}
#qnb img {margin-bottom:5px}
#container {position:relative;float:left;width:942px}
#container {z-index:4;position:relative;float:left;width:942px}
/* 텍스트 크기 조절 */
#text_size {position:absolute;top:0;right:0}
@ -255,7 +264,7 @@ td {padding:8px 5px 6px;border-top:1px solid #e9e9e9;border-bottom:1px solid #e9
/* 공통 */
.td_chk {width:30px;text-align:center}
.td_num {width:60px;text-align:center}
.td_bignum {width:120px;text-align:center}
.td_bignum {width:100px;text-align:center}
.td_grid {width:60px;text-align:center}
.td_mbid,
.td_name,
@ -289,6 +298,11 @@ td {padding:8px 5px 6px;border-top:1px solid #e9e9e9;border-bottom:1px solid #e9
.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%}
/* 자바스크립트 alert 대안 */
#validation_check {margin:100px auto;width:500px}
#validation_check h1 {margin-bottom:20px;font-size:1.3em}
#validation_check p {margin-bottom:20px;padding:30px 20px;border:1px solid #e9e9e9;background:#fff}
/* 관리자 패스워드 확인 */
#admin_confirm {padding:0 0 10px;background:#222;text-align:center}
#admin_confirm p {margin:0 0 10px;color:#9ab9c5;background:#383a3f}
@ -296,14 +310,14 @@ td {padding:8px 5px 6px;border-top:1px solid #e9e9e9;border-bottom:1px solid #e9
#admin_confirm .frm_input {border-color:#000}
/* 사이드뷰 */
.sv_wrap {display:inline-block;position:relative;font-weight:normal}
.sv_wrap .sv {z-index:5;display:none;margin:5px 0 0;border:1px solid #283646;background:#334356}
.sv_js_off .sv {display:block}
.sv_wrap {display:inline-block;position:relative;font-weight:normal;font-size:1em}
.sv_wrap .sv {z-index:1000;display:none;margin:5px 0 0;border:1px solid #283646;background:#111}
.sv_wrap .sv a {display:inline-block !important;margin:0 !important;padding:3px !important;width:94px;border-bottom:1px solid #283646;color:#fff !important}
.sv_wrap a:focus,
.sv_wrap a:hover,
.sv_wrap a:active {text-decoration:none !important}
.sv_on {display:block !important;position:absolute;top:10px;left:20px;width:auto;height:auto !important;background:#ddd}
.sv_on {display:block !important;position:absolute;top:10px;left:20px;width:auto;height:auto !important}
.sv_nojs .sv {display:block}
/* pagination */
.pg_wrap {clear:both;margin:0 0 20px;padding-top:20px;text-align:center}

View File

@ -13,7 +13,7 @@ input[type=text],
input[type=password],
input[type=submit],
input[type=image] {-webkit-appearance:none}
button {border-radius:0;-webkit-appearance:none}
button {border-radius:0;font-size:1em;-webkit-appearance:none}
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}
@ -33,11 +33,23 @@ a:active {color:#000;text-decoration:underline}
#to_content a:active {width:100%;height:75px;background:#21272e;color:#fff;font-size:2em;font-weight:bold;text-align:center;text-decoration:none;line-height:3.3em}
/* 이미지 등비율 리사이징 */
.img_fix {float:left;width:100%;height:auto}
.img_fix {width:100%;height:auto}
/* 캡챠 자동등록(입력)방지 기본 */
#captcha img {border:1px solid #cfded8;border-right:0}
#captcha_mp3 img {border:1px solid #cfded8;border-left:0;background:#494949}
#mp3_embed {position:absolute;top:0;left:0;width:1px;height:1px;overflow:hidden} /* 익스 8 이하에서 음성캡챠 실행 스타일 */
/* ckeditor 단축키 */
.cke_sc {margin:0 0 5px;text-align:right}
.btn_cke_sc{display:inline-block;padding:0 10px;height:23px;border:1px solid #ccc !important;background:#fafafa !important;color:#000 !important;text-decoration:none !important;line-height:1.9em;vertical-align:middle}
.cke_sc_def {margin:0 0 5px;padding:10px;border:1px solid #ccc;background:#f7f7f7;text-align:center}
.cke_sc_def dl{margin:0 0 5px;text-align:left;zoom:1}
.cke_sc_def dl:after {display:block;visibility:hidden;clear:both;content:""}
.cke_sc_def dt,
.cke_sc_def dd {float:left;margin:0;padding:5px 0;border-bottom:1px solid .e9e9e9}
.cke_sc_def dt {width:20%;font-weight:bold}
.cke_sc_def dd {width:30%}
/* 상단 레이아웃 */
#hd {height:73px;border-top:3px solid #151515;border-bottom:1px solid #e7f1ed;background:#fff}
@ -114,13 +126,15 @@ a:active {color:#000;text-decoration:underline}
#ft_catch {position:relative;margin:0 auto;padding:20px 0;width:980px;text-align:center}
#ft_copy {background:#414141}
#ft_copy p {margin:0 auto;width:980px;color:#4a9ab8}
#ft_copy p {position:relative;margin:0 auto;width:980px;color:#4a9ab8}
#ft_copy b {color:#fff}
#ft_copy a {position:absolute;top:10px;right:0;color:#fff}
/* Mobile화면으로 */
#g4s_cng {display:block;margin:0.3em;padding:0.5em 0;border:1px solid #eee;border-radius:2em;background:#fff;color:#000;font-size:2em;text-decoration:none;text-align:center}
/* 콘텐츠별 스타일 */
.cnt_cmt {display:inline-block;margin:0 0 0 3px;font-weight:bold}
/* 버튼 */
.btn01 {display:inline-block;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:middle}
.btn01:focus,
@ -213,19 +227,17 @@ input.required:focus {padding:3px 3px 4px;border:0;background:#21272e !important
/* 자바스크립트 alert 대안 */
#validation_check {margin:100px auto;width:500px}
#validation_check h1 {margin-bottom:20px;font-size:1.3em}
#validation_check p {margin-bottom:20px;padding:30px 20px}
/* 스킨별 스타일 */
#validation_check p {margin-bottom:20px;padding:30px 20px;border:1px solid #e9e9e9;background:#fff}
/* 사이드뷰 */
.sv_wrap {display:inline-block;position:relative;font-weight:normal}
.sv_wrap .sv {z-index:1000;display:none;margin:5px 0 0;border:1px solid #283646;background:#111}
.sv_js_off {display:block}
.sv_wrap .sv a {display:inline-block !important;margin:0 !important;padding:3px !important;width:94px;border-bottom:1px solid #283646;color:#fff !important}
.sv_wrap a:focus,
.sv_wrap a:hover,
.sv_wrap a:active {text-decoration:none !important}
.sv_on {display:block !important;position:absolute;top:10px;left:20px;width:auto;height:auto !important}
.sv_nojs .sv {display:block}
/* pagination */
.pg_wrap {clear:both;margin:0 0 20px;padding-top:20px;text-align:center}

View File

@ -29,7 +29,7 @@ pre {overflow-x:scroll;font-size:1.1em}
.to_content a {z-index:100000;position:absolute;top:0;left:0;width:0;height:0;font-size:0;line-height:0;overflow:hidden}
/* 이미지 등비율 리사이징 */
.img_fix {float:left;width:100%;height:auto}
.img_fix {width:100%;height:auto}
/* 캡챠 자동등록(입력)방지 기본 */
#captcha img {height:1.8em;border:1px solid #cfded8;border-right:0}
@ -91,8 +91,9 @@ pre {overflow-x:scroll;font-size:1.1em}
#ft img {display:none}
#ft_copy {background:#232323}
#ft_copy p {padding:0.5em;color:#4a9ab8}
#ft_copy p {position:relative;padding:0.5em;color:#4a9ab8}
#ft_copy b {color:#fff}
#ft_copy a {position:absolute;top:0.5em;right:0.5em;color:#fff;text-decoration:none}
/* PC화면으로 */
#g4s_cng {display:block;margin:0.3em;padding:0.5em 0;border:1px solid #eee;border-radius:2em;color:#000;font-size:1em;text-decoration:none;text-align:center}

View File

@ -139,7 +139,7 @@ if ($config['cf_include_head']) {
<a href="<?=G4_BBS_URL?>/group.php?gr_id=<?=$row['gr_id']?>"><?=$row['gr_subject']?></a>
<ul class="gnb_sub_ul">
<?
$sql2 = " select * from {$g4['board_table']} where gr_id = '{$row['gr_id']}' order by bo_order ";
$sql2 = " select * from {$g4['board_table']} where gr_id = '{$row['gr_id']}' and bo_show_menu = '1' order by bo_order ";
$result2 = sql_query($sql2);
for ($bi=0; $row2=sql_fetch_array($result2); $bi++) { // bi 는 board index
?>

View File

@ -32,7 +32,11 @@ header("Pragma: no-cache"); // HTTP/1.0
<html lang="ko">
<head>
<meta charset="utf-8">
<? if (G4_IS_MOBILE) {?><meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"><? } ?>
<? if (G4_IS_MOBILE) {?>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=0,maximum-scale=10,user-scalable=yes">
<meta name="HandheldFriendly" content="true">
<meta name="format-detection" content="telephone=no">
<? } ?>
<!-- <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> -->
<title><?=$g4_head_title?></title>
<? if (defined('G4_IS_ADMIN')) { ?>
@ -88,5 +92,5 @@ if ($is_member) { // 회원이라면 로그인 중이라는 메세지를 출력
else if ($is_admin == 'group') $sr_admin_msg = "그룹관리자 ";
else if ($is_admin == 'board') $sr_admin_msg = "게시판관리자 ";
?>
<div id="hd_login_msg"><?=$sr_admin_msg?><?=$member['mb_nick']?>님 로그인 중</div>
<div id="hd_login_msg"><?=$sr_admin_msg?><?=$member['mb_nick']?>님 로그인 중 <a href="<?=G4_URL?>/bbs/logout.php">로그아웃</a></div>
<? } ?>

View File

@ -64,6 +64,7 @@ CREATE TABLE IF NOT EXISTS `g4s_board` (
`bo_hot` int(11) NOT NULL default '0',
`bo_image_width` int(11) NOT NULL default '0',
`bo_skin` varchar(255) NOT NULL default '',
`bo_mobile_skin` varchar(255) NOT NULL default '',
`bo_image_head` varchar(255) NOT NULL default '',
`bo_image_tail` varchar(255) NOT NULL default '',
`bo_include_head` varchar(255) NOT NULL default '',
@ -187,7 +188,7 @@ CREATE TABLE IF NOT EXISTS `g4s_config` (
`cf_include_index` varchar(255) NOT NULL default '',
`cf_include_head` varchar(255) NOT NULL default '',
`cf_include_tail` varchar(255) NOT NULL default '',
`cf_add_script` text NOT NULL default '',
`cf_add_script` text NOT NULL,
`cf_use_point` tinyint(4) NOT NULL default '0',
`cf_use_norobot` tinyint(4) NOT NULL default '0',
`cf_use_copy_log` tinyint(4) NOT NULL default '0',
@ -266,6 +267,10 @@ CREATE TABLE IF NOT EXISTS `g4s_config` (
`cf_privacy` text NOT NULL,
`cf_open_modify` int(11) NOT NULL default '0',
`cf_memo_send_point` int(11) NOT NULL default '0',
`cf_mobile_new_skin` varchar(255) NOT NULL default'',
`cf_mobile_search_skin` varchar(255) NOT NULL default'',
`cf_mobile_connect_skin` varchar(255) NOT NULL default'',
`cf_mobile_member_skin` varchar(255) NOT NULL default'',
`cf_kcpcert_site_cd` varchar(255) NOT NULL default '',
`cf_adult_check` tinyint(4) NOT NULL default '0',
`cf_1_subj` varchar(255) NOT NULL default '',
@ -300,6 +305,7 @@ DROP TABLE IF EXISTS `g4s_group`;
CREATE TABLE IF NOT EXISTS `g4s_group` (
`gr_id` varchar(10) NOT NULL default '',
`gr_subject` varchar(255) NOT NULL default '',
`gr_device` ENUM('both','pc','mobile') NOT NULL DEFAULT 'both',
`gr_admin` varchar(255) NOT NULL default '',
`gr_use_access` tinyint(4) NOT NULL default '0',
`gr_show_menu` tinyint(4) NOT NULL default '0',

View File

@ -4,6 +4,9 @@ include_once ('../config.php');
include_once ('./install.inc.php');
?>
<?
if ($exists_data_dir && $write_data_dir) {
?>
<p>
<strong class="st_strong">라이센스(License) 내용을 반드시 확인하십시오.</strong><br>
라이센스에 동의하시는 경우에만 설치가 진행됩니다.
@ -11,8 +14,6 @@ include_once ('./install.inc.php');
<textarea name="textarea" id="idx_license" readonly><?=implode('', file('../LICENSE.txt'));?></textarea>
</div>
<form action="./install_config.php" method="post" onsubmit="return frm_submit(this);">
<div id="idx_agree">
<label for="agree">동의합니다.</label>
@ -35,6 +36,11 @@ function frm_submit(f)
return true;
}
</script>
<?
} // if
?>
</div>
</body>
</html>

View File

@ -53,6 +53,7 @@ if (file_exists($dbconfig_file)) {
?>
<?
$exists_data_dir = true;
// data 디렉토리가 있는가?
if (!is_dir($data_path))
{
@ -62,10 +63,12 @@ if (!is_dir($data_path))
$> mkdir <?=G4_DATA_DIR?><br /><br />
위 명령 실행후 브라우저를 새로고침 하십시오.</p>
<?
$exists_data_dir = false;
}
?>
<?
$write_data_dir = true;
// data 디렉토리에 파일 생성 가능한지 검사.
if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') {
if (!(is_readable($data_path) && is_writeable($data_path) && is_executable($data_path)))
@ -75,7 +78,7 @@ if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') {
$> chmod 707 <?=G4_DATA_DIR?> 또는 chmod uo+rwx <?=G4_DATA_DIR?><br /><br />
위 명령 실행후 브라우저를 새로고침 하십시오.</p>
<?
exit;
$write_data_dir = false;
}
}
?>

View File

@ -17,7 +17,7 @@ if ($_POST['agree'] != '동의함') {
}
?>
<form id="frm_install" method="post" action="./install_db.php" onsubmit="return frm_install_submit(this)">
<form id="frm_install" method="post" action="./install_db.php" autocomplete="off" onsubmit="return frm_install_submit(this)">
<table style="margin-bottom:30px">
<caption>MySQL 정보입력</caption>
<colgroup>

View File

@ -7,6 +7,7 @@ header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
header('Pragma: no-cache'); // HTTP/1.0
$title = "그누보드4s 설치 3단계 중 3단계 설치 완료";
include_once ('../config.php');
include_once ('./install.inc.php');
@ -97,6 +98,10 @@ $sql = " insert into `{$table_prefix}config`
cf_possible_ip = '',
cf_intercept_ip = '',
cf_member_skin = 'basic',
cf_mobile_new_skin = 'basic',
cf_mobile_search_skin = 'basic',
cf_mobile_connect_skin = 'basic',
cf_mobile_member_skin = 'basic',
cf_register_level = '2',
cf_register_point = '1000',
cf_icon_level = '2',

View File

@ -87,7 +87,7 @@ function goto_url($url)
{
$url = str_replace("&amp;", "&", $url);
//echo "<script> location.replace('$url'); </script>";
header("Location:$url");
@header("Location:$url");
exit;
}
@ -137,19 +137,6 @@ function alert($msg='', $url='', $error=true, $post=false)
if (!$msg) $msg = '올바른 방법으로 이용해 주십시오.';
/*
//header("Content-Type: text/html; charset=$g4['charset']");
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset={$g4['charset']}\">";
echo "<script>alert('$msg');";
if (!$url)
echo "history.go(-1);";
echo "</script>";
if ($url)
// 4.06.00 : 불여우의 경우 아래의 코드를 제대로 인식하지 못함
//echo "<meta http-equiv='refresh' content='0;url=$url'>";
goto_url($url);
exit;
*/
$header = '';
if (isset($g4['title'])) {
$header = $g4['title'];
@ -164,11 +151,6 @@ function alert_close($msg, $error=true)
{
global $g4;
/*
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset={$g4['charset']}\">";
echo "<script> alert('$msg'); window.close(); </script>";
exit;
*/
$header = '';
if (isset($g4['title'])) {
$header = $g4['title'];
@ -495,6 +477,13 @@ function bad120422($matches)
return $matches['0'];
}
// tag 내의 주석문 무효화 하기
function bad130128($matches)
{
$str = $matches[2];
return '<'.$matches[1].preg_replace('#(\/\*|\*\/)#', '', $str).'>';
}
// 내용을 변환
function conv_content($content, $html)
{
@ -521,14 +510,18 @@ function conv_content($content, $html)
$content .= "</table>";
}
$content = preg_replace_callback("/<([^>]+)>/s", 'bad130128', $content);
$content = preg_replace($source, $target, $content);
$content = bad_tag_convert($content);
// XSS (Cross Site Script) 막기
// 완벽한 XSS 방지는 없다.
// 이런 경우를 방지함 <IMG STYLE="xss:expr/*XSS*/ession(alert('XSS'))">
$content = preg_replace("#\/\*.*\*\/#iU", "", $content);
//$content = preg_replace("#\/\*.*\*\/#iU", "", $content);
// 위의 정규식이 아래와 같은 내용을 통과시키므로 not greedy(비탐욕수량자?) 옵션을 제거함. ignore case 옵션도 필요 없으므로 제거
// <IMG STYLE="xss:ex//*XSS*/**/pression(alert('XSS'))"></IMG>
$content = preg_replace("#\/\*.*\*\/#", "", $content);
// object, embed 태그에서 javascript 코드 막기
$content = preg_replace_callback("#<(object|embed)([^>]+)>#i", "bad120422", $content);
@ -538,7 +531,8 @@ function conv_content($content, $html)
$content = preg_replace("/(lo)(wsrc)/i", "&#108;&#111;$2", $content);
$content = preg_replace("/(sc)(ript)/i", "&#115;&#99;$2", $content);
$content = preg_replace_callback("#<([^>]+)#", create_function('$m', 'return "<".str_replace("<", "&lt;", $m[1]);'), $content);
$content = preg_replace("/\<(\w|\s|\?)*(xml)/i", "", $content);
//$content = preg_replace("/\<(\w|\s|\?)*(xml)/i", "", $content);
$content = preg_replace("/\<(\w|\s|\?)*(xml)/i", "_$1$2_", $content);
// 플래시의 액션스크립트와 자바스크립트의 연동을 차단하여 악의적인 사이트로의 이동을 막는다.
// value="always" 를 value="never" 로, allowScriptaccess="always" 를 allowScriptaccess="never" 로 변환하는데 목적이 있다.
@ -550,6 +544,9 @@ function conv_content($content, $html)
$content = preg_replace("/<(img[^>]+logout\.php[^>]+)/i", "*** CSRF 감지 : &lt;$1", $content);
$content = preg_replace("/<(img[^>]+download\.php[^>]+bo_table[^>]+)/i", "*** CSRF 감지 : &lt;$1", $content);
$content = preg_replace_callback("#style\s*=\s*[\"\']?[^\"\']+[\"\']?#i",
create_function('$matches', 'return str_replace("\\\\", "", stripslashes($matches[0]));'), $content);
$pattern = "";
$pattern .= "(e|&#(x65|101);?)";
$pattern .= "(x|&#(x78|120);?)";
@ -558,10 +555,15 @@ function conv_content($content, $html)
$pattern .= "(e|&#(x65|101);?)";
$pattern .= "(s|&#(x73|115);?)";
$pattern .= "(s|&#(x73|115);?)";
$pattern .= "(i|&#(x6a|105);?)";
//$pattern .= "(i|&#(x6a|105);?)";
$pattern .= "(i|&#(x69|105);?)";
$pattern .= "(o|&#(x6f|111);?)";
$pattern .= "(n|&#(x6e|110);?)";
$content = preg_replace("/".$pattern."/i", "__EXPRESSION__", $content);
//$content = preg_replace("/".$pattern."/i", "__EXPRESSION__", $content);
$content = preg_replace("/<[^>]*".$pattern."/i", "__EXPRESSION__", $content);
// <IMG STYLE="xss:e\xpression(alert('XSS'))"></IMG> 와 같은 코드에 취약점이 있어 수정함. 121213
$content = preg_replace("/(?<=style)(\s*=\s*[\"\']?xss\:)/i", '="__XSS__', $content);
$content = bad_tag_convert($content);
}
else // text 이면
{
@ -837,6 +839,7 @@ function get_group_select($name, $selected='', $event='')
$result = sql_query($sql);
$str = "<select id=\"$name\" name=\"$name\" $event>\n";
for ($i=0; $row=sql_fetch_array($result); $i++) {
if ($i == 0) $str .= "<option value=\"\">선택</option>";
$str .= option_selected($row['gr_id'], $selected, $row['gr_subject']);
}
$str .= "</select>";
@ -1002,7 +1005,7 @@ function get_sideview($mb_id, $name='', $email='', $homepage='')
$str .= $tmp_name."\n";
if(!G4_IS_MOBILE) {
$str2 = "<span class=\"sv sv_js_off\">\n";
$str2 = "<span class=\"sv\">\n";
if($mb_id)
$str2 .= "<a href=\"".G4_BBS_URL."/memo_form.php?me_recv_mb_id=".$mb_id."\" onclick=\"win_memo(this.href); return false;\">쪽지보내기</a>\n";
if($email)
@ -1024,7 +1027,8 @@ function get_sideview($mb_id, $name='', $email='', $homepage='')
$str2 .= "<a href=\"".G4_ADMIN_URL."/point_list.php?sfl=mb_id&amp;stx=".$mb_id."\" target=\"_blank\">포인트내역</a>\n";
}
$str2 .= "</span>\n";
$str .= $str2;//."\n<noscript class=\"sv_nojs\">".$str2."</noscript>";
$str .= $str2;
$str .= "\n<noscript class=\"sv_nojs\">".$str2."</noscript>";
}
$str .= "</span>";
@ -1307,10 +1311,7 @@ function get_table_define($table, $crlf="\n")
$schema_create .= implode($columns, ', ') . ')';
} // end while
if (strtolower($g4['charset']) == 'utf-8')
$schema_create .= $crlf . ') DEFAULT CHARSET=utf8';
else
$schema_create .= $crlf . ')';
$schema_create .= $crlf . ') DEFAULT CHARSET=utf8';
return $schema_create;
} // end of the 'PMA_getTableDef()' function
@ -1515,13 +1516,6 @@ function cut_hangul_last($hangul)
}
}
// 홀수라면 한글이 반쪽난 상태이므로
if (strtoupper($g4['charset']) != 'UTF-8') {
if ($cnt%2) {
$hangul = substr($hangul, 0, $cnt-1);
}
}
return $hangul;
}
@ -1552,9 +1546,7 @@ function bad_tag_convert($code)
$code);
}
//return preg_replace("/\<([\/]?)(script|iframe)([^\>]*)\>/i", "&lt;$1$2$3&gt;", $code);
// script 나 iframe 태그를 막지 않는 경우 필터링이 되도록 수정
return preg_replace("/\<([\/]?)(script|iframe)([^\>]*)\>?/i", "&lt;$1$2$3&gt;", $code);
return preg_replace("/\<([\/]?)(script|iframe|form)([^\>]*)\>?/i", "&lt;$1$2$3&gt;", $code);
}
@ -1733,8 +1725,10 @@ function check_device($device)
// 게시판 최신글 캐시 파일 삭제
function delete_cache_latest($bo_table)
{
foreach (glob(G4_DATA_PATH.'/cache/latest-'.$bo_table.'-*') as $filename) {
unlink($filename);
$files = glob(G4_DATA_PATH.'/cache/latest-'.$bo_table.'-*');
if (is_array($files)) {
foreach ($files as $filename)
unlink($filename);
}
}
@ -1745,8 +1739,10 @@ function delete_board_thumbnail($bo_table, $file)
return;
$fn = preg_replace("/\.[^\.]+$/i", "", basename($file));
foreach(glob(G4_DATA_PATH.'/file/'.$bo_table.'/thumb-'.$fn.'*') as $file) {
unlink($file);
$files = glob(G4_DATA_PATH.'/file/'.$bo_table.'/thumb-'.$fn.'*');
if (is_array($files)) {
foreach ($files as $filename)
unlink($filename);
}
}
@ -1757,7 +1753,7 @@ function get_editor_image($contents)
return false;
// $contents 중 img 태그 추출
$pattern = "/<img[^>]*src=[\'\"]?([^>\'\"]+".str_replace(".", "\.", $_SERVER['HTTP_HOST'])."[^>\'\"]+)[\'\"]?[^>]*>/";
$pattern = "/<img[^>]*src=[\'\"]?([^>\'\"]+[^>\'\"]+)[\'\"]?[^>]*>/";
preg_match_all($pattern, $contents, $matchs);
return $matchs;
@ -1782,9 +1778,10 @@ function delete_editor_thumbnail($contents)
$filename = preg_replace("/\.[^\.]+$/i", "", basename($srcfile));
$filepath = dirname($srcfile);
foreach(glob($filepath.'/thumb-'.$filename.'*') as $file) {
unlink($file);
$files = glob($filepath.'/thumb-'.$filename.'*');
if (is_array($files)) {
foreach($files as $filename)
unlink($filename);
}
}
}
@ -1795,16 +1792,9 @@ function get_skin_stylesheet($skin_path)
if(!$skin_path)
return "";
$doc_root = realpath($_SERVER['DOCUMENT_ROOT']);
$skin_path = realpath($skin_path);
$str = "";
$p = parse_url(G4_URL);
$skin_url = $p['scheme'].'://'.$p['host'];
if(isset($p['port']))
$skin_url .= ':'.$p['port'];
$skin_url .= str_replace("\\", "/", str_replace($doc_root, "", $skin_path));
$skin_url = G4_URL.str_replace("\\", "/", str_replace(G4_PATH, "", $skin_path));
if(is_dir($skin_path)) {
if($dh = opendir($skin_path)) {

View File

@ -5,6 +5,7 @@ if (!defined('_GNUBOARD_')) exit;
function latest($skin_dir='', $bo_table, $rows=10, $subject_len=40)
{
global $g4;
static $css = array();
if (!$skin_dir) $skin_dir = 'basic';
@ -38,6 +39,12 @@ function latest($skin_dir='', $bo_table, $rows=10, $subject_len=40)
include_once($cache_file);
// 같은 스킨은 .css 를 한번만 호출한다.
if (!in_array($skin_dir, $css)) {
echo '<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">';
$css[] = $skin_dir;
}
ob_start();
include $latest_skin_path.'/latest.skin.php';
$content = ob_get_contents();

View File

@ -11,9 +11,8 @@ function mailer($fname, $fmail, $to, $subject, $content, $type=0, $file='', $cc=
// 메일발송 사용을 하지 않는다면
if (!$config['cf_email_use']) return;
$fname = "=?$g4[charset]?B?" . base64_encode($fname) . "?=";
$subject = "=?$g4[charset]?B?" . base64_encode($subject) . "?=";
//$g4[charset] = ($g4[charset] != "") ? "charset=$g4[charset]" : "";
$fname = "=?utf-8?B?" . base64_encode($fname) . "?=";
$subject = "=?utf-8?B?" . base64_encode($subject) . "?=";
$header = "Return-Path: <$fmail>\n";
$header .= "From: $fname <$fmail>\n";
@ -31,11 +30,11 @@ function mailer($fname, $fmail, $to, $subject, $content, $type=0, $file='', $cc=
}
if ($type) {
$header .= "Content-Type: TEXT/HTML; charset=$g4[charset]\n";
$header .= "Content-Type: TEXT/HTML; charset=utf-8\n";
if ($type == 2)
$content = nl2br($content);
} else {
$header .= "Content-Type: TEXT/PLAIN; charset=$g4[charset]\n";
$header .= "Content-Type: TEXT/PLAIN; charset=utf-8\n";
$content = stripslashes($content);
}
$header .= "Content-Transfer-Encoding: BASE64\n\n";

View File

@ -4,15 +4,19 @@ if (!defined('_GNUBOARD_')) exit;
// 설문조사
function poll($skin_dir='basic', $po_id=false)
{
global $config, $member, $g4;
global $config, $member, $g4, $is_admin;
// 투표번호가 넘어오지 않았다면 가장 큰(최근에 등록한) 투표번호를 얻는다
if (empty($po_id)) {
$po_id = $config['cf_max_po_id'];
if (empty($po_id))
return "<!-- po_id를 찾을 수 없습니다. -->";
if (!$po_id) {
$row = sql_fetch(" select MAX(po_id) as max_po_id from {$g4['poll_table']} ");
$po_id = $row['max_po_id'];
}
if(!$po_id)
return;
$po = sql_fetch(" select * from {$g4['poll_table']} where po_id = '$po_id' ");
ob_start();
if (G4_IS_MOBILE) {
$poll_skin_path = G4_MOBILE_PATH.'/'.G4_SKIN_DIR.'/poll/'.$skin_dir;

View File

@ -9,9 +9,71 @@ function it_img_thumb($filename, $filepath, $thumb_width, $thumb_height, $is_cre
}
// 게시글리스트 썸네일 생성
function get_list_thumbnail($filename, $filepath, $thumb_width, $thumb_height, $is_create=false, $is_crop=true)
function get_list_thumbnail($bo_table, $wr_id, $thumb_width, $thumb_height, $is_create=false, $is_crop=true)
{
return thumbnail($filename, $filepath, $filepath, $thumb_width, $thumb_height, $is_create, $is_crop);
global $g4, $config;
$filename = $alt = "";
$edt = false;
$sql = " select bf_file, bf_content from {$g4['board_file_table']}
where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_type between '1' and '3' order by bf_no limit 0, 1 ";
$row = sql_fetch($sql);
if($row['bf_file']) {
$filename = $row['bf_file'];
$filepath = G4_DATA_PATH.'/file/'.$bo_table;
$src_url = G4_DATA_URL.'/file/'.$bo_table;
$alt = get_text($row['bf_content']);
} else {
$write_table = $g4['write_prefix'].$bo_table;
$sql = " select wr_content from $write_table where wr_id = '$wr_id' ";
$write = sql_fetch($sql);
$matchs = get_editor_image($write['wr_content']);
$edt = true;
for($i=0; $i<count($matchs[1]); $i++)
{
// 이미지 path 구함
$src_url = $matchs[1][$i];
if(!stristr($src_url, G4_URL) || stripos($src_url, G4_URL) != 0)
continue;
$srcfile = G4_PATH.str_replace(G4_URL, "", $matchs[1][$i]);
if(preg_match("/\.({$config['cf_image_extension']})$/i", $srcfile) && is_file($srcfile)) {
$size = @getimagesize($srcfile);
if(empty($size))
continue;
$filename = basename($srcfile);
$filepath = dirname($srcfile);
preg_match("/alt=[\"\']?([^\"\']*)[\"\']?/", $matchs[0][$i], $malt);
$alt = get_text($malt[1]);
break;
}
}
}
if(!$filename)
return false;
$tname = thumbnail($filename, $filepath, $filepath, $thumb_width, $thumb_height, $is_create, $is_crop);
if($tname) {
if($edt) {
$src = str_replace($filename, $tname, $src_url);
} else {
$src = $src_url.'/'.$tname;
}
} else {
return false;
}
$thumb = array("src"=>$src, "alt"=>$alt);
return $thumb;
}
// 게시글보기 썸네일 생성
@ -38,13 +100,15 @@ function get_view_thumbnail($contents)
// $contents 중 img 태그 추출
$matchs = get_editor_image($contents);
if(!$matchs)
if(empty($matchs))
return $contents;
for($i=0; $i<count($matchs[1]); $i++) {
if(!stristr($matchs[1][$i], G4_URL) || stripos($matchs[1][$i], G4_URL) != 0)
continue;
// 이미지 path 구함
$imgurl = parse_url($matchs[1][$i]);
$srcfile = $_SERVER['DOCUMENT_ROOT'].$imgurl['path'];
$srcfile = G4_PATH.str_replace(G4_URL, "", $matchs[1][$i]);
if(is_file($srcfile)) {
// 썸네일 높이
@ -89,7 +153,8 @@ function get_view_thumbnail($contents)
// $img_tag에 editor 경로가 있으면 원본보기 링크 추가
if(strpos($matchs[1][$i], 'data/editor') && preg_match("/\.({$config['cf_image_extension']})$/i", $filename)) {
$thumb_tag = '<a href="'.G4_BBS_URL.'/view_image.php?fn='.urlencode($imgurl['path']).'" target="_blank" class="view_image">'.$thumb_tag.'</a>';
$imgurl = str_replace(G4_URL, "", $matchs[1][$i]);
$thumb_tag = '<a href="'.G4_BBS_URL.'/view_image.php?fn='.urlencode($imgurl).'" target="_blank" class="view_image">'.$thumb_tag.'</a>';
}
$contents = str_replace($img_tag, $thumb_tag, $contents);
@ -104,6 +169,8 @@ function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_h
{
global $g4;
if ($thumb_width==0 || $thumb_height==0) return;
$thumb_filename = preg_replace("/\.[^\.]+$/i", "", $filename); // 확장자제거
if (!is_dir($target_path)) {

View File

@ -40,12 +40,7 @@ function get_brow($agent)
//echo $agent; echo "<br/>";
if (preg_match("/msie 5.0[0-9]*/", $agent)) { $s = "MSIE 5.0"; }
else if(preg_match("/msie 5.5[0-9]*/", $agent)) { $s = "MSIE 5.5"; }
else if(preg_match("/msie 6.0[0-9]*/", $agent)) { $s = "MSIE 6.0"; }
else if(preg_match("/msie 7.0[0-9]*/", $agent)) { $s = "MSIE 7.0"; }
else if(preg_match("/msie 8.0[0-9]*/", $agent)) { $s = "MSIE 8.0"; }
else if(preg_match("/msie 4.[0-9]*/", $agent)) { $s = "MSIE 4.x"; }
if (preg_match("/msie ([1-9][0-9]\.[0-9]+)/", $agent, $m)) { $s = 'MSIE '.$m[1]; }
else if(preg_match("/firefox/", $agent)) { $s = "FireFox"; }
else if(preg_match("/chrome/", $agent)) { $s = "Chrome"; }
else if(preg_match("/x11/", $agent)) { $s = "Netscape"; }
@ -73,6 +68,7 @@ function get_os($agent)
else if(preg_match("/windows nt 5\.2/", $agent)) { $s = "2003"; }
else if(preg_match("/windows nt 6\.0/", $agent)) { $s = "Vista"; }
else if(preg_match("/windows nt 6\.1/", $agent)) { $s = "Windows7"; }
else if(preg_match("/windows nt 6\.2/", $agent)) { $s = "Windows8"; }
else if(preg_match("/windows 9x/", $agent)) { $s = "ME"; }
else if(preg_match("/windows ce/", $agent)) { $s = "CE"; }
else if(preg_match("/mac/", $agent)) { $s = "MAC"; }

View File

@ -140,7 +140,7 @@ if ($is_nogood) $colspan++;
<option value="wr_name,1"<?=get_selected($sfl, 'wr_name,1');?>>글쓴이</option>
<option value="wr_name,0"<?=get_selected($sfl, 'wr_name,0');?>>글쓴이(코)</option>
</select>
<input name="stx" value="<?=stripslashes($stx)?>" title="검색어(필수)" required class="required" size="15" maxlength="15">
<input name="stx" value="<?=stripslashes($stx)?>" title="검색어(필수)" required class="required" size="15" maxlength="15">
<input type="submit" value="검색">
</form>
</fieldset>

View File

@ -1,5 +1,16 @@
/* 게시판 목록 */
#bo_list_title {padding:0 1em}
#bo_cate h2 {width:0;height:0;font-size:0;line-height:0;overflow:hidden}
#bo_cate ul {margin:0.5em 1em;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:0.4em 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 table {margin-bottom:1.5em;width:100%;border-collapse:collapse;border-spacing:0}
.bo_list th {}

View File

@ -40,7 +40,7 @@ include_once(G4_LIB_PATH.'/thumbnail.lib.php');
if (isset($view['file'][$i]['source']) && $view['file'][$i]['source'] && !$view['file'][$i]['view']) {
?>
<li>
<a href="<? echo $view['file'][$i]['href']; ?>" onclick="javascript:file_download('<? echo $view['file'][$i]['href'].'&amp;confirm=yes'; ?>', '<?=$view['file'][$i]['source']?>'); return false;">
<a href="<? echo $view['file'][$i]['href']; ?>" class="view_file_download">
<img src="<?=$board_skin_url?>/img/icon_file.gif" alt="첨부파일">
<strong><?=$view['file'][$i]['source']?></strong>
<span> (<?=$view['file'][$i]['size']?>)</span>
@ -183,10 +183,22 @@ include_once(G4_LIB_PATH.'/thumbnail.lib.php');
<script>
function file_download(link, file) {
<? if ($board['bo_download_point'] < 0) { ?>if (confirm("'"+file+"' 파일을 다운로드 하시면 포인트가 차감(<?=number_format($board['bo_download_point'])?>점)됩니다.\n\n포인트는 게시물당 한번만 차감되며 다음에 다시 다운로드 하셔도 중복하여 차감하지 않습니다.\n\n그래도 다운로드 하시겠습니까?"))<?}?>
document.location.href=link;
}
<? if ($board['bo_download_point'] < 0) { ?>
$(function() {
$("a.view_file_download").click(function() {
var msg = "파일을 다운로드 하시면 포인트가 차감(<?=number_format($board['bo_download_point'])?>점)됩니다.\n\n포인트는 게시물당 한번만 차감되며 다음에 다시 다운로드 하셔도 중복하여 차감하지 않습니다.\n\n그래도 다운로드 하시겠습니까?";
if(confirm(msg)) {
var href = $(this).attr("href")+"&js=on";
$(this).attr("href", href);
return true;
} else {
return false;
}
});
});
<?}?>
function board_move(href)
{

View File

@ -62,7 +62,7 @@ var char_max = parseInt(<?=$comment_max?>); // 최대
<ul class="bo_vc_act">
<? if ($list[$i]['is_reply']) { ?><li><a href="<? echo $c_reply_href; ?>" onclick="comment_box('<?=$comment_id?>', 'c'); return false;">답변</a></li><? } ?>
<? if ($list[$i]['is_edit']) { ?><li><a href="<? echo $c_edit_href; ?>" onclick="comment_box('<?=$comment_id?>', 'cu'); return false;">수정</a></li><? } ?>
<? if ($list[$i]['is_del']) { ?><li><a href="<? echo $list[$i]['del_link']; ?>" onclick="comment_delete('<?=$list[$i]['del_link']?>'); return false;">삭제</a></li><? } ?>
<? if ($list[$i]['is_del']) { ?><li><a href="<? echo $list[$i]['del_link']; ?>" onclick="return comment_delete();">삭제</a></li><? } ?>
</ul>
</footer>
<? } ?>
@ -195,17 +195,17 @@ var char_max = parseInt(<?=$comment_max?>); // 최대
var cnt = parseInt(document.getElementById('char_count').innerHTML);
if (char_min > 0 && char_min > cnt)
{
alert("댓글 "+char_min+"글자 이상 쓰셔야 합니다.");
alert("댓글 "+char_min+"글자 이상 쓰셔야 합니다.");
return false;
} else if (char_max > 0 && char_max < cnt)
{
alert("댓글 "+char_max+"글자 이하로 쓰셔야 합니다.");
alert("댓글 "+char_max+"글자 이하로 쓰셔야 합니다.");
return false;
}
}
else if (!document.getElementById('wr_content').value)
{
alert("댓글 입력하여 주십시오.");
alert("댓글 입력하여 주십시오.");
return false;
}
@ -279,9 +279,9 @@ var char_max = parseInt(<?=$comment_max?>); // 최대
}
}
function comment_delete(url)
function comment_delete()
{
if (confirm("이 댓글 삭제하시겠습니까?")) location.href = url;
return confirm("이 댓글 삭제하시겠습니까?");
}
comment_box('', 'c'); // 댓글 입력폼이 보이도록 처리하기위해서 추가 (root님)

View File

@ -87,13 +87,10 @@ include_once(G4_LIB_PATH.'/thumbnail.lib.php');
<strong style="width:<?=$board['bo_mobile_gallery_width']?>px;height:<?=$board['bo_mobile_gallery_height']?>px">공지</strong>
<?
} else {
$file = get_list_file($bo_table, $list[$i]['wr_id']);
$thumb = get_list_thumbnail($board['bo_table'], $list[$i]['wr_id'], $board['bo_mobile_gallery_width'], $board['bo_mobile_gallery_height']);
$filepath = G4_DATA_PATH.'/file/'.$bo_table;
if(preg_match("/\.({$config['cf_image_extension']})$/i", $file['bf_file']) && is_file($filepath.'/'.$file['bf_file'])) {
$thumb = get_list_thumbnail($file['bf_file'], $filepath, $board['bo_mobile_gallery_width'], $board['bo_mobile_gallery_height']);
$imgsrc = G4_DATA_URL.'/file/'.$bo_table.'/'.$thumb;
$img_content = '<img src="'.$imgsrc.'" alt="'.$file['bf_content'].'" width="'.$board['bo_mobile_gallery_width'].'" height="'.$board['bo_mobile_gallery_height'].'">';
if($thumb['src']) {
$img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" width="'.$board['bo_mobile_gallery_width'].'" height="'.$board['bo_mobile_gallery_height'].'">';
} else {
$img_content = '<span style="width:'.$board['bo_mobile_gallery_width'].'px;height:'.$board['bo_mobile_gallery_height'].'px">no image</span>';
}

View File

@ -2,6 +2,17 @@
#bo_img h2 {margin:0;padding:0;width:0;height:0;font-size:0;line-height:0;overflow:hidden}
#bo_img_list {margin:1em 0 0;padding:0 1em;list-style:none}
#bo_img_list:after {display:block;visibility:hidden;clear:both;content:""}
#bo_cate h2 {width:0;height:0;font-size:0;line-height:0;overflow:hidden}
#bo_cate ul {margin:0.5em 1em;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:0.4em 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_img_list_li {float:left;margin:0 0 2em}
.bo_img_con {margin:0;padding:0;list-style:none}

View File

@ -40,7 +40,7 @@ include_once(G4_LIB_PATH.'/thumbnail.lib.php');
if (isset($view['file'][$i]['source']) && $view['file'][$i]['source'] && !$view['file'][$i]['view']) {
?>
<li>
<a href="<? echo $view['file'][$i]['href']; ?>" onclick="javascript:file_download('<? echo $view['file'][$i]['href'].'&amp;confirm=yes'; ?>', '<?=$view['file'][$i]['source']?>'); return false;">
<a href="<? echo $view['file'][$i]['href']; ?>" class="view_file_download">
<img src="<?=$board_skin_url?>/img/icon_file.gif" alt="첨부파일">
<strong><?=$view['file'][$i]['source']?></strong>
<span> (<?=$view['file'][$i]['size']?>)</span>
@ -182,10 +182,22 @@ include_once(G4_LIB_PATH.'/thumbnail.lib.php');
<script>
function file_download(link, file) {
<? if ($board['bo_download_point'] < 0) { ?>if (confirm("'"+file+"' 파일을 다운로드 하시면 포인트가 차감(<?=number_format($board['bo_download_point'])?>점)됩니다.\n\n포인트는 게시물당 한번만 차감되며 다음에 다시 다운로드 하셔도 중복하여 차감하지 않습니다.\n\n그래도 다운로드 하시겠습니까?"))<?}?>
document.location.href=link;
}
<? if ($board['bo_download_point'] < 0) { ?>
$(function() {
$("a.view_file_download").click(function() {
var msg = "파일을 다운로드 하시면 포인트가 차감(<?=number_format($board['bo_download_point'])?>점)됩니다.\n\n포인트는 게시물당 한번만 차감되며 다음에 다시 다운로드 하셔도 중복하여 차감하지 않습니다.\n\n그래도 다운로드 하시겠습니까?";
if(confirm(msg)) {
var href = $(this).attr("href")+"&js=on";
$(this).attr("href", href);
return true;
} else {
return false;
}
});
});
<?}?>
function board_move(href)
{

View File

@ -62,7 +62,7 @@ var char_max = parseInt(<?=$comment_max?>); // 최대
<ul class="bo_vc_act">
<? if ($list[$i]['is_reply']) { ?><li><a href="<? echo $c_reply_href; ?>" onclick="comment_box('<?=$comment_id?>', 'c'); return false;">답변</a></li><? } ?>
<? if ($list[$i]['is_edit']) { ?><li><a href="<? echo $c_edit_href; ?>" onclick="comment_box('<?=$comment_id?>', 'cu'); return false;">수정</a></li><? } ?>
<? if ($list[$i]['is_del']) { ?><li><a href="<? echo $list[$i]['del_link']; ?>" onclick="comment_delete('<?=$list[$i]['del_link']?>'); return false;">삭제</a></li><? } ?>
<? if ($list[$i]['is_del']) { ?><li><a href="<? echo $list[$i]['del_link']; ?>" onclick="return comment_delete();">삭제</a></li><? } ?>
</ul>
</footer>
<? } ?>
@ -195,17 +195,17 @@ var char_max = parseInt(<?=$comment_max?>); // 최대
var cnt = parseInt(document.getElementById('char_count').innerHTML);
if (char_min > 0 && char_min > cnt)
{
alert("댓글 "+char_min+"글자 이상 쓰셔야 합니다.");
alert("댓글 "+char_min+"글자 이상 쓰셔야 합니다.");
return false;
} else if (char_max > 0 && char_max < cnt)
{
alert("댓글 "+char_max+"글자 이하로 쓰셔야 합니다.");
alert("댓글 "+char_max+"글자 이하로 쓰셔야 합니다.");
return false;
}
}
else if (!document.getElementById('wr_content').value)
{
alert("댓글 입력하여 주십시오.");
alert("댓글 입력하여 주십시오.");
return false;
}
@ -279,9 +279,9 @@ var char_max = parseInt(<?=$comment_max?>); // 최대
}
}
function comment_delete(url)
function comment_delete()
{
if (confirm("이 댓글 삭제하시겠습니까?")) location.href = url;
return confirm("이 댓글 삭제하시겠습니까?");
}
comment_box('', 'c'); // 댓글 입력폼이 보이도록 처리하기위해서 추가 (root님)

View File

@ -130,7 +130,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
</tr>
<? } ?>
<? if ($member['mb_level'] >= $config['cf_icon_level']) { ?>
<? if ($config['cf_use_member_icon'] && $member['mb_level'] >= $config['cf_icon_level']) { ?>
<tr>
<th scope="row"><label for="reg_mb_icon">회원아이콘</label></th>
<td>

View File

@ -60,7 +60,7 @@
#mb_confirm p {padding:1.5em 1em;border-bottom:1px solid #cfded8;border-bottom:0;background:#fff}
#mb_confirm p strong {display:block}
#mb_confirm fieldset {position:relative;margin:0 0 3em;padding:2em 1em;border-bottom:1px solid #cfded8;background:#f7f7f7}
#mb_confirm_pw {display:block;margin-top:1em;padding:0;width:80%;line-height:1.8em}
#mb_confirm_pw {display:block;margin-top:1em;padding:0;width:80%;line-height:1.8em !important}
#mb_confirm .btn_submit {position:absolute;bottom:2em;right:1em;width:18%;height:1.9em !important;line-height:1.9em}
/* 비밀글 패스워드 확인 */
@ -69,7 +69,7 @@
#pw_confirm p {padding:1.5em 1em;border-bottom:1px solid #cfded8;border-bottom:0;background:#fff}
#pw_confirm p strong {display:block}
#pw_confirm fieldset {position:relative;margin:0 0 3em;padding:0.5em 0.5em 1em;border-bottom:1px solid #cfded8;background:#f7f7f7}
#pw_wr_password {display:block;margin-top:1em;padding:0;width:80%;line-height:1.8em}
#pw_wr_password {display:block;margin-top:1em;padding:0;width:80%;line-height:1.8em !important}
#pw_confirm .btn_submit {position:absolute;bottom:1em;right:0.5em;width:18%;height:1.9em !important;line-height:1.9em}
/* 폼메일 */

View File

@ -109,6 +109,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
</th>
<td>
<input type="text" name="mb_zip1"value="<?=$member['mb_zip1']?>" id="reg_mb_zip1" title="우편번호 앞자리" class="frm_input <?=$config['cf_req_addr']?"required":"";?>" size="2" maxlength="3" <?=$config['cf_req_addr']?"required":"";?> >
-
<input type="text" name="mb_zip2" value="<?=$member['mb_zip2']?>" id="reg_mb_zip2" title="우편번호 뒷자리" class="frm_input <?=$config['cf_req_addr']?"required":"";?>" size="2" maxlength="3" <?=$config['cf_req_addr']?"required":"";?>>
<a href="<? echo $zip_href; ?>" target="_blank" id="reg_zip_find" class="btn_frmline win_zip_find">주소찾기</a>
<input type="text" name="mb_addr1" value="<?=$member['mb_addr1']?>" id="reg_mb_addr1" title="행정구역주소" class="frm_input frm_address <?=$config['cf_req_addr']?"required":"";?>" size="50" <?=$config['cf_req_addr']?"required":"";?>>
@ -134,7 +135,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
</tr>
<? } ?>
<? if ($member['mb_level'] >= $config['cf_icon_level']) { ?>
<? if ($config['cf_use_member_icon'] && $member['mb_level'] >= $config['cf_icon_level']) { ?>
<tr>
<th scope="row"><label for="reg_mb_icon">회원아이콘</label></th>
<td>

View File

@ -10,8 +10,8 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
<form name="foutlogin" action="<?=$outlogin_action_url?>" onsubmit="return fhead_submit(this);" method="post" autocomplete="off">
<fieldset>
<input type="hidden" name="url" value="<?=$outlogin_url?>">
<input type="text" name="mb_id" id="ol_id" title="회원아이디(필수)" placeholder="회원아이디(필수)" required class="required" maxlength="20">
<input type="password" id="ol_pw" name="mb_password" title="패스워드(필수)" placeholder="패스워드(필수)" required class="required" maxlength="20">
<input type="text" name="mb_id" id="ol_id" placeholder="회원아이디(필수)" required class="required" maxlength="20">
<input type="password" id="ol_pw" name="mb_password" placeholder="패스워드(필수)" required class="required" maxlength="20">
<input type="submit" id="ol_submit" value="로그인">
<div id="ol_svc">
<input type="checkbox" id="auto_login" name="auto_login" value="1">

View File

@ -1,19 +1,8 @@
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
global $is_admin;
// 투표번호가 넘어오지 않았다면 가장 큰(최근에 등록한) 투표번호를 얻는다
if (!$po_id) {
$po_id = $config['cf_max_po_id'];
if (!$po_id) return;
}
$po = sql_fetch(" select * from {$g4['poll_table']} where po_id = '$po_id' ");
?>
<form name="fpoll" action="<?=G4_BBS_URL?>/poll_update.php" onsubmit="return fpoll_submit(this);" target="win_poXll" method="post">
<form name="fpoll" action="<?=G4_BBS_URL?>/poll_update.php" onsubmit="return fpoll_submit(this);" target="win_poll" method="post">
<input type="hidden" name="po_id" value="<?=$po_id?>">
<input type="hidden" name="skin_dir" value="<?=$skin_dir?>">
<section id="poll">
@ -55,7 +44,7 @@ function fpoll_submit(f)
return false;
}
win_poll();
win_poll(f.action);
return true;
}

View File

@ -33,7 +33,10 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
<?=visit("basic"); // 방문자수 ?>
<div id="ft_catch"><a href="<?=$g4['url']?>/"><img src="<?=G4_IMG_URL?>/ft_catch.jpg" alt="Sharing All Possibilities"></a></div>
<div id="ft_copy">
<p>Copyright &copy; <b>소유하신 도메인.</b> All rights reserved.</p>
<p>
Copyright &copy; <b>소유하신 도메인.</b> All rights reserved.<br>
<a href="#">상단으로</a>
</p>
</div>
</footer>

View File

@ -160,8 +160,8 @@ if ($is_nogood) $colspan++;
<option value="wr_name,1"<?=get_selected($sfl, 'wr_name,1');?>>글쓴이</option>
<option value="wr_name,0"<?=get_selected($sfl, 'wr_name,0');?>>글쓴이(코)</option>
</select>
<input type="text" name="stx" value="<?=stripslashes($stx)?>" title="검색어(필수)" required class="fs_input required" size="15" maxlength="15">
<input type="submit" value="검색" class="fs_submit">
<input type="text" name="stx" value="<?=stripslashes($stx)?>" title="검색어(필수)" required class="frm_input required" size="15" maxlength="15">
<input type="submit" value="검색" class="btn_submit">
</form>
</fieldset>

View File

@ -40,7 +40,7 @@ include_once(G4_LIB_PATH.'/thumbnail.lib.php');
if (isset($view['file'][$i]['source']) && $view['file'][$i]['source'] && !$view['file'][$i]['view']) {
?>
<li>
<a href="<? echo $view['file'][$i]['href']; ?>" onclick="javascript:file_download('<? echo $view['file'][$i]['href'].'&amp;confirm=yes'; ?>', '<?=$view['file'][$i]['source']?>'); return false;">
<a href="<? echo $view['file'][$i]['href']; ?>" class="view_file_download">
<img src="<?=$board_skin_url?>/img/icon_file.gif" alt="첨부파일">
<strong><?=$view['file'][$i]['source']?></strong>
<span> (<?=$view['file'][$i]['size']?>)</span>
@ -184,10 +184,22 @@ include_once(G4_LIB_PATH.'/thumbnail.lib.php');
<script>
function file_download(link, file) {
<? if ($board['bo_download_point'] < 0) { ?>if (confirm("'"+file+"' 파일을 다운로드 하시면 포인트가 차감(<?=number_format($board['bo_download_point'])?>점)됩니다.\n\n포인트는 게시물당 한번만 차감되며 다음에 다시 다운로드 하셔도 중복하여 차감하지 않습니다.\n\n그래도 다운로드 하시겠습니까?"))<?}?>
document.location.href=link;
}
<? if ($board['bo_download_point'] < 0) { ?>
$(function() {
$("a.view_file_download").click(function() {
var msg = "파일을 다운로드 하시면 포인트가 차감(<?=number_format($board['bo_download_point'])?>점)됩니다.\n\n포인트는 게시물당 한번만 차감되며 다음에 다시 다운로드 하셔도 중복하여 차감하지 않습니다.\n\n그래도 다운로드 하시겠습니까?";
if(confirm(msg)) {
var href = $(this).attr("href")+"&js=on";
$(this).attr("href", href);
return true;
} else {
return false;
}
});
});
<?}?>
function board_move(href)
{

View File

@ -62,7 +62,7 @@ var char_max = parseInt(<?=$comment_max?>); // 최대
<ul class="bo_vc_act">
<? if ($list[$i]['is_reply']) { ?><li><a href="<? echo $c_reply_href; ?>" onclick="comment_box('<?=$comment_id?>', 'c'); return false;">답변</a></li><? } ?>
<? if ($list[$i]['is_edit']) { ?><li><a href="<? echo $c_edit_href; ?>" onclick="comment_box('<?=$comment_id?>', 'cu'); return false;">수정</a></li><? } ?>
<? if ($list[$i]['is_del']) { ?><li><a href="<? echo $list[$i]['del_link']; ?>" onclick="comment_delete('<?=$list[$i]['del_link']?>'); return false;">삭제</a></li><? } ?>
<? if ($list[$i]['is_del']) { ?><li><a href="<? echo $list[$i]['del_link']; ?>" onclick="return comment_delete();">삭제</a></li><? } ?>
</ul>
</footer>
<? } ?>
@ -195,17 +195,17 @@ var char_max = parseInt(<?=$comment_max?>); // 최대
var cnt = parseInt(document.getElementById('char_count').innerHTML);
if (char_min > 0 && char_min > cnt)
{
alert("댓글 "+char_min+"글자 이상 쓰셔야 합니다.");
alert("댓글 "+char_min+"글자 이상 쓰셔야 합니다.");
return false;
} else if (char_max > 0 && char_max < cnt)
{
alert("댓글 "+char_max+"글자 이하로 쓰셔야 합니다.");
alert("댓글 "+char_max+"글자 이하로 쓰셔야 합니다.");
return false;
}
}
else if (!document.getElementById('wr_content').value)
{
alert("댓글 입력하여 주십시오.");
alert("댓글 입력하여 주십시오.");
return false;
}
@ -279,9 +279,9 @@ var char_max = parseInt(<?=$comment_max?>); // 최대
}
}
function comment_delete(url)
function comment_delete()
{
if (confirm("이 댓글 삭제하시겠습니까?")) location.href = url;
return confirm("이 댓글 삭제하시겠습니까?");
}
comment_box('', 'c'); // 댓글 입력폼이 보이도록 처리하기위해서 추가 (root님)

View File

@ -161,21 +161,6 @@ if ($is_admin)
}
?>
with (document.fwrite)
{
if (typeof(wr_name) != "undefined")
wr_name.focus();
else if (typeof(wr_subject) != "undefined")
wr_subject.focus();
else if (typeof(wr_content) != "undefined")
wr_content.focus();
if (typeof(ca_name) != "undefined")
if (w.value == "u") {
ca_name.value = "<?=isset($write['ca_name'])?$write['ca_name']:'';?>";
}
}
function html_auto_br(obj)
{
if (obj.checked) {

View File

@ -46,13 +46,13 @@ include_once(G4_LIB_PATH.'/thumbnail.lib.php');
<ul id="bo_img_list">
<? for ($i=0; $i<count($list); $i++) {
if($i>0 && ($i % $board['bo_gallery_cols'] == 0))
if($i>0 && ($i % $bo_gallery_cols == 0))
$style = 'clear:both;';
else
$style = '';
if ($i == 0) $k = 0;
$k += 1;
if ($k % $board['bo_gallery_cols'] == 0) $style .= "margin:0 !important;";
if ($k % $bo_gallery_cols == 0) $style .= "margin:0 !important;";
?>
<li class="bo_img_list_li <? if ($wr_id == $list[$i]['wr_id']) { ?>bo_img_now<? } ?>" style="<?=$style?>">
<? if ($is_checkbox) { ?><input type="checkbox" name="chk_wr_id[]" value="<?=$list[$i]['wr_id']?>" title="<?=$list[$i]['wr_subject']?> 선택"><? } ?>
@ -72,13 +72,10 @@ include_once(G4_LIB_PATH.'/thumbnail.lib.php');
<strong style="width:<?=$board['bo_gallery_width']?>px;height:<?=$board['bo_gallery_height']?>px">공지</strong>
<?
} else {
$file = get_list_file($bo_table, $list[$i]['wr_id']);
$thumb = get_list_thumbnail($board['bo_table'], $list[$i]['wr_id'], $board['bo_gallery_width'], $board['bo_gallery_height']);
$filepath = G4_DATA_PATH.'/file/'.$bo_table;
if(preg_match("/\.({$config['cf_image_extension']})$/i", $file['bf_file']) && is_file($filepath.'/'.$file['bf_file'])) {
$thumb = get_list_thumbnail($file['bf_file'], $filepath, $board['bo_gallery_width'], $board['bo_gallery_height']);
$imgsrc = G4_DATA_URL.'/file/'.$bo_table.'/'.$thumb;
$img_content = '<img src="'.$imgsrc.'" alt="'.$file['bf_content'].'" width="'.$board['bo_gallery_width'].'" height="'.$board['bo_gallery_height'].'">';
if($thumb['src']) {
$img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" width="'.$board['bo_gallery_width'].'" height="'.$board['bo_gallery_height'].'">';
} else {
$img_content = '<span style="width:'.$board['bo_gallery_width'].'px;height:'.$board['bo_gallery_height'].'px">no image</span>';
}
@ -168,8 +165,8 @@ include_once(G4_LIB_PATH.'/thumbnail.lib.php');
<option value="wr_name,1"<?=get_selected($sfl, "wr_name,1");?>>글쓴이</option>
<option value="wr_name,0"<?=get_selected($sfl, "wr_name,0");?>>글쓴이(코)</option>
</select>
<input type="text" name="stx" value="<?=stripslashes($stx)?>" title="검색어(필수)" required class="fs_input required" size="15" maxlength="15">
<input type="submit" class="fs_submit" value="검색">
<input type="text" name="stx" value="<?=stripslashes($stx)?>" title="검색어(필수)" required class="frm_input required" size="15" maxlength="15">
<input type="submit" value="검색" class="btn_submit">
</form>
</fieldset>

View File

@ -53,7 +53,6 @@
.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}
.cnt_cmt {font-weight:bold}
#bo_sch {margin-bottom:10px;padding-top:5px;text-align:center}
#bo_sch legend {width:1px;height:1px;font-size:0;line-height:0;overflow:hidden}

View File

@ -40,7 +40,7 @@ include_once(G4_LIB_PATH.'/thumbnail.lib.php');
if (isset($view['file'][$i]['source']) && $view['file'][$i]['source'] && !$view['file'][$i]['view']) {
?>
<li>
<a href="<? echo $view['file'][$i]['href']; ?>" onclick="javascript:file_download('<? echo $view['file'][$i]['href'].'&amp;confirm=yes'; ?>', '<?=$view['file'][$i]['source']?>'); return false;">
<a href="<? echo $view['file'][$i]['href']; ?>" class="view_file_download">
<img src="<?=$board_skin_url?>/img/icon_file.gif" alt="첨부파일">
<strong><?=$view['file'][$i]['source']?></strong>
<span> (<?=$view['file'][$i]['size']?>)</span>
@ -182,10 +182,22 @@ include_once(G4_LIB_PATH.'/thumbnail.lib.php');
<script>
function file_download(link, file) {
<? if ($board['bo_download_point'] < 0) { ?>if (confirm("'"+file+"' 파일을 다운로드 하시면 포인트가 차감(<?=number_format($board['bo_download_point'])?>점)됩니다.\n\n포인트는 게시물당 한번만 차감되며 다음에 다시 다운로드 하셔도 중복하여 차감하지 않습니다.\n\n그래도 다운로드 하시겠습니까?"))<?}?>
document.location.href=link;
}
<? if ($board['bo_download_point'] < 0) { ?>
$(function() {
$("a.view_file_download").click(function() {
var msg = "파일을 다운로드 하시면 포인트가 차감(<?=number_format($board['bo_download_point'])?>점)됩니다.\n\n포인트는 게시물당 한번만 차감되며 다음에 다시 다운로드 하셔도 중복하여 차감하지 않습니다.\n\n그래도 다운로드 하시겠습니까?";
if(confirm(msg)) {
var href = $(this).attr("href")+"&js=on";
$(this).attr("href", href);
return true;
} else {
return false;
}
});
});
<?}?>
function board_move(href)
{

View File

@ -62,7 +62,7 @@ var char_max = parseInt(<?=$comment_max?>); // 최대
<ul class="bo_vc_act">
<? if ($list[$i]['is_reply']) { ?><li><a href="<? echo $c_reply_href; ?>" onclick="comment_box('<?=$comment_id?>', 'c'); return false;">답변</a></li><? } ?>
<? if ($list[$i]['is_edit']) { ?><li><a href="<? echo $c_edit_href; ?>" onclick="comment_box('<?=$comment_id?>', 'cu'); return false;">수정</a></li><? } ?>
<? if ($list[$i]['is_del']) { ?><li><a href="<? echo $list[$i]['del_link']; ?>" onclick="comment_delete('<?=$list[$i]['del_link']?>'); return false;">삭제</a></li><? } ?>
<? if ($list[$i]['is_del']) { ?><li><a href="<? echo $list[$i]['del_link']; ?>" onclick="return comment_delete();">삭제</a></li><? } ?>
</ul>
</footer>
<? } ?>
@ -195,17 +195,17 @@ var char_max = parseInt(<?=$comment_max?>); // 최대
var cnt = parseInt(document.getElementById('char_count').innerHTML);
if (char_min > 0 && char_min > cnt)
{
alert("댓글 "+char_min+"글자 이상 쓰셔야 합니다.");
alert("댓글 "+char_min+"글자 이상 쓰셔야 합니다.");
return false;
} else if (char_max > 0 && char_max < cnt)
{
alert("댓글 "+char_max+"글자 이하로 쓰셔야 합니다.");
alert("댓글 "+char_max+"글자 이하로 쓰셔야 합니다.");
return false;
}
}
else if (!document.getElementById('wr_content').value)
{
alert("댓글 입력하여 주십시오.");
alert("댓글 입력하여 주십시오.");
return false;
}
@ -279,9 +279,9 @@ var char_max = parseInt(<?=$comment_max?>); // 최대
}
}
function comment_delete(url)
function comment_delete()
{
if (confirm("이 댓글 삭제하시겠습니까?")) location.href = url;
return confirm("이 댓글 삭제하시겠습니까?");
}
comment_box('', 'c'); // 댓글 입력폼이 보이도록 처리하기위해서 추가 (root님)

View File

@ -2,8 +2,6 @@
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
?>
<link rel="stylesheet" href="<?=$latest_skin_url?>/style.css">
<div class="lt">
<strong class="lt_title"><a href="<?=G4_BBS_URL?>/board.php?bo_table=<?=$bo_table?>"><?=$bo_subject?></a></strong>
<ul>

View File

@ -44,7 +44,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
</tr>
<tr>
<th scope="row"><label for="file1">첨부 1</label></th>
<td><input type="file"name="file1" id="file1" class="frm_input"></td>
<td><input type="file" name="file1" id="file1" class="frm_input"></td>
</tr>
<tr>
<th scope="row"><label for="file2">첨부 2</label></th>

View File

@ -19,8 +19,8 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
<span id="mb_confirm_id"><?=$member[mb_id]?></span>
<label for="confirm_mb_password">패스워드<strong class="sound_only">필수</strong></label>
<input type="password" name="mb_password" id="confirm_mb_password" required class="required fs_input" size="15" maxLength="20">
<input type="submit" value="확인" id="btn_submit" class="fs_submit">
<input type="password" name="mb_password" id="confirm_mb_password" required class="required frm_input" size="15" maxLength="20">
<input type="submit" value="확인" id="btn_submit" class="btn_submit">
</fieldset>
</form>

View File

@ -33,8 +33,8 @@ else $g4['title'] = $g4['title'];
<fieldset>
<label for="pw_wr_password">패스워드<strong class="sound_only">필수</strong></label>
<input type="password" name="wr_password" id="password_wr_password" required class="fs_input required" size="15" maxLength="20">
<input type="submit" value="확인" class="fs_submit">
<input type="password" name="wr_password" id="password_wr_password" required class="frm_input required" size="15" maxLength="20">
<input type="submit" value="확인" class="btn_submit">
</fieldset>
</form>

View File

@ -60,7 +60,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
<? } ?>
<tr>
<th scope="row"><label for="reg_mb_email">E-mail<? if ($config['cf_use_email_certify']) {?><strong class="sound_only">필수</strong><?}?></label></th>
<th scope="row"><label for="reg_mb_email">E-mail<strong class="sound_only">필수</strong></label></th>
<td>
<? if ($config['cf_use_email_certify']) { ?>
<span class="frm_info">
@ -69,28 +69,28 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
</span>
<? } ?>
<input type="hidden" name="old_email" value="<?=$member['mb_email']?>">
<input type="text" name="mb_email" value="<?=isset($member['mb_email'])?$member['mb_email']:'';?>" id="reg_mb_email" class="frm_input email <?=$config['cf_use_email_certify']?"required":"";?>" size="50" maxlength="100" <?=$config['cf_use_email_certify']?"required":"";?>>
<input type="text" name="mb_email" value="<?=isset($member['mb_email'])?$member['mb_email']:'';?>" id="reg_mb_email" required class="frm_input email required" size="50" maxlength="100">
</td>
</tr>
<? if ($config['cf_use_homepage']) { ?>
<tr>
<th scope="row"><label for="reg_mb_homepage">홈페이지<? if ($config['cf_req_homepage']){?><strong class="sound_only">필수</strong><?}?></label></th>
<td><input type="text" name="mb_homepage" value="<?=$member['mb_homepage']?>" id="reg_mb_homepage" class="frm_input <?=$config['cf_req_homepage']?"required":"";?>" size="50" maxlength="255" <?=$config['cf_req_homepage']?"required":"";?>></td>
<td><input type="text" name="mb_homepage" value="<?=$member['mb_homepage']?>" id="reg_mb_homepage" <?=$config['cf_req_homepage']?"required":"";?> class="frm_input <?=$config['cf_req_homepage']?"required":"";?>" size="50" maxlength="255"></td>
</tr>
<? } ?>
<? if ($config['cf_use_tel']) { ?>
<tr>
<th scope="row"><label for="reg_mb_tel">전화번호<? if ($config['cf_req_tel']) {?><strong class="sound_only">필수</strong><?}?></label></th>
<td><input type="text" name="mb_tel" value="<?=$member['mb_tel']?>" id="reg_mb_tel" class="frm_input <?=$config['cf_req_tel']?"required":"";?>" maxlength="20" <?=$config['cf_req_tel']?"required":"";?>></td>
<td><input type="text" name="mb_tel" value="<?=$member['mb_tel']?>" id="reg_mb_tel" <?=$config['cf_req_tel']?"required":"";?> class="frm_input <?=$config['cf_req_tel']?"required":"";?>" maxlength="20"></td>
</tr>
<? } ?>
<? if ($config['cf_use_hp']) { ?>
<tr>
<tr>
<th scope="row"><label for="reg_mb_hp">핸드폰번호<? if ($config['cf_req_hp']) {?><strong class="sound_only">필수</strong><?}?></label></th>
<td><input type="text" name="mb_hp" value="<?=$member[mb_hp]?>" id="reg_mb_hp" class="frm_input <?=$config['cf_req_hp']?"required":"";?>" maxlength="20" <?=$config['cf_req_hp']?"required":"";?>></td>
<td><input type="text" name="mb_hp" value="<?=$member[mb_hp]?>" id="reg_mb_hp" <?=$config['cf_req_hp']?"required":"";?> class="frm_input <?=$config['cf_req_hp']?"required":"";?>" maxlength="20"></td>
</tr>
<? } ?>
@ -103,12 +103,12 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
<? if ($config['cf_req_addr']) {?><strong class="sound_only">필수</strong><? } ?>
</th>
<td>
<input type="text" name="mb_zip1" value="<?=$member['mb_zip1']?>" id="reg_mb_zip1" title="우편번호 앞자리" class="frm_input <?=$config['cf_req_addr']?"required":"";?>" size="2" maxlength="3" <?=$config['cf_req_addr']?"required":"";?>>
-
<input type="text" name="mb_zip2" value="<?=$member['mb_zip2']?>" id="reg_mb_zip2" title="우편번호 뒷자리" class="frm_input <?=$config['cf_req_addr']?"required":"";?>" size="2" maxlength="3" <?=$config['cf_req_addr']?"required":"";?>>
<input type="text" name="mb_zip1" value="<?=$member['mb_zip1']?>" id="reg_mb_zip1" <?=$config['cf_req_addr']?"required":"";?> title="우편번호 앞자리<?=$config['cf_req_addr']?"(필수)":"";?>" class="frm_input <?=$config['cf_req_addr']?"required":"";?>" size="2" maxlength="3">
-
<input type="text" name="mb_zip2" value="<?=$member['mb_zip2']?>" id="reg_mb_zip2" <?=$config['cf_req_addr']?"required":"";?> title="우편번호 뒷자리<?=$config['cf_req_addr']?"(필수)":"";?>" class="frm_input <?=$config['cf_req_addr']?"required":"";?>" size="2" maxlength="3">
<a href="<? echo $zip_href; ?>" id="reg_zip_find" class="btn_frmline win_zip_find" target="_blank">주소찾기</a>
<input type="text" name="mb_addr1" value="<?=$member['mb_addr1']?>" id="reg_mb_addr1" title="행정구역주소" class="frm_input frm_address <?=$config['cf_req_addr']?"required":"";?>" size="50" <?=$config['cf_req_addr']?"required":"";?>>
<input type="text" name="mb_addr2" value="<?=$member['mb_addr2']?>" id="reg_mb_addr2" title="상세주소" class="frm_input frm_address <?=$config['cf_req_addr']?"required":"";?>" size="50" <?=$config['cf_req_addr']?"required":"";?>>
<input type="text" name="mb_addr1" value="<?=$member['mb_addr1']?>" id="reg_mb_addr1" <?=$config['cf_req_addr']?"required":"";?> title="행정구역주소<?=$config['cf_req_addr']?"(필수)":"";?>" class="frm_input frm_address <?=$config['cf_req_addr']?"required":"";?>" size="50">
<input type="text" name="mb_addr2" value="<?=$member['mb_addr2']?>" id="reg_mb_addr2" <?=$config['cf_req_addr']?"required":"";?> title="상세주소<?=$config['cf_req_addr']?"(필수)":"";?>" class="frm_input frm_address <?=$config['cf_req_addr']?"required":"";?>" size="50">
</td>
</tr>
<? } ?>
@ -119,18 +119,18 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
<? if ($config['cf_use_signature']) { ?>
<tr>
<th scope="row"><label for="reg_mb_signature">서명<? if ($config['cf_req_signature']){?><strong class="sound_only">필수</strong><?}?></label></th>
<td><textarea name="mb_signature" id="reg_mb_signature" class="<?=$config['cf_req_signature']?"required":"";?>" <?=$config['cf_req_signature']?"required":"";?>><?=$member['mb_signature']?></textarea></td>
<td><textarea name="mb_signature" id="reg_mb_signature" <?=$config['cf_req_signature']?"required":"";?> class="<?=$config['cf_req_signature']?"required":"";?>"><?=$member['mb_signature']?></textarea></td>
</tr>
<? } ?>
<? if ($config['cf_use_profile']) { ?>
<tr>
<th scope="row"><label for="reg_mb_profile">자기소개</label></th>
<td><textarea name="mb_profile" id="reg_mb_profile" class="<?=$config['cf_req_profile']?"required":"";?>" <?=$config['cf_req_profile']?"required":"";?>><?=$member['mb_profile']?></textarea></td>
<td><textarea name="mb_profile" id="reg_mb_profile" <?=$config['cf_req_profile']?"required":"";?> class="<?=$config['cf_req_profile']?"required":"";?>"><?=$member['mb_profile']?></textarea></td>
</tr>
<? } ?>
<? if ($member['mb_level'] >= $config['cf_icon_level']) { ?>
<? if ($config['cf_use_member_icon'] && $member['mb_level'] >= $config['cf_icon_level']) { ?>
<tr>
<th scope="row"><label for="reg_mb_icon">회원아이콘</label></th>
<td>

View File

@ -14,8 +14,8 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
<fieldset>
<label for="addr1">동/읍/면/리 검색</label>
<input type="text" name="addr1" value="<?=$addr1?>" id="addr1" required class="required fs_input" minlength="2">
<input type="submit" value="검색" class="fs_submit">
<input type="text" name="addr1" value="<?=$addr1?>" id="addr1" required class="required frm_input" minlength="2">
<input type="submit" value="검색" class="btn_submit">
</fieldset>
<!-- 검색결과 여기서부터 -->

View File

@ -44,7 +44,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
</tr>
<tr>
<th scope="row"><label for="file1">첨부 1</label></th>
<td><input type="file"name="file1" id="file1" class="frm_input"></td>
<td><input type="file" name="file1" id="file1" class="frm_input"></td>
</tr>
<tr>
<th scope="row"><label for="file2">첨부 2</label></th>

View File

@ -19,8 +19,8 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
<span id="mb_confirm_id"><?=$member[mb_id]?></span>
<label for="confirm_mb_password">패스워드<strong class="sound_only">필수</strong></label>
<input type="password" name="mb_password" id="confirm_mb_password" required class="required fs_input" size="15" maxLength="20">
<input type="submit" value="확인" id="btn_submit" class="fs_submit">
<input type="password" name="mb_password" id="confirm_mb_password" required class="required frm_input" size="15" maxLength="20">
<input type="submit" value="확인" id="btn_submit" class="btn_submit">
</fieldset>
</form>

View File

@ -33,8 +33,8 @@ else $g4['title'] = $g4['title'];
<fieldset>
<label for="pw_wr_password">패스워드<strong class="sound_only">필수</strong></label>
<input type="password" name="wr_password" id="password_wr_password" required class="fs_input required" size="15" maxLength="20">
<input type="submit" value="확인" class="fs_submit">
<input type="password" name="wr_password" id="password_wr_password" required class="frm_input required" size="15" maxLength="20">
<input type="submit" value="확인" class="btn_submit">
</fieldset>
</form>

View File

@ -60,10 +60,10 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
<? } ?>
<tr>
<th scope="row"><label for="reg_mb_email">E-mail<? if ($config['cf_use_email_certify']) {?><strong class="sound_only">필수</strong><?}?></label></th>
<th scope="row"><label for="reg_mb_email">E-mail<strong class="sound_only">필수</strong></label></th>
<td>
<input type="hidden" name="old_email" value="<?=$member['mb_email']?>">
<input type="text" name="mb_email" value='<?=isset($member['mb_email'])?$member['mb_email']:'';?>' <?=$config['cf_use_email_certify']?"required":"";?> id="reg_mb_email" class="frm_input email <?=$config['cf_use_email_certify']?"required":"";?>" size="50" maxlength="100">
<input type="text" name="mb_email" value='<?=isset($member['mb_email'])?$member['mb_email']:'';?>' id="reg_mb_email" required class="frm_input email required" size="50" maxlength="100">
<? if ($config['cf_use_email_certify']) { ?>
<span class="frm_info">
<? if ($w=='') { echo "E-mail 로 발송된 내용을 확인한 후 인증하셔야 회원가입이 완료됩니다."; } ?>
@ -109,7 +109,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
</th>
<td>
<input type="text" name="mb_zip1"value="<?=$member['mb_zip1']?>" id="reg_mb_zip1" title="우편번호 앞자리" class="frm_input <?=$config['cf_req_addr']?"required":"";?>" size="2" maxlength="3" <?=$config['cf_req_addr']?"required":"";?> >
-
-
<input type="text" name="mb_zip2" value="<?=$member['mb_zip2']?>" id="reg_mb_zip2" title="우편번호 뒷자리" class="frm_input <?=$config['cf_req_addr']?"required":"";?>" size="2" maxlength="3" <?=$config['cf_req_addr']?"required":"";?>>
<a href="<? echo $zip_href; ?>" target="_blank" id="reg_zip_find" class="btn_frmline win_zip_find">주소찾기</a>
<input type="text" name="mb_addr1" value="<?=$member['mb_addr1']?>" id="reg_mb_addr1" title="행정구역주소" class="frm_input frm_address <?=$config['cf_req_addr']?"required":"";?>" size="50" <?=$config['cf_req_addr']?"required":"";?>>
@ -135,7 +135,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
</tr>
<? } ?>
<? if ($member['mb_level'] >= $config['cf_icon_level']) { ?>
<? if ($config['cf_use_member_icon'] && $member['mb_level'] >= $config['cf_icon_level']) { ?>
<tr>
<th scope="row"><label for="reg_mb_icon">회원아이콘</label></th>
<td>

View File

@ -14,8 +14,8 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
<fieldset>
<label for="addr1">동/읍/면/리 검색</label>
<input type="text" name="addr1" value="<?=$addr1?>" id="addr1" required class="required fs_input" minlength="2">
<input type="submit" value="검색" class="fs_submit">
<input type="text" name="addr1" value="<?=$addr1?>" id="addr1" required class="required frm_input" minlength="2">
<input type="submit" value="검색" class="btn_submit">
</fieldset>
<!-- 검색결과 여기서부터 -->

View File

@ -7,10 +7,10 @@
#ol_before fieldset {position:relative}
#ol_id {display:block;margin:0 0 5px !important;margin:0 0 3px;padding:0 5px;width:168px;height:22px;border:1px solid #b8c9c2;background:#f7f7f7;line-height:1.6em}
#ol_id:focus {border-color:#333;background:#21272e;color:#fff}
.ol_idlabel {position:absolute;top:6px;left:5px;color:#333;font-size:0.9em}
.ol_idlabel {position:absolute;top:6px;left:5px;color:#333;font-size:0.95em}
#ol_pw {display:block;margin:0 0 5px !important;margin:0 0 3px;padding:0 5px;width:168px;height:22px;border:1px solid #b8c9c2;background:#f7f7f7;vertical-align:top;line-height:1.6em}
#ol_pw:focus {border-color:#333;background:#21272e;color:#fff}
.ol_pwlabel {position:absolute;top:35px;left:5px;color:#333;font-size:0.9em}
.ol_pwlabel {position:absolute;top:35px;left:5px;color:#333;font-size:0.95em}
#auto_login {}
#auto_login_label {letter-spacing:-0.1em}
#ol_submit {display:inline-block;width:60px;height:24px;border:0;background:#333;color:#fff;font-size:0.9em;font-weight:bold;vertical-align:top}

View File

@ -1,16 +1,5 @@
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
global $is_admin;
// 투표번호가 넘어오지 않았다면 가장 큰(최근에 등록한) 투표번호를 얻는다
if (!$po_id) {
$po_id = $config['cf_max_po_id'];
if (!$po_id) return;
}
$po = sql_fetch(" select * from {$g4['poll_table']} where po_id = '$po_id' ");
?>
<form name="fpoll" action="<?=G4_BBS_URL?>/poll_update.php" onsubmit="return fpoll_submit(this);" target="win_poll" method="post">
@ -55,7 +44,7 @@ function fpoll_submit(f)
return false;
}
win_poll();
win_poll(f.action);
return true;
}

View File

@ -17,8 +17,8 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
<option value="wr_name"<?=get_selected($_GET['sfl'], "wr_name")?>>이름</option>
</select>
<input type="text" name="stx" value="<?=$text_stx?>" title="검색어(필수)" class="fs_input" required class="required" maxlength="20">
<input type="submit" class="fs_submit" value="검색">
<input type="text" name="stx" value="<?=$text_stx?>" title="검색어(필수)" class="frm_input" required class="required" maxlength="20">
<input type="submit" class="btn_submit" value="검색">
<script>
function fsearch_submit(f)

View File

@ -25,7 +25,10 @@ if ($config['cf_include_tail']) {
<?=visit("basic"); // 방문자수 ?>
<div id="ft_catch"><a href="<?=$g4['url']?>/"><img src="<?=G4_IMG_URL?>/ft_catch.jpg" alt="Sharing All Possibilities"></a></div>
<div id="ft_copy">
<p>Copyright &copy; <b>소유하신 도메인.</b> All rights reserved.</p>
<p>
Copyright &copy; <b>소유하신 도메인.</b> All rights reserved.<br>
<a href="#">상단으로</a>
</p>
</div>
</footer>

View File

@ -84,17 +84,19 @@ $(function(){
hide_menu = true;
});
$(document).click(function() {
$('#gnb_ul>li').bind('mouseleave',function(){
submenu_hide();
});
$(document).bind('click focusin',function(){
if(hide_menu) {
$(".gnb_1depth").removeClass("gnb_1depth_over gnb_1depth_over2 gnb_1depth_on");
submenu_hide();
}
});
$(document).focusin(function() {
if(hide_menu) {
$(".gnb_1depth").removeClass("gnb_1depth_over gnb_1depth_over2 gnb_1depth_on");
}
});
function submenu_hide() {
$(".gnb_1depth").removeClass("gnb_1depth_over gnb_1depth_over2 gnb_1depth_on");
}
// 텍스트 리사이즈 카운트 쿠키있으면 실행
var resize_act;