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

Conflicts:
	common.php
This commit is contained in:
gnuboard
2013-03-20 10:14:42 +09:00
50 changed files with 405 additions and 1063 deletions

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

@ -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

@ -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>

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

@ -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

@ -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

@ -0,0 +1,91 @@
<dl>
<dt>CTRL+Z</dt>
<dd>취소하기</dd>
<dt>CTRL+Y</dt>
<dd>다시 실행</dd>
<dt>CTRL+B</dt>
<dd>글자 굵게</dd>
<dt>CTRL+I</dt>
<dd>글자 기울이기</dd>
<dt>CTRL+E</dt>
<dd>가운데 정렬</dd>
<dt>CTRL+L</dt>
<dd>왼쪽 정렬</dd>
<dt>CTRL+R</dt>
<dd>오른쪽 정렬</dd>
<dt>CTRL+J</dt>
<dd>양쪽정렬</dd>
<dt>ALT+E</dt>
<dd>이모티콘 넣기</dd>
<dt>ALT+C</dt>
<dd>특수문자 넣기</dd>
<dt>CTRL+Q</dt>
<dd>순서 없는 목록</dd>
<dt>CTRL+SHIFT+8</dt>
<dd>순서 없는 목록 스타일</dd>
<dt>CTRL+7</dt>
<dd>순서 있는 목록</dd>
<dt>CTRL+SHIFT+7</dt>
<dd>순서 있는 목록 스타일</dd>
<dt>CTRL+M</dt>
<dd>인용문 문단</dd>
<dt>CTRL+8</dt>
<dd>들여쓰기</dd>
<dt>CTRL+SHIFT+M</dt>
<dd>내어쓰기</dd>
<dt>CTRL+SPACE</dt>
<dd>포맷 없애기</dd>
<dt>CTRL+A</dt>
<dd>전체선택</dd>
<dt>CTRL+SHIFT+X</dt>
<dd>취소선</dd>
<dt>CTRL+COMMA</dt>
<dd>아래첨자</dd>
<dt>CTRL+PERIOD</dt>
<dd>위첨자</dd>
<dt>CTRL+U</dt>
<dd>밑줄긋기</dd>
<dt>ALT+A</dt>
<dd>책갈피 만들기</dd>
<dt>ALT+F</dt>
<dd>플래쉬 넣기</dd>
<dt>ALT+H</dt>
<dd>구분선 넣기</dd>
<dt>ALT+I</dt>
<dd>이미지 넣기</dd>
<dt>ALT+L</dt>
<dd>바로가기 만들기</dd>
<dt>ALT+SHIFT+L</dt>
<dd>바로가기 없애기</dd>
<dt>ALT+ENTER</dt>
<dd>페이지 나누기</dd>
<dt>ALT+T</dt>
<dd>테이블 만들기</dd>
<dt>ALT+O</dt>
<dd>템플릿 적용</dd>
<dt>F1</dt>
<dd>도움말 보기</dd>
<dt>ALT+#3</dt>
<dd>색상선택기</dd>
<dt>ALT+M</dt>
<dd>복사 잘라내기 붙여넣기 메뉴</dd>
<dt>ALT+F11</dt>
<dd>요소 경로 포커스</dd>
<dt>CTRL+SHIFT+F</dt>
<dd>찾기</dd>
<dt>ALT+X</dt>
<dd>에디터 전체크기 설정/해제</dd>
<dt>CTRL+F2</dt>
<dd>미리보기</dd>
<dt>CTRL+SHIFT+P</dt>
<dd>인쇄하기</dd>
<dt>CTRL+H</dt>
<dd>찾기 바꾸기</dd>
<dt>ALT+SHIFT+T</dt>
<dd>테두리보기</dd>
<dt>ALT+Z</dt>
<dd>소스보기</dd>
<dt>ALT+F10</dt>
<dd>툴바로 이동</dd>
</dl>
<button type="button" class="btn_cke_sc_close">닫기</button>

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

@ -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

@ -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

@ -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 되었다면 방문자 합계에 반영

View File

@ -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']) {

View File

@ -81,6 +81,7 @@ function g4_path()
//print_r($base_dir);
/*
$linux_dir = str_replace("\\", "/", $path); // 예) /home/sir/www/g4s
<<<<<<< HEAD
$document_root = str_replace("\\", "/", $_SERVER['DOCUMENT_ROOT']); // 예) /home/sir/www
if (strpos($linux_dir, $document_root) === false) {
@ -96,6 +97,11 @@ function g4_path()
if (strlen($base_dir) && substr($base_dir, 0, 1) != '/') $base_dir = '/'.$base_dir;
=======
//$document_root = str_replace("\\", "/", $_SERVER['DOCUMENT_ROOT']); // 예) /home/sir/www
$document_root = str_replace("\\", "/", realpath($_SERVER['DOCUMENT_ROOT']));
$base_dir = preg_replace('#^'.$document_root.'#i', '', $linux_dir); // 예) /g4s
>>>>>>> f40cfc08dc1a42a24c3acd0ebaee829f94dccd3a
$port = $_SERVER['SERVER_PORT'] != 80 ? ':'.$_SERVER['SERVER_PORT'] : '';
$http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 's' : '') . '://';
@ -150,7 +156,7 @@ 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="./install/">그누보드4S 설치하기</a>

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,6 +38,17 @@ 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,
@ -253,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,
@ -287,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}
@ -294,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,13 +33,24 @@ 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}
#hd h1 {width:1px;height:1px;font-size:0;line-height:0;overflow:hidden}
@ -115,8 +126,9 @@ 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}
@ -215,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')) { ?>

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');

View File

@ -1003,7 +1003,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)
@ -1025,7 +1025,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>";
@ -1734,8 +1735,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);
}
}
@ -1746,8 +1749,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);
}
}
@ -1783,9 +1788,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);
}
}
}

View File

@ -1,14 +0,0 @@
<?
if (!defined('_GNUBOARD_')) exit;
// 로그를 파일에 쓴다
function write_log($file, $log) {
$fp = fopen($file, "a+");
ob_start();
print_r($log);
$msg = ob_get_contents();
ob_end_clean();
fwrite($fp, $msg);
fclose($fp);
}
?>

View File

@ -1,153 +0,0 @@
<?
if (!defined('_GNUBOARD_')) exit;
// 아이코드에서 제공하는 함수
///////////////////////////////////////////////////////////////////////////////////////////
// 이 부분은 건드릴 필요가 없습니다.
function spacing($text,$size) {
for ($i=0; $i<$size; $i++) $text.=" ";
$text = substr($text,0,$size);
return $text;
}
function cut_char($word, $cut) {
// $word=trim(stripslashes($word));
$word=substr($word,0,$cut); // 필요한 길이만큼 취함.
for ($k=$cut-1; $k>1; $k--) {
if (ord(substr($word,$k,1))<128) break; // 한글값은 160 이상.
}
$word=substr($word,0,$cut-($cut-$k+1)%2);
return $word;
}
function CheckCommonType($dest, $rsvTime) {
//$dest=eregi_replace("[^0-9]","",$dest);
$dest=preg_replace("/[^0-9]/i","",$dest);
if (strlen($dest)<10 || strlen($dest)>11) return "휴대폰 번호가 틀렸습니다";
$CID=substr($dest,0,3);
//if ( eregi("[^0-9]",$CID) || ($CID!='010' && $CID!='011' && $CID!='016' && $CID!='017' && $CID!='018' && $CID!='019') ) return "휴대폰 앞자리 번호가 잘못되었습니다";
if ( preg_match("/[^0-9]/i",$CID) || ($CID!='010' && $CID!='011' && $CID!='016' && $CID!='017' && $CID!='018' && $CID!='019') ) return "휴대폰 앞자리 번호가 잘못되었습니다";
//$rsvTime=eregi_replace("[^0-9]","",$rsvTime);
$rsvTime=preg_replace("/[^0-9]/i","",$rsvTime);
if ($rsvTime) {
if (!checkdate(substr($rsvTime,4,2),substr($rsvTime,6,2),substr($rsvTime,0,4))) return "예약날짜가 잘못되었습니다";
if (substr($rsvTime,8,2)>23 || substr($rsvTime,10,2)>59) return "예약시간이 잘못되었습니다";
}
}
class SMS {
var $ID;
var $PWD;
var $SMS_Server;
var $port;
var $SMS_Port;
var $Data = array();
var $Result = array();
function SMS_con($sms_server,$sms_id,$sms_pw,$port) {
$this->ID=$sms_id; // 계약 후 지정
$this->PWD=$sms_pw; // 계약 후 지정
$this->SMS_Server=$sms_server;
$this->SMS_Port=$port;
$this->ID = spacing($this->ID,10);
$this->PWD = spacing($this->PWD,10);
}
function Init() {
$this->Data = "";
$this->Result = "";
}
function Add($dest, $callBack, $Caller, $msg, $rsvTime="") {
global $g4;
// 내용 검사 1
$Error = CheckCommonType($dest, $rsvTime);
if ($Error) return $Error;
// 내용 검사 2
//if ( eregi("[^0-9]",$callBack) ) return "회신 전화번호가 잘못되었습니다";
if ( preg_match("/[^0-9]/i",$callBack) ) return "회신 전화번호가 잘못되었습니다";
// 아이코드에서는 문자에 utf-8 인코딩 형식을 아직 지원하지 않는다.
if (strtolower($g4['charset'])=='utf-8') {
if (function_exists("iconv")) {
$msg = iconv("utf-8", "euc-kr", $msg);
}
}
$msg=cut_char($msg,80); // 80자 제한
// 보낼 내용을 배열에 집어넣기
$dest = spacing($dest,11);
$callBack = spacing($callBack,11);
$Caller = spacing($Caller,10);
$rsvTime = spacing($rsvTime,12);
$msg = spacing($msg,80);
$this->Data[] = '01144 '.$this->ID.$this->PWD.$dest.$callBack.$Caller.$rsvTime.$msg;
return "";
}
function AddURL($dest, $callBack, $URL, $msg, $rsvTime="") {
// 내용 검사 1
$Error = CheckCommonType($dest, $rsvTime);
if ($Error) return $Error;
// 내용 검사 2
//$URL=str_replace("http://","",$URL);
if (strlen($URL)>50) return "URL이 50자가 넘었습니다";
switch (substr($dest,0,3)) {
case '010': //20바이트
$msg=cut_char($msg,20);
break;
case '011': //80바이트
$msg=cut_char($msg,80);
break;
case '016': // 80바이트
$msg=cut_char($msg,80);
break;
case '017': // URL 포함 80바이트
$msg=cut_char($msg,80-strlen($URL));
break;
case '018': // 20바이트
$msg=cut_char($msg,20);
break;
case '019': // 20바이트
$msg=cut_char($msg,20);
break;
default:
return "아직 URL CallBack이 지원되지 않는 번호입니다";
break;
}
// 보낼 내용을 배열에 집어넣기
$dest = spacing($dest,11);
$URL = spacing($URL,50);
$callBack = spacing($callBack,11);
$rsvTime = spacing($rsvTime,12);
$msg = spacing($msg,80);
$this->Data[] = '05173 '.$this->ID.$this->PWD.$dest.$callBack.$URL.$rsvTime.$msg;
return "";
}
function Send () {
$fp=@fsockopen(trim($this->SMS_Server),trim($this->SMS_Port));
if (!$fp) return false;
set_time_limit(300);
## php4.3.10일경우
## zend 최신버전으로 업해주세요..
## 또는 122번째 줄을 $this->Data as $tmp => $puts 로 변경해 주세요.
foreach($this->Data as $puts) {
$dest = substr($puts,26,11);
fputs($fp,$puts);
while(!$gets) { $gets=fgets($fp,30); }
if (substr($gets,0,19)=="0223 00".$dest) $this->Result[]=$dest.":".substr($gets,19,10);
else $this->Result[$dest]=$dest.":Error";
$gets="";
}
fclose($fp);
$this->Data="";
return true;
}
}
?>

View File

@ -1,585 +0,0 @@
<?
if (!defined('_GNUBOARD_')) exit;
// 품목별 재화등에 관한 상품요약 정보
$item_info = array(
"wear"=>array(
"title"=>"의류",
"article"=>array(
"material"=>array("제품소재", "섬유의 조성 또는 혼용률을 백분율로 표시, 기능성인 경우 성적서 또는 허가서"),
"color"=>array("색상", ""),
"size"=>array("치수", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"caution"=>array("세탁방법 및 취급시 주의사항", ""),
"manufacturing_ym"=>array("제조연월", ""),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"shoes"=>array(
"title"=>"구두/신발",
"article"=>array(
"material"=>array("제품소재", "운동화인 경우에는 겉감, 안감을 구분하여 표시"),
"color"=>array("색상", ""),
"size"=>array("치수-발길이", "해외사이즈 표기 시 국내사이즈 병행 표기 (mm)"),
"height"=>array("치수-굽높이", "굽 재료를 사용하는 여성화에 한함 (cm)"),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", ""),
"caution"=>array("취급시 주의사항", ""),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"bag"=>array(
"title"=>"가방",
"article"=>array(
"kind"=>array("종류", ""),
"material"=>array("소재", ""),
"color"=>array("색상", ""),
"size"=>array("크기", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", ""),
"caution"=>array("취급시 주의사항", ""),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"fashion"=>array(
"title"=>"패션잡화(모자/벨트/액세서리)",
"article"=>array(
"kind"=>array("종류", ""),
"material"=>array("소재", ""),
"size"=>array("치수", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", ""),
"caution"=>array("취급시 주의사항", ""),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"bedding"=>array(
"title"=>"침구류/커튼",
"article"=>array(
"material"=>array("제품소재", "(섬유의 조성 또는 혼용률을 백분율로 표시) 충전재를 사용한 제품은 충전재를 함께 표기"),
"color"=>array("색상", ""),
"size"=>array("치수", ""),
"component" =>array("제품구성", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", ""),
"caution"=>array("세탁방법 및 취급시 주의사항", ""),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"furniture"=>array(
"title"=>"가구(침대/소파/싱크대/DIY제품)",
"article"=>array(
"product_name"=>array("품명", ""),
"certification"=>array("KC 인증 필 유무", "(품질경영 및 공산품안전관리법 상 안전&middot;품질표시대상공산품에 한함)"),
"color"=>array("색상", ""),
"component" =>array("구성품", ""),
"material"=>array("주요소재", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)<br />구성품 별 제조자가 다른 경우 각 구성품의 제조자, 수입자"),
"madein"=>array("제조국", "구성품 별 제조국이 다른 경우 각 구성품의 제조국"),
"size"=>array("크기", ""),
"delivery"=>array("배송&middot;설치비용", ""),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"image_appliances"=>array(
"title"=>"영상가전 (TV류)",
"article"=>array(
"product_name"=>array("품명", ""),
"model_name"=>array("모델명", ""),
"certification"=>array("전기용품 안전인증 필 유무", "전기용품안전관리법 상 안전인증대상전기용품, 자율안전확인대상전기용품, 공급자적합성확인대상전기용품에 한함"),
"rated_voltage"=>array("정격전압", "에너지이용합리화법 상 의무대상상품에 한함"),
"power_consumption"=>array("소비전력", "에너지이용합리화법 상 의무대상상품에 한함"),
"energy_efficiency"=>array("에너지효율등급", "에너지이용합리화법 상 의무대상상품에 한함"),
"released_date"=>array("동일모델의 출시년월", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", "구성품 별 제조국이 다른 경우 각 구성품의 제조국"),
"size"=>array("크기", "형태포함"),
"display_specification"=>array("화면사양", "크기, 해상도, 화면비율 등"),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"home_appliances"=>array(
"title"=>"가정용전기제품(냉장고/세탁기/식기세척기/전자레인지)",
"article"=>array(
"product_name"=>array("품명", ""),
"model_name"=>array("모델명", ""),
"certification"=>array("전기용품 안전인증 필 유무", "전기용품안전관리법 상 안전인증대상전기용품, 자율안전확인대상전기용품, 공급자적합성확인대상전기용품에 한함"),
"rated_voltage"=>array("정격전압", "에너지이용합리화법 상 의무대상상품에 한함"),
"power_consumption"=>array("소비전력", "에너지이용합리화법 상 의무대상상품에 한함"),
"energy_efficiency"=>array("에너지효율등급", "에너지이용합리화법 상 의무대상상품에 한함"),
"released_date"=>array("동일모델의 출시년월", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", ""),
"size"=>array("크기", "형태포함"),
"display_specification"=>array("화면사양", "크기, 해상도, 화면비율 등"),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"season_appliances"=>array(
"title"=>"계절가전(에어컨/온풍기)",
"article"=>array(
"product_name"=>array("품명", ""),
"model_name"=>array("모델명", ""),
"certification"=>array("전기용품 안전인증 필 유무", "전기용품안전관리법 상 안전인증대상전기용품, 자율안전확인대상전기용품, 공급자적합성확인대상전기용품에 한함"),
"rated_voltage"=>array("정격전압", "에너지이용합리화법 상 의무대상상품에 한함"),
"power_consumption"=>array("소비전력", "에너지이용합리화법 상 의무대상상품에 한함"),
"energy_efficiency"=>array("에너지효율등급", "에너지이용합리화법 상 의무대상상품에 한함"),
"released_date"=>array("동일모델의 출시년월", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", ""),
"size"=>array("크기", "형태 및 실외기 포함"),
"area"=>array("냉난방면적", ""),
"installation_costs"=>array("추가설치비용", ""),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"office_appliances"=>array(
"title"=>"사무용기기(컴퓨터/노트북/프린터)",
"article"=>array(
"product_name"=>array("품명", ""),
"model_name"=>array("모델명", ""),
"certification"=>array("KCC 인증 필 유무", "전파법 상 인증대상상품에 한함, MIC 인증 필 혼용 가능"),
"rated_voltage"=>array("정격전압", "에너지이용합리화법 상 의무대상상품에 한함"),
"power_consumption"=>array("소비전력", "에너지이용합리화법 상 의무대상상품에 한함"),
"energy_efficiency"=>array("에너지효율등급", "에너지이용합리화법 상 의무대상상품에 한함"),
"released_date"=>array("동일모델의 출시년월", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", "구성품 별 제조국이 다른 경우 각 구성품의 제조국"),
"size"=>array("크기", ""),
"weight"=>array("무게", "무게는 노트북에 한함"),
"specification"=>array("주요사양", "컴퓨터와 노트북의 경우 성능, 용량, 운영체제 포함여부 등 / 프린터의 경우 인쇄 속도 등"),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"optics_appliances"=>array(
"title"=>"광학기기(디지털카메라/캠코더)",
"article"=>array(
"product_name"=>array("품명", ""),
"model_name"=>array("모델명", ""),
"certification"=>array("KCC 인증 필 유무", "전파법 상 인증대상상품에 한함, MIC 인증 필 혼용 가능"),
"released_date"=>array("동일모델의 출시년월", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", ""),
"size"=>array("크기", ""),
"weight"=>array("무게", ""),
"specification"=>array("주요사양", ""),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"microelectronics"=>array(
"title"=>"소형전자(MP3/전자사전등)",
"article"=>array(
"product_name"=>array("품명", ""),
"model_name"=>array("모델명", ""),
"certification"=>array("KCC 인증 필 유무", "전파법 상 인증대상상품에 한함, MIC 인증 필 혼용 가능"),
"rated_voltage"=>array("정격전압", ""),
"power_consumption"=>array("소비전력", ""),
"released_date"=>array("동일모델의 출시년월", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", ""),
"size"=>array("크기", ""),
"weight"=>array("무게", ""),
"specification"=>array("주요사양", ""),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"mobile"=>array(
"title"=>"휴대폰",
"article"=>array(
"product_name"=>array("품명", ""),
"model_name"=>array("모델명", ""),
"certification"=>array("KCC 인증 필 유무", "전파법 상 인증대상상품에 한함, MIC 인증 필 혼용 가능"),
"released_date"=>array("동일모델의 출시년월", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", ""),
"size"=>array("크기", ""),
"weight"=>array("무게", ""),
"telecom"=>array("이동통신사", ""),
"join_process"=>array("가입절차", ""),
"extra_burden"=>array("소비자의 추가적인 부담사항 ", "가입비, 유심카드 구입비 등 추가로 부담하여야 할 금액, 부가서비스, 의무사용기간, 위약금 등"),
"specification"=>array("주요사양", ""),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"navigation"=>array(
"title"=>"네비게이션",
"article"=>array(
"product_name"=>array("품명", ""),
"model_name"=>array("모델명", ""),
"certification"=>array("KCC 인증 필 유무", "전파법 상 인증대상상품에 한함, MIC 인증 필 혼용 가능"),
"rated_voltage"=>array("정격전압", ""),
"power_consumption"=>array("소비전력", ""),
"released_date"=>array("동일모델의 출시년월", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", ""),
"size"=>array("크기", ""),
"weight"=>array("무게", ""),
"specification"=>array("주요사양", ""),
"update_cost"=>array("맵 업데이트 비용", ""),
"freecost_period"=>array("무상기간", ""),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"car"=>array(
"title"=>"자동차용품(자동차부품/기타자동차용품)",
"article"=>array(
"product_name"=>array("품명", ""),
"model_name"=>array("모델명", ""),
"released_date"=>array("동일모델의 출시년월", ""),
"certification"=>array("자동차부품 자기인증 유무 ", "자동차 관리법 상 인증 대상 자동차 부품에 한함"),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", "구성품 별 제조국이 다른 경우 각 구성품의 제조국"),
"size"=>array("크기", ""),
"apply_model"=>array("적용차종", ""),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"medical"=>array(
"title"=>"의료기기",
"article"=>array(
"product_name"=>array("품명", ""),
"model_name"=>array("모델명", ""),
"license_number"=>array("의료기기법상 허가&middot;신고 번호", "허가&middot;신고 대상 의료기기에 한함"),
"advertising"=>array("광고사전심의필 유무", ""),
"certification"=>array("전기용품안전관리법상 KC 인증 필 유무 ", "안전인증 또는 자율안전확인 대상 전기용품에 한함"),
"rated_voltage"=>array("정격전압", "전기용품에 한함"),
"power_consumption"=>array("소비전력", "전기용품에 한함"),
"released_date"=>array("동일모델의 출시년월", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", ""),
"appliances_purpose"=>array("제품의 사용목적", ""),
"appliances_usage"=>array("제품의 사용목적", ""),
"display_specification"=>array("화면사양", "(크기, 해상도, 화면비율 등)"),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"kitchenware"=>array(
"title"=>"주방용품",
"article"=>array(
"product_name"=>array("품명", ""),
"model_name"=>array("모델명", ""),
"material"=>array("재질", ""),
"component"=>array("구성품", ""),
"size"=>array("크기", ""),
"released_date"=>array("동일모델의 출시년월", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", ""),
"import_declaration"=>array("식품위생법에 따른 수입 신고", "식품위생법에 따른 수입 기구&middot;용기의 경우 \"식품위생법에 따른 수입신고를 필함\"의 문구"),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"cosmetics"=>array(
"title"=>"화장품",
"article"=>array(
"capacity"=>array("용량 또는 중량", ""),
"specification"=>array("제품 주요사양", "피부타입, 색상(호, 번) 등"),
"expiration_date"=>array("사용기한 또는 개봉 후 사용기간", "개봉 후 사용기간을 기재할 경우에는 제조연월일을 병행표기"),
"usage"=>array("사용방법", ""),
"maker"=>array("제조자", ""),
"distributor"=>array("제조판매업자", ""),
"madein"=>array("제조국", ""),
"mainingredient"=>array("주요성분", "유기농 화장품의 경우 유기농 원료 함량 포함"),
"certification"=>array("식품의약품안전청 심사 필 유무", "기능성 화장품의 경우 화장품법에 따른 식품의약품안전청 심사 필 유무 (미백, 주름개선, 자외선차단 등)"),
"caution"=>array("사용할 때 주의사항", ""),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"jewelry"=>array(
"title"=>"귀금속/보석/시계류",
"article"=>array(
"material"=>array("소재", ""),
"purity"=>array("순도", ""),
"band"=>array("밴드재질", "시계의 경우"),
"weight"=>array("중량", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", "원산지와 가공지 등이 다를 경우 함께 표기"),
"size"=>array("치수", ""),
"caution"=>array("착용 시 주의사항", ""),
"specification"=>array("주요사양", "귀금속, 보석류는 등급, 시계는 기능, 방수 등"),
"provide_warranty"=>array("보증서 제공여부", ""),
"warranty"=>array("품질보증기준", ""),
"as"=>array("A/S 책임자와 전화번호", ""),
)
),
"food"=>array(
"title"=>"식품(농수산물)",
"article"=>array(
"weight"=>array("포장단위별 용량(중량)", ""),
"quantity"=>array("포장단위별 수량", ""),
"size"=>array("포장단위별 크기", ""),
"producer"=>array("생산자", "수입품의 경우 수입자를 함께 표기"),
"origin"=>array("원산지", "농수산물의 원산지 표시에 관한 법률에 따른 원산지"),
"manufacturing_ymd"=>array("제조연월일", "포장일 또는 생산연도"),
"expiration_date"=>array("유통기한 또는 품질유지기한", ""),
"law_content"=>array("관련법상 표시사항", "농산물 - 농산물품질관리법상 유전자변형농산물 표시, 지리적표시<br />축산물 - 축산법에 따른 등급 표시, 쇠고기의 경우 이력관리에 따른 표시 유무<br />수산물 - 수산물품질관리법상 유전자변형수산물 표시, 지리적표시<br />수입식품에 해당하는 경우 \"식품위생법에 따른 수입신고를 필함\"의 문구"),
"product_composition"=>array("상품구성", ""),
"keep"=>array("보관방법 또는 취급방법", ""),
"as"=>array("소비자상담 관련 전화번호", ""),
)
),
"general_food"=>array(
"title"=>"가공식품",
"article"=>array(
"food_type"=>array("식품의 유형", ""),
"producer"=>array("생산자", ""),
"location"=>array("소재지", "수입품의 경우 수입자를 함께 표기"),
"manufacturing_ymd"=>array("제조연월일", ""),
"expiration_date"=>array("유통기한 또는 품질유지기한", ""),
"weight"=>array("포장단위별 용량(중량)", ""),
"quantity"=>array("포장단위별 수량", ""),
"ingredients"=>array("원재료명 및 함량", "농수산물의 원산지 표시에 관한 법률에 따른 원산지 표시 포함"),
"nutrition_component"=>array("영양성분", "식품위생법에 따른 영양성분 표시대상 식품에 한함"),
"genetically_modified"=>array("유전자재조합식품에 해당하는 경우의 표시", ""),
"baby_food"=>array("영유아식 또는 체중조절식품 등에 해당하는 경우 표시광고 사전심의필", ""),
"imported_food"=>array("수입식품에 해당하는 경우 “식품위생법에 따른 수입신고를 필함”의 문구", ""),
"as"=>array("소비자상담 관련 전화번호", ""),
)
),
"diet_food"=>array(
"title"=>"건강기능식품",
"article"=>array(
"food_type"=>array("식품의 유형", ""),
"producer"=>array("생산자", ""),
"location"=>array("소재지", "수입품의 경우 수입자를 함께 표기"),
"manufacturing_ymd"=>array("제조연월일", ""),
"expiration_date"=>array("유통기한 또는 품질유지기한", ""),
"waight"=>array("포장단위별 용량(중량)", ""),
"quantity"=>array("포장단위별 수량", ""),
"ingredients"=>array("원재료명 및 함량", "농수산물의 원산지 표시에 관한 법률에 따른 원산지 표시 포함"),
"nutrition"=>array("영양정보", ""),
"specification"=>array("기능정보", ""),
"intake"=>array("섭취량, 섭취방법 및 섭취 시 주의사항", ""),
"disease"=>array("질병의 예방 및 치료를 위한 의약품이 아니라는 내용의 표현", ""),
"genetically_modified"=>array("유전자재조합식품에 해당하는 경우의 표시", ""),
"display_ad"=>array("표시광고 사전심의필", ""),
"imported_food"=>array("수입식품에 해당하는 경우 \"건강기능식품에 관한 법률에 따른 수입신고를 필함\"의 문구", ""),
"as"=>array("소비자상담 관련 전화번호", ""),
)
),
"kids"=>array(
"title"=>"영유아용품",
"article"=>array(
"product_name"=>array("품명", ""),
"model_name"=>array("모델명", ""),
"certification"=>array("KC 인증 필", "품질경영 및 공산품안전관리법 상 안전인증대상 또는 자율안전확인대상 공산품에 한함"),
"size"=>array("크기", ""),
"weight"=>array("중량", ""),
"color"=>array("색상", ""),
"material"=>array("재질", "섬유의 경우 혼용률"),
"age"=>array("사용연령", ""),
"released_date"=>array("동일모델의 출시년월", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", ""),
"caution"=>array("취급방법 및 취급시 주의사항, 안전표시 (주의, 경고 등)", ""),
"warranty"=>array("품질보증기준", ""),
"as"=>array("소비자상담 관련 전화번호", ""),
)
),
"instrument"=>array(
"title"=>"악기",
"article"=>array(
"size"=>array("크기", ""),
"color"=>array("색상", ""),
"material"=>array("재질", ""),
"components"=>array("제품구성", ""),
"released_date"=>array("동일모델의 출시년월", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", ""),
"detailed_specifications"=>array("상품별 세부 사양", ""),
"warranty"=>array("품질보증기준", ""),
"as"=>array("소비자상담 관련 전화번호", ""),
)
),
"sports"=>array(
"title"=>"스포츠용품",
"article"=>array(
"product_name"=>array("품명", ""),
"model_name"=>array("모델명", ""),
"size"=>array("크기", ""),
"weight"=>array("중량", ""),
"color"=>array("색상", ""),
"material"=>array("재질", ""),
"components"=>array("제품구성", ""),
"released_date"=>array("동일모델의 출시년월", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"madein"=>array("제조국", ""),
"detailed_specifications"=>array("상품별 세부 사양", ""),
"warranty"=>array("품질보증기준", ""),
"as"=>array("소비자상담 관련 전화번호", ""),
)
),
"books"=>array(
"title"=>"서적",
"article"=>array(
"product_name"=>array("도서명", ""),
"author"=>array("저자", ""),
"publisher"=>array("출판사", ""),
"size"=>array("크기", "전자책의 경우 파일의 용량"),
"pages"=>array("쪽수", "전자책의 경우 제외"),
"components"=>array("제품구성", "전집 또는 세트일 경우 낱권 구성, CD 등"),
"publish_date"=>array("출간일", ""),
"description"=>array("목차 또는 책소개", ""),
)
),
"reserve"=>array(
"title"=>"호텔/펜션예약",
"article"=>array(
"location"=>array("국가 또는 지역명", ""),
"lodgment_type"=>array("숙소형태", ""),
"grade"=>array("등급", ""),
"room_type"=>array("객실타입", ""),
"room_capacity"=>array("사용가능인원", ""),
"extra_person_charge"=>array("인원 추가시 비용", ""),
"facilities"=>array("부대시설", ""),
"provided_service"=>array("제공서비스", "조식 등"),
"cancellation_policy"=>array("취소규정", "환불 위약금 등"),
"booking_contacts"=>array("예약담당 연락처", ""),
)
),
"travel"=>array(
"title"=>"여행패키지",
"article"=>array(
"travel_agency"=>array("여행사", ""),
"flight"=>array("이용항공편", ""),
"travel_period"=>array("여행기간", ""),
"schedule"=>array("일정", ""),
"maximum_people"=>array("총예정인원", ""),
"minimum_people"=>array("출발가능인원", ""),
"accomodation_info"=>array("숙박정보", ""),
"details"=>array("포함내역", "식사, 인솔자, 공연관람 등"),
"additional_charge"=>array("추가 경비 항목과 금액", "유류할증료, 공항이용료, 관광지 입장료, 안내원수수료, 식사비용, 선택사항 등"),
"cancellation_policy"=>array("취소규정", "환불, 위약금 등"),
"travel_warnings"=>array("해외여행의 경우 외교통상부가 지정하는 여행경보단계", ""),
"booking_contacts"=>array("예약담당 연락처", ""),
)
),
"airline_ticket"=>array(
"title"=>"항공권",
"article"=>array(
"charge_condition"=>array("요금조건", ""),
"round_trip"=>array("왕복&middot;편도 여부", ""),
"expiration_date"=>array("유효기간", ""),
"restriction"=>array("제한사항", "출발일, 귀국일 변경가능 여부 등"),
"ticket_delivery_mean"=>array("티켓수령방법", ""),
"seat_type"=>array("좌석종류", ""),
"additional_charge"=>array("추가 경비 항목과 금액", "유류할증료, 공항이용료 등"),
"cancellation_policy"=>array("취소 규정", "환불, 위약금 등"),
"booking_contacts"=>array("예약담당 연락처", ""),
)
),
"rent_car"=>array(
"title"=>"자동차대여서비스(렌터카)",
"article"=>array(
"model"=>array("차종", ""),
"ownership_transfer"=>array("소유권 이전 조건", "소유권이 이전되는 경우에 한함"),
"additional_charge"=>array("추가 선택 시 비용", "자차면책제도, 내비게이션 등"),
"fuel_cost"=>array("차량 반환 시 연료대금 정산 방법", ""),
"vehicle_breakdown"=>array("차량의 고장&middot훼손 시 소비자 책임", ""),
"cancellation_policy"=>array("예약취소 또는 중도 해약 시 환불 기준", ""),
"as"=>array("소비자상담 관련 전화번호", ""),
)
),
"rental_water"=>array(
"title"=>"물품대여서비스(정수기,비데,공기청정기 등)",
"article"=>array(
"product_name"=>array("품명", ""),
"model_name"=>array("모델명", ""),
"transfer_of_ownership"=>array("소유권 이전 조건", "소유권이 이전되는 경우에 한함"),
"maintenance"=>array("유지보수 조건", "점검&middot;필터교환 주기, 추가 비용 등"),
"consumer_responsibility"=>array("상품의 고장&middot;분실&middot;훼손 시 소비자 책임", ""),
"refund"=>array("중도 해약 시 환불 기준", ""),
"specification"=>array("제품 사양", "용량, 소비전력 등"),
"as"=>array("소비자상담 관련 전화번호", ""),
)
),
"rental_etc"=>array(
"title"=>"물품대여서비스(서적,유아용품,행사용품 등)",
"article"=>array(
"product_name"=>array("품명", ""),
"model_name"=>array("모델명", ""),
"transfer_of_ownership"=>array("소유권 이전 조건", "소유권이 이전되는 경우에 한함"),
"consumer_responsibility"=>array("상품의 고장&middot;분실&middot;훼손 시 소비자 책임", ""),
"refund"=>array("중도 해약 시 환불 기준", ""),
"as"=>array("소비자상담 관련 전화번호", ""),
)
),
"digital_contents"=>array(
"title"=>"디지털콘텐츠(음원,게임,인터넷강의 등)",
"article"=>array(
"producer"=>array("제작자 또는 공급자", ""),
"terms_of_use"=>array("이용조건", ""),
"use_period"=>array("이용기간", ""),
"product_offers"=>array("상품 제공 방식", "CD, 다운로드, 실시간 스트리밍 등"),
"minimum_system"=>array("최소 시스템 사양, 필수 소프트웨어", ""),
"transfer_of_ownership"=>array("소유권 이전 조건", "소유권이 이전되는 경우에 한함"),
"maintenance"=>array("청약철회 또는 계약의 해제&middot;해지에 따른 효과", ""),
"as"=>array("소비자상담 관련 전화번호", ""),
)
),
"gift_card"=>array(
"title"=>"상품권/쿠폰",
"article"=>array(
"isseur"=>array("발행자", ""),
"expiration_date"=>array("유효기간", ""),
"terms_of_use"=>array("이용조건", "유효기간 경과 시 보상 기준, 사용제한품목 및 기간 등"),
"use_store"=>array("이용 가능 매장", ""),
"refund_policy"=>array("잔액 환급 조건", ""),
"as"=>array("소비자상담 관련 전화번호", ""),
)
),
"etc"=>array(
"title"=>"기타",
"article"=>array(
"product_name"=>array("품명", ""),
"model_name"=>array("모델명", ""),
"certified_by_law"=>array("법에 의한 인증&middot허가 등을 받았음을 확인할 수 있는 경우 그에 대한 사항", ""),
"origin"=>array("제조국 또는 원산지", ""),
"maker"=>array("제조자", "수입품의 경우 수입자를 함께 표기 (병행수입의 경우 병행수입 여부로 대체 가능)"),
"as"=>array("A/S 책임자와 전화번호 또는 소비자상담 관련 전화번호", ""),
)
),
);
// 상품상세정보 테이블 생성
function create_table_item_info()
{
global $g4;
return sql_query("
CREATE TABLE IF NOT EXISTS `{$g4['shop_item_info_table']}` (
`ii_id` int(11) NOT NULL AUTO_INCREMENT,
`it_id` varchar(10) NOT NULL,
`ii_gubun` varchar(50) NOT NULL,
`ii_article` varchar(50) NOT NULL,
`ii_title` varchar(255) NOT NULL,
`ii_value` varchar(255) NOT NULL,
PRIMARY KEY (`ii_id`),
UNIQUE KEY `it_id` (`it_id`,`ii_gubun`,`ii_article`)
)
", false);
}
function item_info_gubun($gubun)
{
global $item_info;
return $item_info[$gubun]['title'];
}
?>

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,8 +11,10 @@ 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) . "?=";
//$fname = "=?$g4[charset]?B?" . base64_encode($fname) . "?=";
//$subject = "=?$g4[charset]?B?" . base64_encode($subject) . "?=";
$fname = "=?utf-8?B?" . base64_encode($fname) . "?=";
$subject = "=?utf-8?B?" . base64_encode($subject) . "?=";
//$g4[charset] = ($g4[charset] != "") ? "charset=$g4[charset]" : "";
$header = "Return-Path: <$fmail>\n";
@ -31,11 +33,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

@ -1,128 +0,0 @@
<?
if (!defined('_GNUBOARD_')) exit;
/*******************************************************************************
썸네일 Class
사용법 :
$thumb = new g4_thumbnail(경로, 썸네일이미지폭);
$thumb->run(이미지 경로가 포함된 컨텐츠);
*******************************************************************************/
class g4_thumb {
var $path;
var $width;
var $red = 0xff;
var $green = 0xff;
var $blue = 0xff;
var $quality = 100;
var $permission = 0606;
function g4_thumb($path, $width) {
$this->set_path($path);
$this->set_width($width);
}
// 경로
function set_path($path) {
$this->path = $path;
@mkdir($path, 0707);
@chmod($path, 0707);
}
function set_width($width) {
$this->width = $width;
}
function get_width() {
return $this->width;
}
function set_bgcolor($red, $green, $blue) {
$this->red = $red;
$this->green = $green;
$this->blue = $blue;
}
function set_quality($quality) {
$this->quality = $quality;
}
function set_permission($permission) {
$this->permission = $permission;
}
function create($srcimg, $thumbfile) {
$width = $this->get_width();
$source = null;
$size = @getimagesize($srcimg);
if ($size[2] == 1)
$source = @imagecreatefromgif($srcimg);
else if ($size[2] == 2)
$source = @imagecreatefromjpeg($srcimg);
else if ($size[2] == 3)
$source = @imagecreatefrompng($srcimg);
if ($source == null)
return '';
// 이미지의 폭이 설정폭 보다 작다면
if ($size[0] < $width) {
$width = $size[0];
$height = $size[1];
} else {
$rate = $width / $size[0];
$height = (int)($size[1] * $rate);
}
$target = @imagecreatetruecolor($width, $height);
$bgcolor = @imagecolorallocate($target, $this->red, $this->green, $this->blue); // 썸네일 배경
imagefilledrectangle($target, 0, 0, $width, $height, $bgcolor);
imagecopyresampled($source, $source, 0, 0, 0, 0, $width, $height, $size[0], $size[1]);
imagecopy($target, $source, 0, 0, 0, 0, $size[0], $size[1]);
imagejpeg($target, $thumbfile, $this->quality);
chmod($thumbfile, $this->permission); // 추후 삭제를 위하여 파일모드 변경
return $thumbfile;
}
function thumbnail($matches)
{
foreach ($matches as $img) {
preg_match("/src=[\"\']?([^\"\'\s>]+)/i", $img, $m);
$src = trim($m[1]);
$result = true;
if (preg_match("/\.(jpe?g|png|gif)$/i", $src)) {
// 유일한 파일명을 만든다.
$filename = md5($src).'_'.$this->width;
$thumb = $this->path.'/'.$filename;
if (!file_exists($thumb)) {
$result = $this->create($src, $thumb);
}
}
else {
$thumb = $src;
}
if ($result) {
$size = @getimagesize($src);
if ($size[0] < $this->width) {
return "<img src='$thumb' width='$size[0]' />";
} else {
return "<a href='$src' target='_blank' title='새창으로 크게 보기'><img src='$thumb' width='{$this->width}' border='0' /></a>";
}
}
}
}
function run($content)
{
//return preg_replace_callback('#<img[^>]+>#iS', create_function('$matches', 'return g4_thumb::thumbnail($matches);'), $content);
//return preg_replace_callback('#<img[^>]+>#iS', array('g4_thumb', 'thumbnail'), $content);
//return preg_replace_callback('#<img[^>]+>#iS', 'g4_thumb::thumbnail', $content);
return preg_replace_callback('#<img[^>]+>#iS', array($this, 'thumbnail'), $content);
}
}
?>

View File

@ -9,9 +9,65 @@ 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 구함
$imgurl = parse_url($matchs[1][$i]);
$srcfile = $_SERVER['DOCUMENT_ROOT'].$imgurl['path'];
$src_url = $matchs[1][$i];
if(preg_match("/\.({$config['cf_image_extension']})$/i", $srcfile) && is_file($srcfile)) {
$filename = basename($srcfile);
$filepath = dirname($srcfile);
preg_match("/alt=[\'\"]{1}(.*)[\'\"]{1}/", $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;
}
// 게시글보기 썸네일 생성
@ -104,6 +160,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

@ -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,15 +87,12 @@ 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_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_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_gallery_width'].'" height="'.$board['bo_gallery_height'].'">';
} else {
$img_content = '<span style="width:'.$board['bo_mobile_gallery_width'].'px;height:'.$board['bo_mobile_gallery_height'].'px">no image</span>';
$img_content = '<span style="width:'.$board['bo_gallery_width'].'px;height:'.$board['bo_gallery_height'].'px">no image</span>';
}
echo $img_content;

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

@ -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

@ -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

@ -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

@ -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>';
}

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

@ -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>
<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_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" 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" <?=$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,14 +119,14 @@ 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>
<? } ?>

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 로 발송된 내용을 확인한 후 인증하셔야 회원가입이 완료됩니다."; } ?>

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

@ -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>