충돌수정

This commit is contained in:
thisgun
2020-11-24 11:38:32 +09:00
45 changed files with 359 additions and 648 deletions

View File

@ -1129,7 +1129,7 @@ include_once('_rewrite_config_form.php');
<label for="check_social_payco">페이코 로그인을 사용합니다</label> <label for="check_social_payco">페이코 로그인을 사용합니다</label>
<div> <div>
<h3>페이코 CallbackURL</h3> <h3>페이코 CallbackURL</h3>
<p><?php echo get_social_callbackurl('payco'); ?></p> <p><?php echo get_social_callbackurl('payco', false, true); ?></p>
</div> </div>
</div> </div>
</td> </td>
@ -1157,7 +1157,7 @@ include_once('_rewrite_config_form.php');
<tr> <tr>
<th scope="row"><label for="cf_twitter_key">트위터 컨슈머 Key</label></th> <th scope="row"><label for="cf_twitter_key">트위터 컨슈머 Key</label></th>
<td> <td>
<input type="text" name="cf_twitter_key" value="<?php echo $config['cf_twitter_key'] ?>" id="cf_twitter_key" class="frm_input" size="40"> <a href="https://dev.twitter.com/apps" target="_blank" class="btn_frmline">앱 등록하기</a> <input type="text" name="cf_twitter_key" value="<?php echo $config['cf_twitter_key'] ?>" id="cf_twitter_key" class="frm_input" size="40"> <a href="https://developer.twitter.com/en/apps" target="_blank" class="btn_frmline">앱 등록하기</a>
</td> </td>
<th scope="row"><label for="cf_twitter_secret">트위터 컨슈머 Secret</label></th> <th scope="row"><label for="cf_twitter_secret">트위터 컨슈머 Secret</label></th>
<td> <td>
@ -1434,6 +1434,26 @@ $(function(){
function fconfigform_submit(f) function fconfigform_submit(f)
{ {
var current_user_ip = "<?php echo $_SERVER['REMOTE_ADDR']; ?>";
var cf_intercept_ip_val = f.cf_intercept_ip.value;
if( cf_intercept_ip_val && current_user_ip ){
var cf_intercept_ips = cf_intercept_ip_val.split("\n");
for(var i=0; i < cf_intercept_ips.length; i++){
if ( cf_intercept_ips[i].trim() ) {
cf_intercept_ips[i] = cf_intercept_ips[i].replace(".", "\.");
cf_intercept_ips[i] = cf_intercept_ips[i].replace("+", "[0-9\.]+");
var re = new RegExp(cf_intercept_ips[i]);
if ( re.test(current_user_ip) ){
alert("현재 접속 IP : "+ current_user_ip +" 가 차단될수 있기 때문에, 다른 IP를 입력해 주세요.");
return false;
}
}
}
}
f.action = "./config_form_update.php"; f.action = "./config_form_update.php";
return true; return true;
} }

View File

@ -38,6 +38,24 @@ foreach( $check_keys as $key ){
$_POST['cf_icode_server_port'] = isset($_POST['cf_icode_server_port']) ? preg_replace('/[^0-9]/', '', $_POST['cf_icode_server_port']) : '7295'; $_POST['cf_icode_server_port'] = isset($_POST['cf_icode_server_port']) ? preg_replace('/[^0-9]/', '', $_POST['cf_icode_server_port']) : '7295';
if(isset($_POST['cf_intercept_ip']) && $_POST['cf_intercept_ip']){
$pattern = explode("\n", trim($_POST['cf_intercept_ip']));
for ($i=0; $i<count($pattern); $i++) {
$pattern[$i] = trim($pattern[$i]);
if (empty($pattern[$i]))
continue;
$pattern[$i] = str_replace(".", "\.", $pattern[$i]);
$pattern[$i] = str_replace("+", "[0-9\.]+", $pattern[$i]);
$pat = "/^{$pattern[$i]}$/";
if( preg_match($pat, $_SERVER['REMOTE_ADDR']) ){
alert("현재 접속 IP : ".$_SERVER['REMOTE_ADDR']." 가 차단될수 있기 때문에, 다른 IP를 입력해 주세요.");
}
}
}
$sql = " update {$g5['config_table']} $sql = " update {$g5['config_table']}
set cf_title = '{$_POST['cf_title']}', set cf_title = '{$_POST['cf_title']}',
cf_admin = '{$_POST['cf_admin']}', cf_admin = '{$_POST['cf_admin']}',

View File

@ -243,7 +243,8 @@ add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js
$icon_file = G5_DATA_PATH.'/member/'.$mb_dir.'/'.get_mb_icon_name($mb['mb_id']).'.gif'; $icon_file = G5_DATA_PATH.'/member/'.$mb_dir.'/'.get_mb_icon_name($mb['mb_id']).'.gif';
if (file_exists($icon_file)) { if (file_exists($icon_file)) {
$icon_url = str_replace(G5_DATA_PATH, G5_DATA_URL, $icon_file); $icon_url = str_replace(G5_DATA_PATH, G5_DATA_URL, $icon_file);
echo '<img src="'.$icon_url.'" alt="">'; $icon_filemtile = (defined('G5_USE_MEMBER_IMAGE_FILETIME') && G5_USE_MEMBER_IMAGE_FILETIME) ? '?'.filemtime($icon_file) : '';
echo '<img src="'.$icon_url.$icon_filemtile.'" alt="">';
echo '<input type="checkbox" id="del_mb_icon" name="del_mb_icon" value="1">삭제'; echo '<input type="checkbox" id="del_mb_icon" name="del_mb_icon" value="1">삭제';
} }
?> ?>
@ -258,8 +259,7 @@ add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js
$mb_dir = substr($mb['mb_id'],0,2); $mb_dir = substr($mb['mb_id'],0,2);
$icon_file = G5_DATA_PATH.'/member_image/'.$mb_dir.'/'.get_mb_icon_name($mb['mb_id']).'.gif'; $icon_file = G5_DATA_PATH.'/member_image/'.$mb_dir.'/'.get_mb_icon_name($mb['mb_id']).'.gif';
if (file_exists($icon_file)) { if (file_exists($icon_file)) {
$icon_url = str_replace(G5_DATA_PATH, G5_DATA_URL, $icon_file); echo get_member_profile_img($mb['mb_id']);
echo '<img src="'.$icon_url.'" alt="">';
echo '<input type="checkbox" id="del_mb_img" name="del_mb_img" value="1">삭제'; echo '<input type="checkbox" id="del_mb_img" name="del_mb_img" value="1">삭제';
} }
?> ?>

View File

@ -126,7 +126,7 @@
/* 휴대폰번호 파일 */ /* 휴대폰번호 파일 */
#sms5_fileup_frm {margin:0 0 10px;padding:0 0;border-bottom:1px solid #e9e9e9} #sms5_fileup_frm {margin:0 0 10px;padding:0 0;border-bottom:1px solid #e9e9e9}
#sms5_fileup_frm div {padding:5px 0;;border-bottom:1px solid #f4f4f4} #sms5_fileup_frm div {padding:5px 0;border-bottom:1px solid #f4f4f4}
#sms5_fileup_frm div.sch_last {margin:0;border:0} #sms5_fileup_frm div.sch_last {margin:0;border:0}
#sms5_fileup_frm strong {display:inline-block;width:80px} #sms5_fileup_frm strong {display:inline-block;width:80px}
#sms5_fileup_frm strong.sch_long {width:160px} #sms5_fileup_frm strong.sch_long {width:160px}

View File

@ -6,6 +6,8 @@ $g5['title'] = "로그인 검사";
$mb_id = trim($_POST['mb_id']); $mb_id = trim($_POST['mb_id']);
$mb_password = trim($_POST['mb_password']); $mb_password = trim($_POST['mb_password']);
run_event('member_login_check_before', $mb_id);
if (!$mb_id || !$mb_password) if (!$mb_id || !$mb_password)
alert('회원아이디나 비밀번호가 공백이면 안됩니다.'); alert('회원아이디나 비밀번호가 공백이면 안됩니다.');
@ -140,5 +142,22 @@ if(function_exists('set_cart_id')){
run_event('member_login_check', $mb, $link, $is_social_login); run_event('member_login_check', $mb, $link, $is_social_login);
// 관리자로 로그인시 DATA 폴더의 쓰기 권한이 있는지 체크합니다. 쓰기 권한이 없으면 로그인을 못합니다.
if( is_admin($mb['mb_id']) && is_dir(G5_DATA_PATH.'/tmp/') ){
$tmp_data_file = G5_DATA_PATH.'/tmp/tmp-write-test-'.time();
$tmp_data_check = @fopen($tmp_data_file, 'w');
if($tmp_data_check){
if(! @fwrite($tmp_data_check, G5_URL)){
$tmp_data_check = false;
}
}
@fclose($tmp_data_check);
@unlink($tmp_data_file);
if(! $tmp_data_check){
alert("data 폴더에 쓰기권한이 없거나 또는 웹하드 용량이 없는 경우\\n로그인을 못할수도 있으니, 용량 체크 및 쓰기 권한을 확인해 주세요.", $link);
}
}
goto_url($link); goto_url($link);
?> ?>

View File

@ -131,11 +131,13 @@ include_once('./_head.php');
// 회원아이콘 경로 // 회원아이콘 경로
$mb_icon_path = G5_DATA_PATH.'/member/'.substr($member['mb_id'],0,2).'/'.get_mb_icon_name($member['mb_id']).'.gif'; $mb_icon_path = G5_DATA_PATH.'/member/'.substr($member['mb_id'],0,2).'/'.get_mb_icon_name($member['mb_id']).'.gif';
$mb_icon_url = G5_DATA_URL.'/member/'.substr($member['mb_id'],0,2).'/'.get_mb_icon_name($member['mb_id']).'.gif'; $mb_icon_filemtile = (defined('G5_USE_MEMBER_IMAGE_FILETIME') && G5_USE_MEMBER_IMAGE_FILETIME && file_exists($mb_icon_path)) ? '?'.filemtime($mb_icon_path) : '';
$mb_icon_url = G5_DATA_URL.'/member/'.substr($member['mb_id'],0,2).'/'.get_mb_icon_name($member['mb_id']).'.gif'.$mb_icon_filemtile;
// 회원이미지 경로 // 회원이미지 경로
$mb_img_path = G5_DATA_PATH.'/member_image/'.substr($member['mb_id'],0,2).'/'.get_mb_icon_name($member['mb_id']).'.gif'; $mb_img_path = G5_DATA_PATH.'/member_image/'.substr($member['mb_id'],0,2).'/'.get_mb_icon_name($member['mb_id']).'.gif';
$mb_img_url = G5_DATA_URL.'/member_image/'.substr($member['mb_id'],0,2).'/'.get_mb_icon_name($member['mb_id']).'.gif'; $mb_img_filemtile = (defined('G5_USE_MEMBER_IMAGE_FILETIME') && G5_USE_MEMBER_IMAGE_FILETIME && file_exists($mb_img_path)) ? '?'.filemtime($mb_img_path) : '';
$mb_img_url = G5_DATA_URL.'/member_image/'.substr($member['mb_id'],0,2).'/'.get_mb_icon_name($member['mb_id']).'.gif'.$mb_img_filemtile;
$register_action_url = G5_HTTPS_BBS_URL.'/register_form_update.php'; $register_action_url = G5_HTTPS_BBS_URL.'/register_form_update.php';
$req_nick = !isset($member['mb_nick_date']) || (isset($member['mb_nick_date']) && $member['mb_nick_date'] <= date("Y-m-d", G5_SERVER_TIME - ($config['cf_nick_modify'] * 86400))); $req_nick = !isset($member['mb_nick_date']) || (isset($member['mb_nick_date']) && $member['mb_nick_date'] <= date("Y-m-d", G5_SERVER_TIME - ($config['cf_nick_modify'] * 86400)));

View File

@ -98,7 +98,7 @@ function sql_escape_string($str)
// SQL Injection 등으로 부터 보호를 위해 sql_escape_string() 적용 // SQL Injection 등으로 부터 보호를 위해 sql_escape_string() 적용
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// magic_quotes_gpc 에 의한 backslashes 제거 // magic_quotes_gpc 에 의한 backslashes 제거
if (get_magic_quotes_gpc()) { if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
$_POST = array_map_deep('stripslashes', $_POST); $_POST = array_map_deep('stripslashes', $_POST);
$_GET = array_map_deep('stripslashes', $_GET); $_GET = array_map_deep('stripslashes', $_GET);
$_COOKIE = array_map_deep('stripslashes', $_COOKIE); $_COOKIE = array_map_deep('stripslashes', $_COOKIE);

View File

@ -5,16 +5,14 @@
********************/ ********************/
define('G5_VERSION', '그누보드5'); define('G5_VERSION', '그누보드5');
define('G5_GNUBOARD_VER', '5.4.3'); define('G5_GNUBOARD_VER', '5.4.3.1');
define('G5_YOUNGCART_VER', '5.4.3'); define('G5_YOUNGCART_VER', '5.4.3');
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음 // 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
define('_GNUBOARD_', true); define('_GNUBOARD_', true);
if (PHP_VERSION >= '5.1.0') { // 기본 시간대 설정
//if (function_exists("date_default_timezone_set")) date_default_timezone_set("Asia/Seoul"); date_default_timezone_set("Asia/Seoul");
date_default_timezone_set("Asia/Seoul");
}
/******************** /********************
경로 상수 경로 상수

View File

@ -80,7 +80,7 @@ border:1px solid #558ab7 !important;
#logo {float:left;padding:30px 0 0} #logo {float:left;padding:30px 0 0}
.hd_sch_wr {float:left;padding:30px 0;;width:445px;margin-left:65px} .hd_sch_wr {float:left;padding:30px 0;width:445px;margin-left:65px}
#hd_sch h3 {position:absolute;font-size:0;line-height:0;overflow:hidden} #hd_sch h3 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#hd_sch {border-radius:30px;overflow:hidden} #hd_sch {border-radius:30px;overflow:hidden}
#hd_sch #sch_stx {float:left;width:385px;height:45px;padding-left:10px;border-radius:30px 0 0 30px;background:#2c2c2c;border:0;border-right:0;font-size:1.25em;color:#fff} #hd_sch #sch_stx {float:left;width:385px;height:45px;padding-left:10px;border-radius:30px 0 0 30px;background:#2c2c2c;border:0;border-right:0;font-size:1.25em;color:#fff}

View File

@ -4,6 +4,8 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 유저 사이드뷰에서 아이콘 지정 안했을시 기본 no 프로필 이미지 // 유저 사이드뷰에서 아이콘 지정 안했을시 기본 no 프로필 이미지
define('G5_NO_PROFILE_IMG', '<span class="profile_img"><img src="'.G5_IMG_URL.'/no_profile.gif" alt="no_profile" width="'.$config['cf_member_icon_width'].'" height="'.$config['cf_member_icon_height'].'"></span>'); define('G5_NO_PROFILE_IMG', '<span class="profile_img"><img src="'.G5_IMG_URL.'/no_profile.gif" alt="no_profile" width="'.$config['cf_member_icon_width'].'" height="'.$config['cf_member_icon_height'].'"></span>');
define('G5_USE_MEMBER_IMAGE_FILETIME', TRUE);
// 썸네일 처리 방식, 비율유지 하지 않고 썸네일을 생성하려면 주석을 풀고 값은 false 입력합니다. ( true 또는 주석으로 된 경우에는 비율 유지합니다. ) // 썸네일 처리 방식, 비율유지 하지 않고 썸네일을 생성하려면 주석을 풀고 값은 false 입력합니다. ( true 또는 주석으로 된 경우에는 비율 유지합니다. )
//define('G5_USE_THUMB_RATIO', false); //define('G5_USE_THUMB_RATIO', false);
?> ?>

View File

@ -330,7 +330,7 @@ function get_file($bo_table, $wr_id)
$file['count']++; $file['count']++;
} }
return $file; return run_replace('get_files', $file, $bo_table, $wr_id);
} }
@ -1313,9 +1313,10 @@ function get_sideview($mb_id, $name='', $email='', $homepage='')
$icon_file = G5_DATA_PATH.'/member/'.$mb_dir.'/'.get_mb_icon_name($mb_id).'.gif'; $icon_file = G5_DATA_PATH.'/member/'.$mb_dir.'/'.get_mb_icon_name($mb_id).'.gif';
if (file_exists($icon_file)) { if (file_exists($icon_file)) {
$icon_filemtile = (defined('G5_USE_MEMBER_IMAGE_FILETIME') && G5_USE_MEMBER_IMAGE_FILETIME) ? '?'.filemtime($icon_file) : '';
$width = $config['cf_member_icon_width']; $width = $config['cf_member_icon_width'];
$height = $config['cf_member_icon_height']; $height = $config['cf_member_icon_height'];
$icon_file_url = G5_DATA_URL.'/member/'.$mb_dir.'/'.get_mb_icon_name($mb_id).'.gif'; $icon_file_url = G5_DATA_URL.'/member/'.$mb_dir.'/'.get_mb_icon_name($mb_id).'.gif'.$icon_filemtile;
$tmp_name .= '<span class="profile_img"><img src="'.$icon_file_url.'" width="'.$width.'" height="'.$height.'" alt=""></span>'; $tmp_name .= '<span class="profile_img"><img src="'.$icon_file_url.'" width="'.$width.'" height="'.$height.'" alt=""></span>';
if ($config['cf_use_member_icon'] == 2) // 회원아이콘+이름 if ($config['cf_use_member_icon'] == 2) // 회원아이콘+이름
@ -1655,6 +1656,8 @@ function sql_fetch_array($result)
// 단, 결과 값은 스크립트(script) 실행부가 종료되면서 메모리에서 자동적으로 지워진다. // 단, 결과 값은 스크립트(script) 실행부가 종료되면서 메모리에서 자동적으로 지워진다.
function sql_free_result($result) function sql_free_result($result)
{ {
if(!is_resource($result)) return;
if(function_exists('mysqli_free_result') && G5_MYSQLI_USE) if(function_exists('mysqli_free_result') && G5_MYSQLI_USE)
return mysqli_free_result($result); return mysqli_free_result($result);
else else
@ -2328,7 +2331,7 @@ function delete_editor_thumbnail($contents)
run_event('delete_editor_thumbnail_before', $contents); run_event('delete_editor_thumbnail_before', $contents);
// $contents 중 img 태그 추출 // $contents 중 img 태그 추출
$matchs = get_editor_image($contents); $matchs = get_editor_image($contents, false);
if(!$matchs) if(!$matchs)
return; return;
@ -2336,8 +2339,8 @@ function delete_editor_thumbnail($contents)
for($i=0; $i<count($matchs[1]); $i++) { for($i=0; $i<count($matchs[1]); $i++) {
// 이미지 path 구함 // 이미지 path 구함
$imgurl = @parse_url($matchs[1][$i]); $imgurl = @parse_url($matchs[1][$i]);
$srcfile = $_SERVER['DOCUMENT_ROOT'].$imgurl['path']; $srcfile = dirname(G5_PATH).$imgurl['path'];
if(! preg_match('/(\.jpe?g|\.gif|\.png)$/i', $srcfile)) continue;
$filename = preg_replace("/\.[^\.]+$/i", "", basename($srcfile)); $filename = preg_replace("/\.[^\.]+$/i", "", basename($srcfile));
$filepath = dirname($srcfile); $filepath = dirname($srcfile);
$files = glob($filepath.'/thumb-'.$filename.'*'); $files = glob($filepath.'/thumb-'.$filename.'*');
@ -3624,6 +3627,9 @@ function get_member_profile_img($mb_id='', $width='', $height='', $alt='profile_
} else { } else {
$member_img = G5_DATA_PATH.'/member_image/'.substr($mb_id,0,2).'/'.get_mb_icon_name($mb_id).'.gif'; $member_img = G5_DATA_PATH.'/member_image/'.substr($mb_id,0,2).'/'.get_mb_icon_name($mb_id).'.gif';
if (is_file($member_img)) { if (is_file($member_img)) {
if(defined('G5_USE_MEMBER_IMAGE_FILETIME') && G5_USE_MEMBER_IMAGE_FILETIME) {
$member_img .= '?'.filemtime($member_img);
}
$member_cache[$mb_id] = $src = str_replace(G5_DATA_PATH, G5_DATA_URL, $member_img); $member_cache[$mb_id] = $src = str_replace(G5_DATA_PATH, G5_DATA_URL, $member_img);
} }
} }
@ -3828,7 +3834,7 @@ function is_include_path_check($path='', $is_input='')
if( preg_match('/\/data\/(file|editor|qa|cache|member|member_image|session|tmp)\/[A-Za-z0-9_]{1,20}\//i', $replace_path) ){ if( preg_match('/\/data\/(file|editor|qa|cache|member|member_image|session|tmp)\/[A-Za-z0-9_]{1,20}\//i', $replace_path) ){
return false; return false;
} }
if( preg_match('/'.G5_PLUGIN_DIR.'\//i', $replace_path) && (preg_match('/'.G5_OKNAME_DIR.'\//i', $replace_path) || preg_match('/'.G5_KCPCERT_DIR.'\//i', $replace_path) || preg_match('/'.G5_LGXPAY_DIR.'\//i', $replace_path)) ){ if( preg_match('/'.G5_PLUGIN_DIR.'\//i', $replace_path) && (preg_match('/'.G5_OKNAME_DIR.'\//i', $replace_path) || preg_match('/'.G5_KCPCERT_DIR.'\//i', $replace_path) || preg_match('/'.G5_LGXPAY_DIR.'\//i', $replace_path)) || (preg_match('/search\.skin\.php/i', $replace_path) ) ){
return false; return false;
} }
if( substr_count($replace_path, './') > 5 ){ if( substr_count($replace_path, './') > 5 ){

View File

@ -56,8 +56,8 @@ class LMS {
} }
function Init() { function Init() {
$this->Data = ""; // 발송하기 위한 패킷내용이 배열로 들어간다. $this->Data = array(); // 발송하기 위한 패킷내용이 배열로 들어간다.
$this->Result = ""; // 발송결과값이 배열로 들어간다. $this->Result = array(); // 발송결과값이 배열로 들어간다.
} }
function Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate="", $nCount) { function Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate="", $nCount) {

View File

@ -67,8 +67,8 @@ class SMS {
} }
function Init() { function Init() {
$this->Data = ""; $this->Data = array();
$this->Result = ""; $this->Result = array();
} }
function Add($dest, $callBack, $Caller, $msg, $rsvTime="") { function Add($dest, $callBack, $Caller, $msg, $rsvTime="") {

View File

@ -44,7 +44,7 @@
#bo_list .bo_subject .fa-link {width:16px;line-height:16px;background:#edd3fd;color:#b451fd;text-align:center;font-size:10px;border-radius:2px;vertical-align:baseline} #bo_list .bo_subject .fa-link {width:16px;line-height:16px;background:#edd3fd;color:#b451fd;text-align:center;font-size:10px;border-radius:2px;vertical-align:baseline}
#bo_list .bo_subject .fa-heart {color:#ff0000;text-align:center;font-size:10px;border-radius:2px} #bo_list .bo_subject .fa-heart {color:#ff0000;text-align:center;font-size:10px;border-radius:2px}
#bo_list .bo_subject .new_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#23db79;background:#b9ffda;text-align:center;border-radius:2px;margin:0 4px;font-weight:bold;vertical-align:middle} #bo_list .bo_subject .new_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#23db79;background:#b9ffda;text-align:center;border-radius:2px;margin:0 4px;font-weight:bold;vertical-align:middle}
#bo_list .bo_subject .fa-lock {display:inline-block;line-height:16px;width:16px;font-size:0.833em;color:#4f818c;background:#cbe3e8;text-align:center;border-radius:2px;font-size:12px;border:1px solid #cbe3e8;vertical-align:baseline} #bo_list .bo_subject .fa-lock {display:inline-block;line-height:16px;width:16px;color:#4f818c;background:#cbe3e8;text-align:center;border-radius:2px;font-size:12px;border:1px solid #cbe3e8;vertical-align:baseline}
#bo_cate h2 {width:0;height:0;font-size:0;line-height:0;overflow:hidden} #bo_cate h2 {width:0;height:0;font-size:0;line-height:0;overflow:hidden}
@ -77,7 +77,7 @@
.bo_fx {margin-bottom:5px;padding:0 10px} .bo_fx {margin-bottom:5px;padding:0 10px}
.bo_fx:after {display:block;visibility:hidden;clear:both;content:""} .bo_fx:after {display:block;visibility:hidden;clear:both;content:""}
.bo_fx ul {margin:0;padding:0;list-style:none} .bo_fx ul {margin:0;padding:0;list-style:none}
#bo_list_total {margin:10px;text-align:center;padding:10px;text-align:center;background:#e3e7ec;color:#8b8b8b;border-radius:3px} #bo_list_total {margin:10px;padding:10px;text-align:center;background:#e3e7ec;color:#8b8b8b;border-radius:3px}
.btn_bo_user > li {float:left;text-align:center;margin-left:5px} .btn_bo_user > li {float:left;text-align:center;margin-left:5px}
.btn_bo_adm button {border:0;padding:0 10px;background:#d13f4a;color:#fff;text-decoration:none;vertical-align:middle} .btn_bo_adm button {border:0;padding:0 10px;background:#d13f4a;color:#fff;text-decoration:none;vertical-align:middle}
@ -142,7 +142,7 @@
#bo_sch:after {display:block;visibility:hidden;clear:both;content:""} #bo_sch:after {display:block;visibility:hidden;clear:both;content:""}
#bo_sch legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} #bo_sch legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden}
#bo_sch select {border:0;height:38px;border-right:1px solid #f8f8f8;float:left;width:30%} #bo_sch select {border:0;height:38px;border-right:1px solid #f8f8f8;float:left;width:30%}
#bo_sch .sch_input {height:38px;border:0;padding:0;background-color:transparent;float:left;width:70%;padding:0 40px 0 10px} #bo_sch .sch_input {height:38px;border:0;background-color:transparent;float:left;width:70%;padding:0 40px 0 10px}
#bo_sch .sch_btn {height:38px;position:absolute;top:0;right:0;border:0;width:40px;background:none;font-size:15px} #bo_sch .sch_btn {height:38px;position:absolute;top:0;right:0;border:0;width:40px;background:none;font-size:15px}
.view_is_list.btn_top {position:relative;z-index:auto;top:0;left:0} .view_is_list.btn_top {position:relative;z-index:auto;top:0;left:0}
@ -165,7 +165,7 @@
#bo_v_table {padding:10px;color:#999;font-size:0.9em;font-weight:bold} #bo_v_table {padding:10px;color:#999;font-size:0.9em;font-weight:bold}
#bo_v_title {} #bo_v_title {}
.bo_v_cate {display:inline-block;background:#e2eaf6;color:#3a8afd;border-radius:13px;line-height:20px;border-radius:5px;padding:0 5px;font-weight:bold} .bo_v_cate {display:inline-block;background:#e2eaf6;color:#3a8afd;line-height:20px;border-radius:5px;padding:0 5px;font-weight:bold}
.bo_v_tit {display:block;font-size:1.5em;margin:10px 0 0} .bo_v_tit {display:block;font-size:1.5em;margin:10px 0 0}
#bo_v_info {padding:15px 0;color:#8e8e8e;line-height:20px} #bo_v_info {padding:15px 0;color:#8e8e8e;line-height:20px}

View File

@ -66,7 +66,7 @@
.bo_fx {margin-bottom:5px;padding:0 10px} .bo_fx {margin-bottom:5px;padding:0 10px}
.bo_fx:after {display:block;visibility:hidden;clear:both;content:""} .bo_fx:after {display:block;visibility:hidden;clear:both;content:""}
.bo_fx ul {margin:0;padding:0;list-style:none} .bo_fx ul {margin:0;padding:0;list-style:none}
#bo_list_total {margin:10px;text-align:center;padding:10px;text-align:center;background:#e3e7ec;color:#8b8b8b;border-radius:3px} #bo_list_total {margin:10px;text-align:center;padding:10px;background:#e3e7ec;color:#8b8b8b;border-radius:3px}
.btn_bo_user > li {float:left;text-align:center;margin-left:5px} .btn_bo_user > li {float:left;text-align:center;margin-left:5px}
.btn_bo_adm button {border:0;padding:0 10px;background:#d13f4a;color:#fff;text-decoration:none;vertical-align:middle} .btn_bo_adm button {border:0;padding:0 10px;background:#d13f4a;color:#fff;text-decoration:none;vertical-align:middle}
@ -108,7 +108,7 @@
#bo_sch:after {display:block;visibility:hidden;clear:both;content:""} #bo_sch:after {display:block;visibility:hidden;clear:both;content:""}
#bo_sch legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} #bo_sch legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden}
#bo_sch select {border:0;height:38px;border-right:1px solid #f8f8f8;float:left;width:30%} #bo_sch select {border:0;height:38px;border-right:1px solid #f8f8f8;float:left;width:30%}
#bo_sch .sch_input {height:38px;border:0;padding:0;background-color:transparent;float:left;width:70%;padding:0 40px 0 10px} #bo_sch .sch_input {height:38px;border:0;background-color:transparent;float:left;width:70%;padding:0 40px 0 10px}
#bo_sch .sch_btn {height:38px;position:absolute;top:0;right:0;border:0;width:40px;background:none;font-size:15px} #bo_sch .sch_btn {height:38px;position:absolute;top:0;right:0;border:0;width:40px;background:none;font-size:15px}
.view_is_list.btn_top {position:relative;z-index:auto;top:0;left:0} .view_is_list.btn_top {position:relative;z-index:auto;top:0;left:0}
@ -197,7 +197,7 @@
#bo_v_table {padding:10px;color:#999;font-size:0.9em;font-weight:bold} #bo_v_table {padding:10px;color:#999;font-size:0.9em;font-weight:bold}
#bo_v_title {} #bo_v_title {}
.bo_v_cate {display:inline-block;background:#e2eaf6;color:#3a8afd;border-radius:13px;line-height:20px;border-radius:5px;padding:0 5px;font-weight:bold} .bo_v_cate {display:inline-block;background:#e2eaf6;color:#3a8afd;line-height:20px;border-radius:5px;padding:0 5px;font-weight:bold}
.bo_v_tit {display:block;font-size:1.5em;margin:10px 0 0} .bo_v_tit {display:block;font-size:1.5em;margin:10px 0 0}
#bo_v_info {padding:15px 0;color:#8e8e8e;line-height:20px} #bo_v_info {padding:15px 0;color:#8e8e8e;line-height:20px}

View File

@ -19,7 +19,7 @@
.lt .lt_cmt {background:#e9eff5;color:#3a8afd;font-size:11px;height:16px;line-height:16px;padding:0 5px;border-radius:3px;vertical-align:middle} .lt .lt_cmt {background:#e9eff5;color:#3a8afd;font-size:11px;height:16px;line-height:16px;padding:0 5px;border-radius:3px;vertical-align:middle}
.lt .profile_img img {border-radius:50%;vertical-align:top} .lt .profile_img img {border-radius:50%;vertical-align:top}
.lt li .fa-lock {display:inline-block;line-height:14px;width:16px;font-size:0.833em;color:#4f818c;background:#cbe3e8;text-align:center;border-radius:2px;font-size:12px;border:1px solid #cbe3e8;vertical-align:middle} .lt li .fa-lock {display:inline-block;line-height:14px;width:16px;color:#4f818c;background:#cbe3e8;text-align:center;border-radius:2px;font-size:12px;border:1px solid #cbe3e8;vertical-align:middle}
.lt li .fa-download {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#daae37;background:#ffefb9;text-align:center;border-radius:2px;vertical-align:middle} .lt li .fa-download {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#daae37;background:#ffefb9;text-align:center;border-radius:2px;vertical-align:middle}
.lt li .fa-link {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#b451fd;background:#edd3fd;text-align:center;border-radius:2px;vertical-align:middle} .lt li .fa-link {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#b451fd;background:#edd3fd;text-align:center;border-radius:2px;vertical-align:middle}
.lt li .hot_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#ff0000;background:#ffb9b9;text-align:center;border-radius:2px;vertical-align:middle} .lt li .hot_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#ff0000;background:#ffb9b9;text-align:center;border-radius:2px;vertical-align:middle}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 820 B

View File

@ -41,7 +41,7 @@ add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css
<?php if( social_service_check('google') ) { //구글 로그인을 사용한다면 ?> <?php if( social_service_check('google') ) { //구글 로그인을 사용한다면 ?>
<a href="<?php echo $self_url;?>?provider=google&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-google" title="구글"> <a href="<?php echo $self_url;?>?provider=google&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-google" title="구글">
<span class="ico"></span> <span class="ico"></span>
<span class="txt">구글+<i> 로그인</i></span> <span class="txt"><i> Sign in with Google</i></span>
</a> </a>
<?php } //end if ?> <?php } //end if ?>
<?php if( social_service_check('twitter') ) { //트위터 로그인을 사용한다면 ?> <?php if( social_service_check('twitter') ) { //트위터 로그인을 사용한다면 ?>

View File

@ -41,7 +41,7 @@ add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css
<?php if( social_service_check('google') ) { //구글 로그인을 사용한다면 ?> <?php if( social_service_check('google') ) { //구글 로그인을 사용한다면 ?>
<a href="<?php echo $self_url;?>?provider=google&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-google" title="구글"> <a href="<?php echo $self_url;?>?provider=google&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-google" title="구글">
<span class="ico"></span> <span class="ico"></span>
<span class="txt">구글+<i> 로그인</i></span> <span class="txt"><i> Sign in with Google</i></span>
</a> </a>
<?php } //end if ?> <?php } //end if ?>
<?php if( social_service_check('twitter') ) { //트위터 로그인을 사용한다면 ?> <?php if( social_service_check('twitter') ) { //트위터 로그인을 사용한다면 ?>

View File

@ -42,7 +42,7 @@ add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css
<?php if( social_service_check('google') ) { //구글 로그인을 사용한다면 ?> <?php if( social_service_check('google') ) { //구글 로그인을 사용한다면 ?>
<a href="<?php echo $self_url;?>?provider=google&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-google" title="구글"> <a href="<?php echo $self_url;?>?provider=google&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-google" title="구글">
<span class="ico"></span> <span class="ico"></span>
<span class="txt">구글+<i> 로그인</i></span> <span class="txt"><i> Sign in with Google</i></span>
</a> </a>
<?php } //end if ?> <?php } //end if ?>
<?php if( social_service_check('twitter') ) { //트위터 로그인을 사용한다면 ?> <?php if( social_service_check('twitter') ) { //트위터 로그인을 사용한다면 ?>

View File

@ -65,12 +65,13 @@
/*로그인 */ /*로그인 */
#sns_login {border:0;margin-top:15px;padding:0; border-top:1px solid #edeaea} #sns_login {border:0;margin-top:15px;padding:0; border-top:1px solid #edeaea}
#sns_login h3 {padding:0;font-weight:bold;color:#888;text-align:center} #sns_login h3 {padding:0;font-weight:bold;color:#888;text-align:center}
#sns_login .sns-icon {display:block;height:40px;line-height:40px;width:100%;margin:0 0 5px;padding-left:40px;text-align:left;color:#fff;border-radius:2px} #sns_login .sns-icon {position:relative;display:block;height:40px;line-height:40px;width:100%;margin:0 0 5px;padding-left:40px;text-align:left;color:#fff;border-radius:2px}
#sns_login .sns-naver {background-color:#1fc800;background-position:5px 5px;border-bottom:1px solid #1ea505} #sns_login .sns-naver {background-color:#1fc800;background-position:5px 5px;border-bottom:1px solid #1ea505}
#sns_login .sns-kakao {background-color:#ffeb00;background-position:5px 5px;border-bottom:1px solid #e2c10a} #sns_login .sns-kakao {background-color:#ffeb00;background-position:5px 5px;border-bottom:1px solid #e2c10a}
#sns_login .sns-kakao {color:#3c1e1e} #sns_login .sns-kakao {color:#3c1e1e}
#sns_login .sns-facebook {background-color:#3b579d;background-position:5px 5px;border-bottom:1px solid #28458f} #sns_login .sns-facebook {background-color:#3b579d;background-position:5px 5px;border-bottom:1px solid #28458f}
#sns_login .sns-google {background-color:#db4a3a;background-position:5px 5px;border-bottom:1px solid #c03121} #sns_login .sns-google {background-color:#4285F4;background-position:5px 5px;border-bottom:1px solid #3567c6}
#sns_login .sns-google .ico {position:absolute;top:3px;left:3px;width:33px;height:33px;background:url('./img/sns_gp_s.png') no-repeat center center;background-color:#fff;background-size:28px 28px!important;border-radius:2px}
#sns_login .sns-twitter {background-color:#1ea1f2;background-position:5px 5px;border-bottom:1px solid #1e82c0} #sns_login .sns-twitter {background-color:#1ea1f2;background-position:5px 5px;border-bottom:1px solid #1e82c0}
#sns_login .sns-payco {background-color:#df0b00;background-position:5px 5px;border-bottom:1px solid #9d0800} #sns_login .sns-payco {background-color:#df0b00;background-position:5px 5px;border-bottom:1px solid #9d0800}
#sns_login .txt {text-align:left;padding-left:10px;border-left:1px solid rgba(0,0,0,0.1);display:block;font-weight:bold} #sns_login .txt {text-align:left;padding-left:10px;border-left:1px solid rgba(0,0,0,0.1);display:block;font-weight:bold}
@ -80,13 +81,14 @@
#sns_register h2 {font-size:1.167em;text-align:left;padding:15px 20px;border-bottom:1px solid #dbdbdb} #sns_register h2 {font-size:1.167em;text-align:left;padding:15px 20px;border-bottom:1px solid #dbdbdb}
#sns_register .sns-wrap:after {display:block;visibility:hidden;clear:both;content:""} #sns_register .sns-wrap:after {display:block;visibility:hidden;clear:both;content:""}
#sns_register .sns-wrap {display:inline-block;padding:20px;vertical-align:top;margin:0} #sns_register .sns-wrap {display:inline-block;padding:20px;vertical-align:top;margin:0}
#sns_register .sns-icon {display:inline-block;height:40px;line-height:40px;width:100%;margin:0 0 5px;padding-left:40px;text-align:left;color:#fff;border-radius:2px;float:left} #sns_register .sns-icon {position:relative;display:inline-block;height:40px;line-height:40px;width:100%;margin:0 0 5px;padding-left:40px;text-align:left;color:#fff;border-radius:2px;float:left}
#sns_register .sns-icon:nth-child(3n+1) {clear:both} #sns_register .sns-icon:nth-child(3n+1) {clear:both}
#sns_register .sns-naver {background-color:#1fc800;background-position:5px 5px;border-bottom:1px solid #1ea505} #sns_register .sns-naver {background-color:#1fc800;background-position:5px 5px;border-bottom:1px solid #1ea505}
#sns_register .sns-kakao {background-color:#ffeb00;background-position:5px 5px;border-bottom:1px solid #e2c10a} #sns_register .sns-kakao {background-color:#ffeb00;background-position:5px 5px;border-bottom:1px solid #e2c10a}
#sns_register .sns-kakao {color:#3c1e1e} #sns_register .sns-kakao {color:#3c1e1e}
#sns_register .sns-facebook {background-color:#3b579d;background-position:5px 5px;border-bottom:1px solid #28458f} #sns_register .sns-facebook {background-color:#3b579d;background-position:5px 5px;border-bottom:1px solid #28458f}
#sns_register .sns-google {background-color:#db4a3a;background-position:5px 5px;border-bottom:1px solid #c03121} #sns_register .sns-google {background-color:#4285F4;background-position:5px 5px;border-bottom:1px solid #3567c6}
#sns_register .sns-google .ico {position:absolute;top:3px;left:3px;width:33px;height:33px;background:url('./img/sns_gp_s.png') no-repeat center center;background-color:#fff;background-size:28px 28px!important;border-radius:2px}
#sns_register .sns-twitter {background-color:#1ea1f2;background-position:5px 5px;border-bottom:1px solid #1e82c0} #sns_register .sns-twitter {background-color:#1ea1f2;background-position:5px 5px;border-bottom:1px solid #1e82c0}
#sns_register .sns-payco {background-color:#df0b00;background-position:5px 5px;border-bottom:1px solid #9d0800} #sns_register .sns-payco {background-color:#df0b00;background-position:5px 5px;border-bottom:1px solid #9d0800}
#sns_register .txt {display:block;padding-left:10px;border-left:1px solid rgba(0,0,0,0.1);font-weight:bold} #sns_register .txt {display:block;padding-left:10px;border-left:1px solid rgba(0,0,0,0.1);font-weight:bold}

View File

@ -30,8 +30,14 @@ define("SAVE_DIR", $data_dir);
define("SAVE_URL", $data_url); define("SAVE_URL", $data_url);
function che_get_user_id() { function che_get_user_id() {
@session_start(); global $member;
return session_id();
if(session_id() == '') {
@session_start();
}
$add_str = (isset($member['mb_id']) && $member['mb_id']) ? $member['mb_id'] : '';
return session_id().$add_str;
} }
function che_get_file_passname(){ function che_get_file_passname(){

View File

@ -215,14 +215,20 @@ class UploadHandler
substr($_SERVER['SCRIPT_NAME'],0, strrpos($_SERVER['SCRIPT_NAME'], '/')); substr($_SERVER['SCRIPT_NAME'],0, strrpos($_SERVER['SCRIPT_NAME'], '/'));
} }
protected function get_user_id() { protected function get_user_id($is_add=true) {
@session_start(); global $member;
return session_id();
if(session_id() == '') {
@session_start();
}
$add_str = ($is_add && isset($member['mb_id']) && $member['mb_id']) ? $member['mb_id'] : '';
return session_id().$add_str;
} }
protected function get_user_path() { protected function get_user_path() {
if ($this->options['user_dirs']) { if ($this->options['user_dirs']) {
return $this->get_user_id().'/'; return $this->get_user_id(false).'/';
} }
return ''; return '';
} }

View File

@ -19,7 +19,7 @@ class Hybrid_Providers_Google extends Hybrid_Provider_Model_OAuth2 {
* default permissions * default permissions
* {@inheritdoc} * {@inheritdoc}
*/ */
public $scope = "https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/plus.profile.emails.read https://www.google.com/m8/feeds/"; public $scope = "https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email https://www.google.com/m8/feeds/";
/** /**
* {@inheritdoc} * {@inheritdoc}
@ -72,35 +72,22 @@ class Hybrid_Providers_Google extends Hybrid_Provider_Model_OAuth2 {
// refresh tokens if needed // refresh tokens if needed
$this->refreshToken(); $this->refreshToken();
// ask google api for user infos $response = $this->api->api("https://www.googleapis.com/oauth2/v3/userinfo");
if (strpos($this->scope, '/auth/plus.profile.emails.read') !== false) { if (!isset($response->sub) || isset($response->error)) {
$verified = $this->api->api("https://www.googleapis.com/plus/v1/people/me");
if (!isset($verified->id) || isset($verified->error))
$verified = new stdClass();
} else {
$verified = $this->api->api("https://www.googleapis.com/plus/v1/people/me/openIdConnect");
if (!isset($verified->sub) || isset($verified->error))
$verified = new stdClass();
}
$response = $this->api->api("https://www.googleapis.com/plus/v1/people/me");
if (!isset($response->id) || isset($response->error)) {
throw new Exception("User profile request failed! {$this->providerId} returned an invalid response:" . Hybrid_Logger::dumpData( $response ), 6); throw new Exception("User profile request failed! {$this->providerId} returned an invalid response:" . Hybrid_Logger::dumpData( $response ), 6);
} }
$this->user->profile->identifier = (property_exists($verified, 'id')) ? $verified->id : ((property_exists($response, 'id')) ? $response->id : ""); $this->user->profile->identifier = (property_exists($response, 'sub')) ? $response->sub : "";
$this->user->profile->firstName = (property_exists($response, 'name')) ? $response->name->givenName : ""; $this->user->profile->firstName = (property_exists($response, 'given_name')) ? $response->given_name : "";
$this->user->profile->lastName = (property_exists($response, 'name')) ? $response->name->familyName : ""; $this->user->profile->lastName = (property_exists($response, 'family_name')) ? $response->family_name : "";
$this->user->profile->displayName = (property_exists($response, 'displayName')) ? $response->displayName : ""; $this->user->profile->displayName = (property_exists($response, 'name')) ? $response->name : "";
$this->user->profile->photoURL = (property_exists($response, 'image')) ? ((property_exists($response->image, 'url')) ? substr($response->image->url, 0, -2) . "200" : '') : ''; $this->user->profile->photoURL = (property_exists($response, 'picture')) ? $response->picture : "";
$this->user->profile->profileURL = (property_exists($response, 'url')) ? $response->url : ""; $this->user->profile->profileURL = (property_exists($response, 'profile')) ? $response->profile : "";
$this->user->profile->description = (property_exists($response, 'aboutMe')) ? $response->aboutMe : "";
$this->user->profile->gender = (property_exists($response, 'gender')) ? $response->gender : ""; $this->user->profile->gender = (property_exists($response, 'gender')) ? $response->gender : "";
$this->user->profile->language = (property_exists($response, 'locale')) ? $response->locale : ((property_exists($verified, 'locale')) ? $verified->locale : ""); $this->user->profile->language = (property_exists($response, 'locale')) ? $response->locale : "";
$this->user->profile->email = (property_exists($response, 'email')) ? $response->email : ((property_exists($verified, 'email')) ? $verified->email : ""); $this->user->profile->email = (property_exists($response, 'email')) ? $response->email : "";
$this->user->profile->emailVerified = (property_exists($verified, 'email')) ? $verified->email : ""; $this->user->profile->emailVerified = (property_exists($response, 'email_verified')) ? ($response->email_verified === true || $response->email_verified === 1 ? $response->email : "") : "";
if (property_exists($response, 'emails')) { if (property_exists($response, 'emails')) {
if (count($response->emails) == 1) { if (count($response->emails) == 1) {
$this->user->profile->email = $response->emails[0]->value; $this->user->profile->email = $response->emails[0]->value;
@ -125,69 +112,6 @@ class Hybrid_Providers_Google extends Hybrid_Provider_Model_OAuth2 {
} }
} }
} }
$this->user->profile->phone = (property_exists($response, 'phone')) ? $response->phone : "";
$this->user->profile->country = (property_exists($response, 'country')) ? $response->country : "";
$this->user->profile->region = (property_exists($response, 'region')) ? $response->region : "";
$this->user->profile->zip = (property_exists($response, 'zip')) ? $response->zip : "";
if (property_exists($response, 'placesLived')) {
$this->user->profile->city = "";
$this->user->profile->address = "";
foreach ($response->placesLived as $c) {
if (property_exists($c, 'primary')) {
if ($c->primary == true) {
$this->user->profile->address = $c->value;
$this->user->profile->city = $c->value;
break;
}
} else {
if (property_exists($c, 'value')) {
$this->user->profile->address = $c->value;
$this->user->profile->city = $c->value;
}
}
}
}
// google API returns multiple urls, but a "website" only if it is verified
// see http://support.google.com/plus/answer/1713826?hl=en
if (property_exists($response, 'urls')) {
foreach ($response->urls as $u) {
if (property_exists($u, 'primary') && $u->primary == true)
$this->user->profile->webSiteURL = $u->value;
}
} else {
$this->user->profile->webSiteURL = '';
}
// google API returns age ranges min and/or max as of https://developers.google.com/+/web/api/rest/latest/people#resource
if (property_exists($response, 'ageRange')) {
if (property_exists($response->ageRange, 'min') && property_exists($response->ageRange, 'max')) {
$this->user->profile->age = $response->ageRange->min . ' - ' . $response->ageRange->max;
} else {
if (property_exists($response->ageRange, 'min')) {
$this->user->profile->age = '>= ' . $response->ageRange->min;
} else {
if (property_exists($response->ageRange, 'max')) {
$this->user->profile->age = '<= ' . $response->ageRange->max;
} else {
$this->user->profile->age = '';
}
}
}
} else {
$this->user->profile->age = '';
}
// google API returns birthdays only if a user set 'show in my account'
if (property_exists($response, 'birthday')) {
list($birthday_year, $birthday_month, $birthday_day) = explode('-', $response->birthday);
$this->user->profile->birthDay = (int) $birthday_day;
$this->user->profile->birthMonth = (int) $birthday_month;
$this->user->profile->birthYear = (int) $birthday_year;
} else {
$this->user->profile->birthDay = 0;
$this->user->profile->birthMonth = 0;
$this->user->profile->birthYear = 0;
}
$this->user->profile->sid = get_social_convert_id( $this->user->profile->identifier, $this->providerId ); $this->user->profile->sid = get_social_convert_id( $this->user->profile->identifier, $this->providerId );

View File

@ -13,35 +13,35 @@
*/ */
class Hybrid_Providers_Payco extends Hybrid_Provider_Model_OAuth2 { class Hybrid_Providers_Payco extends Hybrid_Provider_Model_OAuth2 {
private $idNo; private $idNo;
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
function initialize() { function initialize() {
parent::initialize(); parent::initialize();
// Provider API end-points // Provider API end-points
$this->api->api_base_url = 'https://id.payco.com/oauth2.0/'; $this->api->api_base_url = 'https://id.payco.com/oauth2.0/';
$this->api->authorize_url = 'https://id.payco.com/oauth2.0/authorize'; $this->api->authorize_url = 'https://id.payco.com/oauth2.0/authorize';
$this->api->token_url = 'https://id.payco.com/oauth2.0/token'; $this->api->token_url = 'https://id.payco.com/oauth2.0/token';
$this->api->token_info = 'https://apis3.krp.toastoven.net/payco/friends/getIdNoByFriendsToken.json'; $this->api->token_info = 'https://apis3.krp.toastoven.net/payco/friends/getIdNoByFriendsToken.json';
$this->api->profile_url = 'https://apis3.krp.toastoven.net/payco/friends/getMemberProfileByFriendsToken.json'; $this->api->profile_url = 'https://apis-payco.krp.toastoven.net/payco/friends/find_member_v2.json';
if (!$this->config["keys"]["id"] || !$this->config["keys"]["secret"]) { if (!$this->config["keys"]["id"] || !$this->config["keys"]["secret"]) {
throw new Exception("Your application id and secret are required in order to connect to {$this->providerId}.", 4); throw new Exception("Your application id and secret are required in order to connect to {$this->providerId}.", 4);
} }
// redirect uri mismatches when authenticating with Payco. // redirect uri mismatches when authenticating with Payco.
if (isset($this->config['redirect_uri']) && !empty($this->config['redirect_uri'])) { if (isset($this->config['redirect_uri']) && !empty($this->config['redirect_uri'])) {
$this->api->redirect_uri = $this->config['redirect_uri']; $this->api->redirect_uri = $this->config['redirect_uri'];
} }
} }
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
function loginBegin() { function loginBegin() {
$token = md5(uniqid(mt_rand(), true)); $token = md5(uniqid(mt_rand(), true));
Hybrid_Auth::storage()->set('payco_auth_token', $token); Hybrid_Auth::storage()->set('payco_auth_token', $token);
@ -59,16 +59,16 @@ class Hybrid_Providers_Payco extends Hybrid_Provider_Model_OAuth2 {
exit; exit;
} }
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
function loginFinish() { function loginFinish() {
// in case we get error_reason=user_denied&error=access_denied // in case we get error_reason=user_denied&error=access_denied
if (isset($_REQUEST['error']) && $_REQUEST['error'] == "access_denied") { if (isset($_REQUEST['error']) && $_REQUEST['error'] == "access_denied") {
throw new Exception("Authentication failed! The user denied your request.", 5); throw new Exception("Authentication failed! The user denied your request.", 5);
} }
// try to authenicate user // try to authenicate user
$code = (array_key_exists('code', $_REQUEST)) ? $_REQUEST['code'] : ""; $code = (array_key_exists('code', $_REQUEST)) ? $_REQUEST['code'] : "";
@ -91,7 +91,7 @@ class Hybrid_Providers_Payco extends Hybrid_Provider_Model_OAuth2 {
$this->setUserConnected(); $this->setUserConnected();
} }
function check_valid_access_token(){ function check_valid_access_token(){
@ -121,33 +121,33 @@ class Hybrid_Providers_Payco extends Hybrid_Provider_Model_OAuth2 {
return false; return false;
} }
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
function logout() { function logout() {
parent::logout(); parent::logout();
} }
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
/** /**
* set propper headers * set propper headers
*/ */
function getUserProfile() { function getUserProfile() {
$data = null; $data = null;
// request user profile // request user profile
try { try {
if( $this->check_valid_access_token() ){ if( $this->check_valid_access_token() ){
$params = array( $params = array(
'body' => array( 'body' => array(
'client_id'=>$this->api->client_id, 'client_id'=>$this->api->client_id,
'access_token'=>$this->api->access_token, 'access_token'=>$this->api->access_token,
'MemberProfile'=>'idNo,id,name', 'MemberProfile'=>'idNo,id,name',
'idNo'=>$this->idNo, 'idNo'=>$this->idNo,
), ),
); );
@ -161,52 +161,62 @@ class Hybrid_Providers_Payco extends Hybrid_Provider_Model_OAuth2 {
$response = $this->api->api( $this->api->profile_url, 'POST', $params ); $response = $this->api->api( $this->api->profile_url, 'POST', $params );
} }
} catch (Exception $e) { } catch (Exception $e) {
throw new Exception("User profile request failed! {$this->providerId} returned an error: {$e->getMessage()}", 6, $e); throw new Exception("User profile request failed! {$this->providerId} returned an error: {$e->getMessage()}", 6, $e);
} }
if( ! is_object($response) || property_exists($response, 'error_code') ){ if( ! is_object($response) || property_exists($response, 'error_code') ){
$this->logout(); $this->logout();
throw new Exception( "Authentication failed! {$this->providerId} returned an invalid access token.", 5 ); throw new Exception( "Authentication failed! {$this->providerId} returned an invalid access token.", 5 );
} }
$data = array();
if( is_object($response) ){ if( is_object($response) ){
$result = json_decode(json_encode($response), true); $result = json_decode(json_encode($response), true);
$data = $result['memberProfile'];
// 성공이면
if(isset($result['header']) && isset($result['header']['isSuccessful']) && $result['header']['isSuccessful']){
$data = $result['data']['member'];
}
} }
// if the provider identifier is not received, we assume the auth has failed // if the provider identifier is not received, we assume the auth has failed
if (!isset($data["id"])) { if (!isset($data["idNo"])) {
$this->logout(); $this->logout();
throw new Exception("User profile request failed! {$this->providerId} api returned an invalid response: " . Hybrid_Logger::dumpData( $data ), 6); throw new Exception("User profile request failed! {$this->providerId} api returned an invalid response: " . Hybrid_Logger::dumpData( $data ), 6);
} }
# store the user profile. # store the user profile.
$this->user->profile->identifier = (array_key_exists('idNo', $data)) ? $data['idNo'] : ""; $this->user->profile->identifier = (array_key_exists('idNo', $data)) ? $data['idNo'] : "";
$this->user->profile->username = (array_key_exists('name', $data)) ? $data['name'] : ""; $this->user->profile->username = (array_key_exists('name', $data)) ? $data['name'] : "";
$this->user->profile->displayName = (array_key_exists('name', $data)) ? $data['name'] : ""; $this->user->profile->displayName = (array_key_exists('name', $data)) ? $data['name'] : "";
$this->user->profile->age = (array_key_exists('ageGroup', $data)) ? $data['ageGroup'] : ""; $this->user->profile->age = (array_key_exists('ageGroup', $data)) ? $data['ageGroup'] : "";
$this->user->profile->hp = (array_key_exists('mobile', $data)) ? $data['mobile'] : "";
include_once(G5_LIB_PATH.'/register.lib.php'); include_once(G5_LIB_PATH.'/register.lib.php');
$payco_no = substr(base_convert($this->user->profile->identifier, 16, 36), 0, 16); $payco_no = substr(base_convert($this->user->profile->identifier, 16, 36), 0, 16);
$email = (array_key_exists('id', $data)) ? $data['id'] : ""; //$email = (array_key_exists('id', $data)) ? $data['id'] : "";
$this->user->profile->gender = (array_key_exists('sexCode', $data)) ? $data['sexCode'] : ""; $email = (array_key_exists('email', $data)) ? $data['email'] : "";
$this->user->profile->email = ! valid_mb_email($email) ? $email : ""; //$this->user->profile->gender = (array_key_exists('sexCode', $data)) ? $data['sexCode'] : "";
$this->user->profile->emailVerified = ! valid_mb_email($email) ? $email : "";
$this->user->profile->gender = (array_key_exists('genderCode', $data)) ? strtolower($data['genderCode']) : "";
$this->user->profile->email = ! valid_mb_email($email) ? $email : "";
$this->user->profile->emailVerified = ! valid_mb_email($email) ? $email : "";
if (array_key_exists('birthdayMMdd', $data)) { if (array_key_exists('birthdayMMdd', $data)) {
$this->user->profile->birthMonth = substr($data['birthdayMMdd'], 0, 2); $this->user->profile->birthMonth = substr($data['birthdayMMdd'], 0, 2);
$this->user->profile->birthDay = substr($data['birthdayMMdd'], 2, 4); $this->user->profile->birthDay = substr($data['birthdayMMdd'], 2, 4);
} }
$this->user->profile->sid = get_social_convert_id( $this->user->profile->identifier, $this->providerId ); $this->user->profile->sid = get_social_convert_id( $this->user->profile->identifier, $this->providerId );
return $this->user->profile; return $this->user->profile;
} //end function getUserProfile } //end function getUserProfile
} }

View File

@ -2,8 +2,8 @@
/* ! /* !
* HybridAuth * HybridAuth
* http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth * https://hybridauth.sourceforge.net | https://github.com/hybridauth/hybridauth
* (c) 2009-2012, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html * (c) 2009-2012, HybridAuth authors | https://hybridauth.sourceforge.net/licenses.html
*/ */
/** /**
@ -127,7 +127,7 @@ class Hybrid_Providers_Twitter extends Hybrid_Provider_Model_OAuth1 {
$this->user->profile->description = (property_exists($response, 'description')) ? $response->description : ""; $this->user->profile->description = (property_exists($response, 'description')) ? $response->description : "";
$this->user->profile->firstName = (property_exists($response, 'name')) ? $response->name : ""; $this->user->profile->firstName = (property_exists($response, 'name')) ? $response->name : "";
$this->user->profile->photoURL = (property_exists($response, 'profile_image_url')) ? (str_replace('_normal', '', $response->profile_image_url)) : ""; $this->user->profile->photoURL = (property_exists($response, 'profile_image_url')) ? (str_replace('_normal', '', $response->profile_image_url)) : "";
$this->user->profile->profileURL = (property_exists($response, 'screen_name')) ? ("http://twitter.com/" . $response->screen_name) : ""; $this->user->profile->profileURL = (property_exists($response, 'screen_name')) ? ("https://twitter.com/" . $response->screen_name) : "";
$this->user->profile->webSiteURL = (property_exists($response, 'url')) ? $response->url : ""; $this->user->profile->webSiteURL = (property_exists($response, 'url')) ? $response->url : "";
$this->user->profile->region = (property_exists($response, 'location')) ? $response->location : ""; $this->user->profile->region = (property_exists($response, 'location')) ? $response->location : "";
if($includeEmail) $this->user->profile->email = (property_exists($response, 'email')) ? $response->email : ""; if($includeEmail) $this->user->profile->email = (property_exists($response, 'email')) ? $response->email : "";
@ -174,7 +174,7 @@ class Hybrid_Providers_Twitter extends Hybrid_Provider_Model_OAuth1 {
$uc->identifier = (property_exists($item, 'id')) ? $item->id : ""; $uc->identifier = (property_exists($item, 'id')) ? $item->id : "";
$uc->displayName = (property_exists($item, 'name')) ? $item->name : ""; $uc->displayName = (property_exists($item, 'name')) ? $item->name : "";
$uc->profileURL = (property_exists($item, 'screen_name')) ? ("http://twitter.com/" . $item->screen_name) : ""; $uc->profileURL = (property_exists($item, 'screen_name')) ? ("https://twitter.com/" . $item->screen_name) : "";
$uc->photoURL = (property_exists($item, 'profile_image_url')) ? $item->profile_image_url : ""; $uc->photoURL = (property_exists($item, 'profile_image_url')) ? $item->profile_image_url : "";
$uc->description = (property_exists($item, 'description')) ? $item->description : ""; $uc->description = (property_exists($item, 'description')) ? $item->description : "";
@ -254,7 +254,7 @@ class Hybrid_Providers_Twitter extends Hybrid_Provider_Model_OAuth1 {
$ua->user->identifier = (property_exists($item->user, 'id')) ? $item->user->id : ""; $ua->user->identifier = (property_exists($item->user, 'id')) ? $item->user->id : "";
$ua->user->displayName = (property_exists($item->user, 'name')) ? $item->user->name : ""; $ua->user->displayName = (property_exists($item->user, 'name')) ? $item->user->name : "";
$ua->user->profileURL = (property_exists($item->user, 'screen_name')) ? ("http://twitter.com/" . $item->user->screen_name) : ""; $ua->user->profileURL = (property_exists($item->user, 'screen_name')) ? ("https://twitter.com/" . $item->user->screen_name) : "";
$ua->user->photoURL = (property_exists($item->user, 'profile_image_url')) ? $item->user->profile_image_url : ""; $ua->user->photoURL = (property_exists($item->user, 'profile_image_url')) ? $item->user->profile_image_url : "";
$activities[] = $ua; $activities[] = $ua;

View File

@ -44,11 +44,11 @@ function get_social_convert_id($identifier, $service)
return strtolower($service).'_'.hash('adler32', md5($identifier)); return strtolower($service).'_'.hash('adler32', md5($identifier));
} }
function get_social_callbackurl($provider, $no_domain=false){ function get_social_callbackurl($provider, $no_domain=false, $no_params=false){
$base_url = G5_SOCIAL_LOGIN_BASE_URL; $base_url = G5_SOCIAL_LOGIN_BASE_URL;
if ( $provider === 'twitter' ){ if ( $provider === 'twitter' || ($provider === 'payco' && $no_params) ){
return $base_url; return $base_url;
} }
@ -322,7 +322,7 @@ function social_extends_get_keys($provider){
"keys" => array("id" => $config['cf_facebook_appid'], "secret" => $config['cf_facebook_secret']), "keys" => array("id" => $config['cf_facebook_appid'], "secret" => $config['cf_facebook_secret']),
"display" => "popup", "display" => "popup",
"redirect_uri" => get_social_callbackurl('facebook'), "redirect_uri" => get_social_callbackurl('facebook'),
"scope" => array('email'), // optional "scope" => 'email', // optional
"trustForwarded" => false "trustForwarded" => false
); );
@ -332,9 +332,12 @@ function social_extends_get_keys($provider){
"keys" => array("id" => $config['cf_google_clientid'], "keys" => array("id" => $config['cf_google_clientid'],
"secret" => $config['cf_google_secret']), "secret" => $config['cf_google_secret']),
"redirect_uri" => get_social_callbackurl('google'), "redirect_uri" => get_social_callbackurl('google'),
"scope" => "https://www.googleapis.com/auth/userinfo.profile "."https://www.googleapis.com/auth/userinfo.email",
/*
"scope" => "https://www.googleapis.com/auth/plus.login ". // optional "scope" => "https://www.googleapis.com/auth/plus.login ". // optional
"https://www.googleapis.com/auth/plus.me ". // optional "https://www.googleapis.com/auth/plus.me ". // optional
"https://www.googleapis.com/auth/plus.profile.emails.read", // optional "https://www.googleapis.com/auth/plus.profile.emails.read", // optional
*/
//"access_type" => "offline", // optional //"access_type" => "offline", // optional
//"approval_prompt" => "force", // optional //"approval_prompt" => "force", // optional
); );

View File

@ -1,89 +1,5 @@
@charset "utf-8"; @charset "utf-8";
/* 게시판 버튼 */
/* 목록 버튼 */
#bo_list a.btn_b01 {}
#bo_list a.btn_b01:focus, #bo_list a.btn_b01:hover {}
#bo_list a.btn_b02 {}
#bo_list a.btn_b02:focus, #bo_list a.btn_b02:hover {}
#bo_list a.btn_admin {} /* 관리자 전용 버튼 */
#bo_list a.btn_admin:focus, #bo_list .btn_admin:hover {}
/* 읽기 버튼 */
#bo_v a.btn_b01 {}
#bo_v a.btn_b01:focus, #bo_v a.btn_b01:hover {}
#bo_v a.btn_b02 {}
#bo_v a.btn_b02:focus, #bo_v a.btn_b02:hover {}
#bo_v a.btn_admin {} /* 관리자 전용 버튼 */
#bo_v a.btn_admin:focus, #bo_v a.btn_admin:hover {}
/* 쓰기 버튼 */
#bo_w .btn_confirm {} /* 서식단계 진행 */
#bo_w .btn_submit {padding:0 20px;font-size:1.167em}
#bo_w button.btn_submit {}
#bo_w fieldset .btn_submit {}
#bo_w .btn_cancel {font-size:1.167em;border-radius:3px}
#bo_w button.btn_cancel {}
#bo_w .btn_cancel:focus, #bo_w .btn_cancel:hover {}
#bo_w a.btn_frmline, #bo_w button.btn_frmline {} /* 우편번호검색버튼 등 */
#bo_w button.btn_frmline {}
/* 기본 테이블 */
/* 목록 테이블 */
#bo_list .tbl_head01 {}
#bo_list .tbl_head01 caption {}
#bo_list .tbl_head01 thead th {}
#bo_list .tbl_head01 thead a {}
#bo_list .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */
#bo_list .tbl_head01 tfoot th {}
#bo_list .tbl_head01 tfoot td {}
#bo_list .tbl_head01 tbody th {}
#bo_list .tbl_head01 td {}
#bo_list .tbl_head01 a {}
#bo_list td.empty_table {}
#bo_list tbody .even td {background:#fbfbfb}
/* 읽기 내 테이블 */
#bo_v .tbl_head01 {}
#bo_v .tbl_head01 caption {}
#bo_v .tbl_head01 thead th {}
#bo_v .tbl_head01 thead a {}
#bo_v .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */
#bo_v .tbl_head01 tfoot th {}
#bo_v .tbl_head01 tfoot td {}
#bo_v .tbl_head01 tbody th {}
#bo_v .tbl_head01 td {}
#bo_v .tbl_head01 a {}
#bo_v td.empty_table {}
/* 쓰기 테이블 */
#bo_w table {}
#bo_w caption {}
#bo_w .frm_info {}
#bo_w .frm_address {}
#bo_w .frm_file {}
#bo_w .tbl_frm01 {}
#bo_w .tbl_frm01 th {}
#bo_w .tbl_frm01 td {}
#bo_w .tbl_frm01 textarea, #bo_w tbl_frm01 .frm_input {}
#bo_w .tbl_frm01 textarea {}
#bo_w .tbl_frm01 a {}
/* 필수입력 */
#bo_w .required, #bo_w textarea.required {}
#bo_w .cke_sc {}
#bo_w button.btn_cke_sc {}
#bo_w .cke_sc_def {}
#bo_w .cke_sc_def dl {}
#bo_w .cke_sc_def dl:after {}
#bo_w .cke_sc_def dt, #bo_w .cke_sc_def dd {}
#bo_w .cke_sc_def dt {}
#bo_w .cke_sc_def dd {}
/* ### 기본 스타일 커스터마이징 끝 ### */
/* 게시판 목록 */ /* 게시판 목록 */
#bo_list {position:relative;margin-bottom:20px} #bo_list {position:relative;margin-bottom:20px}
#bo_list:after {display:block;visibility:hidden;clear:both;content:""} #bo_list:after {display:block;visibility:hidden;clear:both;content:""}

View File

@ -37,24 +37,24 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
</div> </div>
<ul class="btn_bo_user"> <ul class="btn_bo_user">
<?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn" title="관리자"><i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span></a></li><?php } ?> <?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn" title="관리자"><i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span></a></li><?php } ?>
<?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b01 btn" title="RSS"><i class="fa fa-rss" aria-hidden="true"></i><span class="sound_only">RSS</span></a></li><?php } ?> <?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b01 btn" title="RSS"><i class="fa fa-rss" aria-hidden="true"></i><span class="sound_only">RSS</span></a></li><?php } ?>
<li> <li>
<button type="button" class="btn_bo_sch btn_b01 btn" title="게시판 검색"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">게시판 검색</span></button> <button type="button" class="btn_bo_sch btn_b01 btn" title="게시판 검색"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">게시판 검색</span></button>
</li> </li>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="글쓰기"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">글쓰기</span></a></li><?php } ?> <?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="글쓰기"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">글쓰기</span></a></li><?php } ?>
<?php if ($is_admin == 'super' || $is_auth) { ?> <?php if ($is_admin == 'super' || $is_auth) { ?>
<li> <li>
<button type="button" class="btn_more_opt is_list_btn btn_b01 btn" title="게시판 리스트 옵션"><i class="fa fa-ellipsis-v" aria-hidden="true"></i><span class="sound_only">게시판 리스트 옵션</span></button> <button type="button" class="btn_more_opt is_list_btn btn_b01 btn" title="게시판 리스트 옵션"><i class="fa fa-ellipsis-v" aria-hidden="true"></i><span class="sound_only">게시판 리스트 옵션</span></button>
<?php if ($is_checkbox) { ?> <?php if ($is_checkbox) { ?>
<ul class="more_opt is_list_btn"> <ul class="more_opt is_list_btn">
<li><button type="submit" name="btn_submit" value="선택삭제" onclick="document.pressed=this.value"><i class="fa fa-trash-o" aria-hidden="true"></i> 선택삭제</button></li> <li><button type="submit" name="btn_submit" value="선택삭제" onclick="document.pressed=this.value"><i class="fa fa-trash-o" aria-hidden="true"></i> 선택삭제</button></li>
<li><button type="submit" name="btn_submit" value="선택복사" onclick="document.pressed=this.value"><i class="fa fa-files-o" aria-hidden="true"></i> 선택복사</button></li> <li><button type="submit" name="btn_submit" value="선택복사" onclick="document.pressed=this.value"><i class="fa fa-files-o" aria-hidden="true"></i> 선택복사</button></li>
<li><button type="submit" name="btn_submit" value="선택이동" onclick="document.pressed=this.value"><i class="fa fa-arrows" aria-hidden="true"></i> 선택이동</button></li> <li><button type="submit" name="btn_submit" value="선택이동" onclick="document.pressed=this.value"><i class="fa fa-arrows" aria-hidden="true"></i> 선택이동</button></li>
</ul> </ul>
<?php } ?> <?php } ?>
</li> </li>
<?php } ?> <?php } ?>
</ul> </ul>
</div> </div>
<!-- } 게시판 페이지 정보 및 버튼 끝 --> <!-- } 게시판 페이지 정보 및 버튼 끝 -->
@ -62,9 +62,9 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
<?php if ($is_checkbox) { ?> <?php if ($is_checkbox) { ?>
<div id="gall_allchk" class="all_chk chk_box"> <div id="gall_allchk" class="all_chk chk_box">
<input type="checkbox" id="chkall" onclick="if (this.checked) all_checked(true); else all_checked(false);" class="selec_chk"> <input type="checkbox" id="chkall" onclick="if (this.checked) all_checked(true); else all_checked(false);" class="selec_chk">
<label for="chkall"> <label for="chkall">
<span></span> <span></span>
<b class="sound_only">현재 페이지 게시물 </b> 전체선택 <b class="sound_only">현재 페이지 게시물 </b> 전체선택
</label> </label>
</div> </div>
<?php } ?> <?php } ?>
@ -84,40 +84,42 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
if( $wr_id && $wr_id == $list[$i]['wr_id'] ){ if( $wr_id && $wr_id == $list[$i]['wr_id'] ){
$classes[] = 'gall_now'; $classes[] = 'gall_now';
} }
$line_height_style = ($board['bo_gallery_height'] > 0) ? 'line-height:'.$board['bo_gallery_height'].'px' : '';
?> ?>
<li class="<?php echo implode(' ', $classes); ?>"> <li class="<?php echo implode(' ', $classes); ?>">
<div class="gall_box"> <div class="gall_box">
<div class="gall_chk chk_box"> <div class="gall_chk chk_box">
<?php if ($is_checkbox) { ?> <?php if ($is_checkbox) { ?>
<input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>" id="chk_wr_id_<?php echo $i ?>" class="selec_chk"> <input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>" id="chk_wr_id_<?php echo $i ?>" class="selec_chk">
<label for="chk_wr_id_<?php echo $i ?>"> <label for="chk_wr_id_<?php echo $i ?>">
<span></span> <span></span>
<b class="sound_only"><?php echo $list[$i]['subject'] ?></b> <b class="sound_only"><?php echo $list[$i]['subject'] ?></b>
</label> </label>
<?php } ?> <?php } ?>
<span class="sound_only"> <span class="sound_only">
<?php <?php
if ($wr_id == $list[$i]['wr_id']) if ($wr_id == $list[$i]['wr_id'])
echo "<span class=\"bo_current\">열람중</span>"; echo "<span class=\"bo_current\">열람중</span>";
else else
echo $list[$i]['num']; echo $list[$i]['num'];
?> ?>
</span> </span>
</div> </div>
<div class="gall_con"> <div class="gall_con">
<div class="gall_img"> <div class="gall_img" style="<?php if ($board['bo_gallery_height'] > 0) echo 'height:'.$board['bo_gallery_height'].'px;max-height:'.$board['bo_gallery_height'].'px'; ?>">
<a href="<?php echo $list[$i]['href'] ?>"> <a href="<?php echo $list[$i]['href'] ?>">
<?php <?php
if ($list[$i]['is_notice']) { // 공지사항 ?> if ($list[$i]['is_notice']) { // 공지사항 ?>
<span class="is_notice">공지</span> <span class="is_notice" style="<?php echo $line_height_style; ?>">공지</span>
<?php } else { <?php } else {
$thumb = get_list_thumbnail($board['bo_table'], $list[$i]['wr_id'], $board['bo_gallery_width'], $board['bo_gallery_height'], false, true); $thumb = get_list_thumbnail($board['bo_table'], $list[$i]['wr_id'], $board['bo_gallery_width'], $board['bo_gallery_height'], false, true);
if($thumb['src']) { if($thumb['src']) {
$img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" >'; $img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" >';
} else { } else {
$img_content = '<span class="no_image">no image</span>'; $img_content = '<span class="no_image" style="'.$line_height_style.'">no image</span>';
} }
echo run_replace('thumb_image_tag', $img_content, $thumb); echo run_replace('thumb_image_tag', $img_content, $thumb);
@ -132,7 +134,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
<a href="<?php echo $list[$i]['href'] ?>" class="bo_tit"> <a href="<?php echo $list[$i]['href'] ?>" class="bo_tit">
<?php // echo $list[$i]['icon_reply']; ?> <?php // echo $list[$i]['icon_reply']; ?>
<!-- 갤러리 댓글기능 사용시 주석을 제거하세요. --> <!-- 갤러리 댓글기능 사용시 주석을 제거하세요. -->
<?php echo $list[$i]['subject'] ?> <?php echo $list[$i]['subject'] ?>
<?php <?php
@ -142,19 +144,19 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
//if (isset($list[$i]['icon_file'])) echo rtrim($list[$i]['icon_file']); //if (isset($list[$i]['icon_file'])) echo rtrim($list[$i]['icon_file']);
//if (isset($list[$i]['icon_link'])) echo rtrim($list[$i]['icon_link']); //if (isset($list[$i]['icon_link'])) echo rtrim($list[$i]['icon_link']);
if (isset($list[$i]['icon_secret'])) echo rtrim($list[$i]['icon_secret']); if (isset($list[$i]['icon_secret'])) echo rtrim($list[$i]['icon_secret']);
?> ?>
<?php if ($list[$i]['comment_cnt']) { ?><span class="sound_only">댓글</span><span class="cnt_cmt"><?php echo $list[$i]['wr_comment']; ?></span><span class="sound_only">개</span><?php } ?> <?php if ($list[$i]['comment_cnt']) { ?><span class="sound_only">댓글</span><span class="cnt_cmt"><?php echo $list[$i]['wr_comment']; ?></span><span class="sound_only">개</span><?php } ?>
</a> </a>
<span class="bo_cnt"><?php echo utf8_strcut(strip_tags($list[$i]['wr_content']), 68, '..'); ?></span> <span class="bo_cnt"><?php echo utf8_strcut(strip_tags($list[$i]['wr_content']), 68, '..'); ?></span>
</div> </div>
<div class="gall_info"> <div class="gall_info">
<span class="sound_only">작성자 </span><?php echo $list[$i]['name'] ?> <span class="sound_only">작성자 </span><?php echo $list[$i]['name'] ?>
<span class="gall_date"><span class="sound_only">작성일 </span><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $list[$i]['datetime2'] ?></span> <span class="gall_date"><span class="sound_only">작성일 </span><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $list[$i]['datetime2'] ?></span>
<span class="gall_view"><span class="sound_only">조회 </span><i class="fa fa-eye" aria-hidden="true"></i> <?php echo $list[$i]['wr_hit'] ?></span> <span class="gall_view"><span class="sound_only">조회 </span><i class="fa fa-eye" aria-hidden="true"></i> <?php echo $list[$i]['wr_hit'] ?></span>
</div> </div>
<div class="gall_option"> <div class="gall_option">
<?php if ($is_good) { ?><span class="sound_only">추천</span><strong><i class="fa fa-thumbs-o-up" aria-hidden="true"></i> <?php echo $list[$i]['wr_good'] ?></strong><?php } ?> <?php if ($is_good) { ?><span class="sound_only">추천</span><strong><i class="fa fa-thumbs-o-up" aria-hidden="true"></i> <?php echo $list[$i]['wr_good'] ?></strong><?php } ?>
<?php if ($is_nogood) { ?><span class="sound_only">비추천</span><strong><i class="fa fa-thumbs-o-down" aria-hidden="true"></i> <?php echo $list[$i]['wr_nogood'] ?></strong><?php } ?> <?php if ($is_nogood) { ?><span class="sound_only">비추천</span><strong><i class="fa fa-thumbs-o-down" aria-hidden="true"></i> <?php echo $list[$i]['wr_nogood'] ?></strong><?php } ?>
</div> </div>
</div> </div>
@ -163,26 +165,26 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
<?php } ?> <?php } ?>
<?php if (count($list) == 0) { echo "<li class=\"empty_list\">게시물이 없습니다.</li>"; } ?> <?php if (count($list) == 0) { echo "<li class=\"empty_list\">게시물이 없습니다.</li>"; } ?>
</ul> </ul>
<!-- 페이지 --> <!-- 페이지 -->
<?php echo $write_pages; ?> <?php echo $write_pages; ?>
<!-- 페이지 --> <!-- 페이지 -->
<?php if ($list_href || $is_checkbox || $write_href) { ?> <?php if ($list_href || $is_checkbox || $write_href) { ?>
<div class="bo_fx"> <div class="bo_fx">
<?php if ($list_href || $write_href) { ?> <?php if ($list_href || $write_href) { ?>
<ul class="btn_bo_user"> <ul class="btn_bo_user">
<?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn" title="관리자"><i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span></a></li><?php } ?> <?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn" title="관리자"><i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span></a></li><?php } ?>
<?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b01 btn" title="RSS"><i class="fa fa-rss" aria-hidden="true"></i><span class="sound_only">RSS</span></a></li><?php } ?> <?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b01 btn" title="RSS"><i class="fa fa-rss" aria-hidden="true"></i><span class="sound_only">RSS</span></a></li><?php } ?>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="글쓰기"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">글쓰기</span></a></li><?php } ?> <?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="글쓰기"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">글쓰기</span></a></li><?php } ?>
</ul> </ul>
<?php } ?> <?php } ?>
</div> </div>
<?php } ?> <?php } ?>
</form> </form>
<!-- 게시판 검색 시작 { --> <!-- 게시판 검색 시작 { -->
<div class="bo_sch_wrap"> <div class="bo_sch_wrap">
<fieldset class="bo_sch"> <fieldset class="bo_sch">
<h3>검색</h3> <h3>검색</h3>
<form name="fsearch" method="get"> <form name="fsearch" method="get">

View File

@ -1,77 +1,5 @@
@charset "utf-8"; @charset "utf-8";
/* ### 기본 스타일 커스터마이징 시작 ### */
/* 게시판 버튼 */
/* 목록 버튼 */
#bo_gall a.btn_b01 {}
#bo_gall a.btn_b01:focus, #bo_gall a.btn_b01:hover {}
#bo_gall a.btn_b02 {}
#bo_gall a.btn_b02:focus, #bo_gall a.btn_b02:hover {}
#bo_gall a.btn_admin {} /* 관리자 전용 버튼 */
#bo_gall a.btn_admin:focus, #bo_gall .btn_admin:hover {}
/* 읽기 버튼 */
#bo_v a.btn_b01 {}
#bo_v a.btn_b01:focus, #bo_v a.btn_b01:hover {}
#bo_v a.btn_b02 {}
#bo_v a.btn_b02:focus, #bo_v a.btn_b02:hover {}
#bo_v a.btn_admin {} /* 관리자 전용 버튼 */
#bo_v a.btn_admin:focus, #bo_v a.btn_admin:hover {}
/* 쓰기 버튼 */
#bo_w .btn_confirm {} /* 서식단계 진행 */
#bo_w .btn_submit {padding:0 20px;font-size:1.167em}
#bo_w button.btn_submit {}
#bo_w fieldset .btn_submit {}
#bo_w .btn_cancel {font-size:1.167em;border-radius:3px}
#bo_w button.btn_cancel {}
#bo_w .btn_cancel:focus, #bo_w .btn_cancel:hover {}
#bo_w a.btn_frmline, #bo_w button.btn_frmline {} /* 우편번호검색버튼 등 */
#bo_w button.btn_frmline {}
/* 기본 테이블 */
/* 읽기 내 테이블 */
#bo_v .tbl_head01 {}
#bo_v .tbl_head01 caption {}
#bo_v .tbl_head01 thead th {}
#bo_v .tbl_head01 thead a {}
#bo_v .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */
#bo_v .tbl_head01 tfoot th {}
#bo_v .tbl_head01 tfoot td {}
#bo_v .tbl_head01 tbody th {}
#bo_v .tbl_head01 td {}
#bo_v .tbl_head01 a {}
#bo_v td.empty_table {}
/* 쓰기 테이블 */
#bo_w table {}
#bo_w caption {}
#bo_w .frm_info {}
#bo_w .frm_address {}
#bo_w .frm_file {}
#bo_w .tbl_frm01 {}
#bo_w .tbl_frm01 th {}
#bo_w .tbl_frm01 td {}
#bo_w .tbl_frm01 textarea, #bo_w tbl_frm01 .frm_input {}
#bo_w .tbl_frm01 textarea {}
#bo_w .tbl_frm01 a {}
/* 필수입력 */
#bo_w .required, #bo_w textarea.required {}
#bo_w .cke_sc {}
#bo_w button.btn_cke_sc {}
#bo_w .cke_sc_def {}
#bo_w .cke_sc_def dl {}
#bo_w .cke_sc_def dl:after {}
#bo_w .cke_sc_def dt, #bo_w .cke_sc_def dd {}
#bo_w .cke_sc_def dt {}
#bo_w .cke_sc_def dd {}
/* ### 기본 스타일 커스터마이징 끝 ### */
/* 게시판 목록 */ /* 게시판 목록 */
#bo_cate {margin:25px 0} #bo_cate {margin:25px 0}
#bo_cate h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} #bo_cate h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
@ -124,10 +52,10 @@ box-shadow:inset 0 2px 5px rgb(33, 135, 202)}
#bo_gall .gall_now .gall_text_href a {color:#ff3061} #bo_gall .gall_now .gall_text_href a {color:#ff3061}
#bo_gall .gall_href a:link, #bo_gall .gall_href a:focus, #bo_gall .gall_href a:hover {text-decoration:none} #bo_gall .gall_href a:link, #bo_gall .gall_href a:focus, #bo_gall .gall_href a:hover {text-decoration:none}
#bo_gall .gall_img {border-bottom:1px solid #eee;text-align:center;height:200px;max-height:200px;overflow:hidden} #bo_gall .gall_img {border-bottom:1px solid #eee;text-align:center;overflow:hidden}
#bo_gall .gall_img a,#bo_gall .gall_img .no_image,#bo_gall .gall_img .is_notice {display:block} #bo_gall .gall_img a,#bo_gall .gall_img .no_image,#bo_gall .gall_img .is_notice {display:block}
#bo_gall .gall_img img, #bo_gall .gall_img video {max-width:100%;height:auto !important} #bo_gall .gall_img img, #bo_gall .gall_img video {max-width:100%;height:auto !important}
#bo_gall .gall_img span {display:inline-block;background:#eaeaea;text-align:center;line-height:200px;text-transform:uppercase;font-weight:bold;font-size:1.25em;color:#777} #bo_gall .gall_img span {display:inline-block;background:#eaeaea;text-align:center;text-transform:uppercase;font-weight:bold;font-size:1.25em;color:#777}
#bo_gall .gall_text_href {margin:10px 0} #bo_gall .gall_text_href {margin:10px 0}
#bo_gall .gall_text_href a {font-weight:bold} #bo_gall .gall_text_href a {font-weight:bold}

View File

@ -15,7 +15,7 @@
.pic_lt li .lt_img img, .pic_lt li .lt_img video {width:100%;height:auto} .pic_lt li .lt_img img, .pic_lt li .lt_img video {width:100%;height:auto}
.pic_lt li a:hover {color:#a22121} .pic_lt li a:hover {color:#a22121}
.pic_lt li .fa-heart {color:#ff0000} .pic_lt li .fa-heart {color:#ff0000}
.pic_lt li .fa-lock {display:inline-block;line-height:14px;width:16px;font-size:0.833em;color:#4f818c;background:#cbe3e8;text-align:center;border-radius:2px;font-size:12px;border:1px solid #cbe3e8;vertical-align:middle} .pic_lt li .fa-lock {display:inline-block;line-height:14px;width:16px;color:#4f818c;background:#cbe3e8;text-align:center;border-radius:2px;font-size:12px;border:1px solid #cbe3e8;vertical-align:middle}
.pic_lt li .new_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#23db79;background:#b9ffda;text-align:center;border-radius:2px;margin-left:2px;font-weight:bold;vertical-align:middle} .pic_lt li .new_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#23db79;background:#b9ffda;text-align:center;border-radius:2px;margin-left:2px;font-weight:bold;vertical-align:middle}
.pic_lt li .hot_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#ff0000;background:#ffb9b9;text-align:center;border-radius:2px;vertical-align:middle} .pic_lt li .hot_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#ff0000;background:#ffb9b9;text-align:center;border-radius:2px;vertical-align:middle}
.pic_lt li .fa-caret-right {color:#bbb} .pic_lt li .fa-caret-right {color:#bbb}

View File

@ -11,12 +11,12 @@
.pic_li_lt ul:after {display:block;visibility:hidden;clear:both;content:""} .pic_li_lt ul:after {display:block;visibility:hidden;clear:both;content:""}
.pic_li_lt li {border-bottom:1px solid #e5ecee;margin-bottom:10px} .pic_li_lt li {border-bottom:1px solid #e5ecee;margin-bottom:10px}
.pic_li_lt li .lt_img {display:none} .pic_li_lt li .lt_img {display:none}
.pic_li_lt li:first-child .lt_img {display:block;margin:0 0 10px;display:block} .pic_li_lt li:first-child .lt_img {display:block;margin:0 0 10px;}
.pic_li_lt li:first-child .lt_img img, .pic_li_lt li .lt_img video {width:100%;height:auto} .pic_li_lt li:first-child .lt_img img, .pic_li_lt li .lt_img video {width:100%;height:auto}
.pic_li_lt li .pic_li_tit {font-weight:bold;font-size:1.2em;line-height:20px;vertical-align:middle} .pic_li_lt li .pic_li_tit {font-weight:bold;font-size:1.2em;line-height:20px;vertical-align:middle}
.pic_li_lt li .fa-heart {color:#ff0000} .pic_li_lt li .fa-heart {color:#ff0000}
.pic_li_lt li .fa-lock {display:inline-block;line-height:14px;width:16px;font-size:0.833em;color:#4f818c;background:#cbe3e8;text-align:center;border-radius:2px;font-size:12px;border:1px solid #cbe3e8;vertical-align:middle} .pic_li_lt li .fa-lock {display:inline-block;line-height:14px;width:16px;color:#4f818c;background:#cbe3e8;text-align:center;border-radius:2px;font-size:12px;border:1px solid #cbe3e8;vertical-align:middle}
.pic_li_lt li .new_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#23db79;background:#b9ffda;text-align:center;border-radius:2px;margin-left:2px;font-weight:bold;vertical-align:middle} .pic_li_lt li .new_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#23db79;background:#b9ffda;text-align:center;border-radius:2px;margin-left:2px;font-weight:bold;vertical-align:middle}
.pic_li_lt li .hot_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#ff0000;background:#ffb9b9;text-align:center;border-radius:2px;vertical-align:middle} .pic_li_lt li .hot_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#ff0000;background:#ffb9b9;text-align:center;border-radius:2px;vertical-align:middle}
.pic_li_lt li .fa-caret-right {color:#bbb} .pic_li_lt li .fa-caret-right {color:#bbb}

View File

@ -189,7 +189,7 @@ gif, jpg, png파일만 가능하며 용량 <?php echo number_format($config['cf_
<?php if ($w == 'u' && file_exists($mb_icon_path)) { ?> <?php if ($w == 'u' && file_exists($mb_icon_path)) { ?>
<img src="<?php echo $mb_icon_url ?>" alt="회원아이콘"> <img src="<?php echo $mb_icon_url ?>" alt="회원아이콘">
<input type="checkbox" name="del_mb_icon" value="1" id="del_mb_icon"> <input type="checkbox" name="del_mb_icon" value="1" id="del_mb_icon">
<label for="del_mb_icon">삭제</label> <label for="del_mb_icon" class="inline">삭제</label>
<?php } ?> <?php } ?>
</li> </li>
@ -208,7 +208,7 @@ gif, jpg, png파일만 가능하며 용량 <?php echo number_format($config['cf_
<?php if ($w == 'u' && file_exists($mb_img_path)) { ?> <?php if ($w == 'u' && file_exists($mb_img_path)) { ?>
<img src="<?php echo $mb_img_url ?>" alt="회원이미지"> <img src="<?php echo $mb_img_url ?>" alt="회원이미지">
<input type="checkbox" name="del_mb_img" value="1" id="del_mb_img"> <input type="checkbox" name="del_mb_img" value="1" id="del_mb_img">
<label for="del_mb_img">삭제</label> <label for="del_mb_img" class="inline">삭제</label>
<?php } ?> <?php } ?>
</li> </li>

View File

@ -132,6 +132,7 @@
.register_form_inner {background:#f7f7f7;border:1px solid #dde7e9;border-radius:3px} .register_form_inner {background:#f7f7f7;border:1px solid #dde7e9;border-radius:3px}
.register_form_inner ul {padding:20px} .register_form_inner ul {padding:20px}
.register_form_inner label {display:block;margin-bottom:10px;line-height:24px} .register_form_inner label {display:block;margin-bottom:10px;line-height:24px}
.register_form_inner label.inline {display:inline}
#fregisterform #msg_certify {margin:5px 0 0;padding:5px;border:1px solid #dbecff;background:#eaf4ff;text-align:center} #fregisterform #msg_certify {margin:5px 0 0;padding:5px;border:1px solid #dbecff;background:#eaf4ff;text-align:center}
#fregisterform .frm_address {margin:5px 0 0} #fregisterform .frm_address {margin:5px 0 0}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 820 B

View File

@ -41,7 +41,7 @@ add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css
<?php if( social_service_check('google') ) { //구글 로그인을 사용한다면 ?> <?php if( social_service_check('google') ) { //구글 로그인을 사용한다면 ?>
<a href="<?php echo $self_url;?>?provider=google&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-google" title="구글"> <a href="<?php echo $self_url;?>?provider=google&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-google" title="구글">
<span class="ico"></span> <span class="ico"></span>
<span class="txt">구글+<i> 로그인</i></span> <span class="txt"><i> Sign in with Google</i></span>
</a> </a>
<?php } //end if ?> <?php } //end if ?>
<?php if( social_service_check('twitter') ) { //트위터 로그인을 사용한다면 ?> <?php if( social_service_check('twitter') ) { //트위터 로그인을 사용한다면 ?>

View File

@ -41,7 +41,7 @@ add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css
<?php if( social_service_check('google') ) { //구글 로그인을 사용한다면 ?> <?php if( social_service_check('google') ) { //구글 로그인을 사용한다면 ?>
<a href="<?php echo $self_url;?>?provider=google&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-google" title="구글"> <a href="<?php echo $self_url;?>?provider=google&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-google" title="구글">
<span class="ico"></span> <span class="ico"></span>
<span class="txt">구글+<i> 로그인</i></span> <span class="txt"><i> Sign in with Google</i></span>
</a> </a>
<?php } //end if ?> <?php } //end if ?>
<?php if( social_service_check('twitter') ) { //트위터 로그인을 사용한다면 ?> <?php if( social_service_check('twitter') ) { //트위터 로그인을 사용한다면 ?>

View File

@ -43,7 +43,7 @@ add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css
<?php if( social_service_check('google') ) { //구글 로그인을 사용한다면 ?> <?php if( social_service_check('google') ) { //구글 로그인을 사용한다면 ?>
<a href="<?php echo $self_url;?>?provider=google&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-google" title="구글"> <a href="<?php echo $self_url;?>?provider=google&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-google" title="구글">
<span class="ico"></span> <span class="ico"></span>
<span class="txt">구글+로 회원가입하기</span> <span class="txt">Sign in with Google</span>
</a> </a>
<?php } //end if ?> <?php } //end if ?>
<?php if( social_service_check('twitter') ) { //트위터 로그인을 사용한다면 ?> <?php if( social_service_check('twitter') ) { //트위터 로그인을 사용한다면 ?>

View File

@ -27,7 +27,7 @@
.sns-wrap-reg .sns-naver {border-color:#18a400;background:#2db400} .sns-wrap-reg .sns-naver {border-color:#18a400;background:#2db400}
.sns-wrap-reg .sns-naver .ico {background-position:-29px 0; } .sns-wrap-reg .sns-naver .ico {background-position:-29px 0; }
.sns-wrap-reg .sns-google {border-color:#ca2c19;background:#dd5443} .sns-wrap-reg .sns-google {border-color:#ca2c19;background:#4285F4}
.sns-wrap-reg .sns-google .ico {background-position:-58px 0} .sns-wrap-reg .sns-google .ico {background-position:-58px 0}
.sns-wrap-reg .sns-facebook {border-color:#2e5393;background:#3a5897} .sns-wrap-reg .sns-facebook {border-color:#2e5393;background:#3a5897}
.sns-wrap-reg .sns-facebook .ico {background-position:0 0 } .sns-wrap-reg .sns-facebook .ico {background-position:0 0 }
@ -49,7 +49,7 @@
/* SNS by COLOR */ /* SNS by COLOR */
.sns-wrap-over .sns-naver {background:url('./img/sns_naver_s.png') no-repeat} .sns-wrap-over .sns-naver {background:url('./img/sns_naver_s.png') no-repeat}
.sns-wrap-over .sns-google {background:url('./img/sns_gp_s.png') no-repeat} .sns-wrap-over .sns-google {}
.sns-wrap-over .sns-facebook {background:url('./img/sns_fb_s.png') no-repeat} .sns-wrap-over .sns-facebook {background:url('./img/sns_fb_s.png') no-repeat}
.sns-wrap-over .sns-twitter {background:url('./img/sns_twitter_s.png') no-repeat} .sns-wrap-over .sns-twitter {background:url('./img/sns_twitter_s.png') no-repeat}
.sns-wrap-over .sns-payco {background:url('./img/sns_payco_s.png') no-repeat} .sns-wrap-over .sns-payco {background:url('./img/sns_payco_s.png') no-repeat}
@ -67,12 +67,13 @@
/*로그인 */ /*로그인 */
#sns_login {border:0;margin-top:15px;border-top:1px solid #edeaea} #sns_login {border:0;margin-top:15px;border-top:1px solid #edeaea}
#sns_login h3 {padding:10px 0 0;text-align:left;font-weight:bold} #sns_login h3 {padding:10px 0 0;text-align:left;font-weight:bold}
#sns_login .sns-icon {display:block;height:40px;line-height:40px;width:100%;margin:0 0 5px;padding-left:40px;text-align:left;color:#fff;border-radius:2px} #sns_login .sns-icon {position:relative;display:block;height:40px;line-height:40px;width:100%;margin:0 0 5px;padding-left:40px;text-align:left;color:#fff;border-radius:2px}
#sns_login .sns-naver {background-color:#1fc800;background-position:5px 5px;border-bottom:1px solid #1ea505} #sns_login .sns-naver {background-color:#1fc800;background-position:5px 5px;border-bottom:1px solid #1ea505}
#sns_login .sns-kakao {background-color:#ffeb00;background-position:5px 5px;border-bottom:1px solid #e2c10a} #sns_login .sns-kakao {background-color:#ffeb00;background-position:5px 5px;border-bottom:1px solid #e2c10a}
#sns_login .sns-kakao {color:#3c1e1e} #sns_login .sns-kakao {color:#3c1e1e}
#sns_login .sns-facebook {background-color:#3b579d;background-position:5px 5px;border-bottom:1px solid #28458f} #sns_login .sns-facebook {background-color:#3b579d;background-position:5px 5px;border-bottom:1px solid #28458f}
#sns_login .sns-google {background-color:#db4a3a;background-position:5px 5px;border-bottom:1px solid #c03121} #sns_login .sns-google {background-color:#4285F4;background-position:5px 5px;border-bottom:1px solid #3567c6;letter-spacing:-0.5px}
#sns_login .sns-google .ico {position:absolute;top:3px;left:3px;width:33px;height:33px;background:url('./img/sns_gp_s.png') no-repeat center center;background-color:#fff;background-size:28px 28px!important;border-radius:2px}
#sns_login .sns-twitter {background-color:#1ea1f2;background-position:5px 5px;border-bottom:1px solid #1e82c0} #sns_login .sns-twitter {background-color:#1ea1f2;background-position:5px 5px;border-bottom:1px solid #1e82c0}
#sns_login .sns-payco {background-color:#df0b00;background-position:5px 5px;border-bottom:1px solid #9d0800} #sns_login .sns-payco {background-color:#df0b00;background-position:5px 5px;border-bottom:1px solid #9d0800}
#sns_login .txt {text-align:left;padding-left:10px;border-left:1px solid rgba(0,0,0,0.1);display:block;font-weight:bold} #sns_login .txt {text-align:left;padding-left:10px;border-left:1px solid rgba(0,0,0,0.1);display:block;font-weight:bold}
@ -88,7 +89,8 @@
#sns_register .sns-naver {background-color:#1fc800;background-position:0 0} #sns_register .sns-naver {background-color:#1fc800;background-position:0 0}
#sns_register .sns-kakao {background-color:#ffeb00;background-position:0 0} #sns_register .sns-kakao {background-color:#ffeb00;background-position:0 0}
#sns_register .sns-facebook {background-color:#3b579d;background-position:0 0} #sns_register .sns-facebook {background-color:#3b579d;background-position:0 0}
#sns_register .sns-google {background-color:#db4a3a;background-position:0 0} #sns_register .sns-google {background-color:#fff;background-position:0 0;border-radius:2px;border:1px solid #999}
#sns_register .sns-google .ico {background:url('./img/sns_gp_s.png') no-repeat;height:30px}
#sns_register .sns-twitter {background-color:#1ea1f2;background-position:0 0} #sns_register .sns-twitter {background-color:#1ea1f2;background-position:0 0}
#sns_register .sns-payco {background-color:#df0b00;background-position:0 0} #sns_register .sns-payco {background-color:#df0b00;background-position:0 0}
#sns_register .txt {position:absolute;line-height:0;font-size:0;vertical-align:middle;overflow:hidden} #sns_register .txt {position:absolute;line-height:0;font-size:0;vertical-align:middle;overflow:hidden}

View File

@ -80,7 +80,7 @@ border:1px solid #558ab7 !important;
#logo {float:left;padding:30px 0 0} #logo {float:left;padding:30px 0 0}
.hd_sch_wr {float:left;padding:30px 0;;width:445px;margin-left:65px} .hd_sch_wr {float:left;padding:30px 0;width:445px;margin-left:65px}
#hd_sch h3 {position:absolute;font-size:0;line-height:0;overflow:hidden} #hd_sch h3 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#hd_sch {border-radius:30px;overflow:hidden} #hd_sch {border-radius:30px;overflow:hidden}
#hd_sch #sch_stx {float:left;width:385px;height:45px;padding-left:10px;border-radius:30px 0 0 30px;background:#2c2c2c;border:0;border-right:0;font-size:1.25em;color:#fff} #hd_sch #sch_stx {float:left;width:385px;height:45px;padding-left:10px;border-radius:30px 0 0 30px;background:#2c2c2c;border:0;border-right:0;font-size:1.25em;color:#fff}

View File

@ -1,89 +1,5 @@
@charset "utf-8"; @charset "utf-8";
/* 게시판 버튼 */
/* 목록 버튼 */
#bo_list a.btn_b01 {}
#bo_list a.btn_b01:focus, #bo_list a.btn_b01:hover {}
#bo_list a.btn_b02 {}
#bo_list a.btn_b02:focus, #bo_list a.btn_b02:hover {}
#bo_list a.btn_admin {} /* 관리자 전용 버튼 */
#bo_list a.btn_admin:focus, #bo_list .btn_admin:hover {}
/* 읽기 버튼 */
#bo_v a.btn_b01 {}
#bo_v a.btn_b01:focus, #bo_v a.btn_b01:hover {}
#bo_v a.btn_b02 {}
#bo_v a.btn_b02:focus, #bo_v a.btn_b02:hover {}
#bo_v a.btn_admin {} /* 관리자 전용 버튼 */
#bo_v a.btn_admin:focus, #bo_v a.btn_admin:hover {}
/* 쓰기 버튼 */
#bo_w .btn_confirm {} /* 서식단계 진행 */
#bo_w .btn_submit {padding:0 20px;font-size:1.167em}
#bo_w button.btn_submit {}
#bo_w fieldset .btn_submit {}
#bo_w .btn_cancel {font-size:1.167em;border-radius:3px}
#bo_w button.btn_cancel {}
#bo_w .btn_cancel:focus, #bo_w .btn_cancel:hover {}
#bo_w a.btn_frmline, #bo_w button.btn_frmline {} /* 우편번호검색버튼 등 */
#bo_w button.btn_frmline {}
/* 기본 테이블 */
/* 목록 테이블 */
#bo_list .tbl_head01 {}
#bo_list .tbl_head01 caption {}
#bo_list .tbl_head01 thead th {}
#bo_list .tbl_head01 thead a {}
#bo_list .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */
#bo_list .tbl_head01 tfoot th {}
#bo_list .tbl_head01 tfoot td {}
#bo_list .tbl_head01 tbody th {}
#bo_list .tbl_head01 td {}
#bo_list .tbl_head01 a {}
#bo_list td.empty_table {}
#bo_list tbody .even td {background:#fbfbfb}
/* 읽기 내 테이블 */
#bo_v .tbl_head01 {}
#bo_v .tbl_head01 caption {}
#bo_v .tbl_head01 thead th {}
#bo_v .tbl_head01 thead a {}
#bo_v .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */
#bo_v .tbl_head01 tfoot th {}
#bo_v .tbl_head01 tfoot td {}
#bo_v .tbl_head01 tbody th {}
#bo_v .tbl_head01 td {}
#bo_v .tbl_head01 a {}
#bo_v td.empty_table {}
/* 쓰기 테이블 */
#bo_w table {}
#bo_w caption {}
#bo_w .frm_info {}
#bo_w .frm_address {}
#bo_w .frm_file {}
#bo_w .tbl_frm01 {}
#bo_w .tbl_frm01 th {}
#bo_w .tbl_frm01 td {}
#bo_w .tbl_frm01 textarea, #bo_w tbl_frm01 .frm_input {}
#bo_w .tbl_frm01 textarea {}
#bo_w .tbl_frm01 a {}
/* 필수입력 */
#bo_w .required, #bo_w textarea.required {}
#bo_w .cke_sc {}
#bo_w button.btn_cke_sc {}
#bo_w .cke_sc_def {}
#bo_w .cke_sc_def dl {}
#bo_w .cke_sc_def dl:after {}
#bo_w .cke_sc_def dt, #bo_w .cke_sc_def dd {}
#bo_w .cke_sc_def dt {}
#bo_w .cke_sc_def dd {}
/* ### 기본 스타일 커스터마이징 끝 ### */
/* 게시판 목록 */ /* 게시판 목록 */
#bo_list {position:relative;margin-bottom:20px} #bo_list {position:relative;margin-bottom:20px}
#bo_list:after {display:block;visibility:hidden;clear:both;content:""} #bo_list:after {display:block;visibility:hidden;clear:both;content:""}

View File

@ -6,7 +6,6 @@ include_once(G5_LIB_PATH.'/thumbnail.lib.php');
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0); add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
?> ?>
<!-- 게시판 목록 시작 { --> <!-- 게시판 목록 시작 { -->
<div id="bo_gall" style="width:<?php echo $width; ?>"> <div id="bo_gall" style="width:<?php echo $width; ?>">
@ -37,24 +36,24 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
</div> </div>
<ul class="btn_bo_user"> <ul class="btn_bo_user">
<?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn" title="관리자"><i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span></a></li><?php } ?> <?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn" title="관리자"><i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span></a></li><?php } ?>
<?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b01 btn" title="RSS"><i class="fa fa-rss" aria-hidden="true"></i><span class="sound_only">RSS</span></a></li><?php } ?> <?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b01 btn" title="RSS"><i class="fa fa-rss" aria-hidden="true"></i><span class="sound_only">RSS</span></a></li><?php } ?>
<li> <li>
<button type="button" class="btn_bo_sch btn_b01 btn" title="게시판 검색"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">게시판 검색</span></button> <button type="button" class="btn_bo_sch btn_b01 btn" title="게시판 검색"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">게시판 검색</span></button>
</li> </li>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="글쓰기"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">글쓰기</span></a></li><?php } ?> <?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="글쓰기"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">글쓰기</span></a></li><?php } ?>
<?php if ($is_admin == 'super' || $is_auth) { ?> <?php if ($is_admin == 'super' || $is_auth) { ?>
<li> <li>
<button type="button" class="btn_more_opt is_list_btn btn_b01 btn" title="게시판 리스트 옵션"><i class="fa fa-ellipsis-v" aria-hidden="true"></i><span class="sound_only">게시판 리스트 옵션</span></button> <button type="button" class="btn_more_opt is_list_btn btn_b01 btn" title="게시판 리스트 옵션"><i class="fa fa-ellipsis-v" aria-hidden="true"></i><span class="sound_only">게시판 리스트 옵션</span></button>
<?php if ($is_checkbox) { ?> <?php if ($is_checkbox) { ?>
<ul class="more_opt is_list_btn"> <ul class="more_opt is_list_btn">
<li><button type="submit" name="btn_submit" value="선택삭제" onclick="document.pressed=this.value"><i class="fa fa-trash-o" aria-hidden="true"></i> 선택삭제</button></li> <li><button type="submit" name="btn_submit" value="선택삭제" onclick="document.pressed=this.value"><i class="fa fa-trash-o" aria-hidden="true"></i> 선택삭제</button></li>
<li><button type="submit" name="btn_submit" value="선택복사" onclick="document.pressed=this.value"><i class="fa fa-files-o" aria-hidden="true"></i> 선택복사</button></li> <li><button type="submit" name="btn_submit" value="선택복사" onclick="document.pressed=this.value"><i class="fa fa-files-o" aria-hidden="true"></i> 선택복사</button></li>
<li><button type="submit" name="btn_submit" value="선택이동" onclick="document.pressed=this.value"><i class="fa fa-arrows" aria-hidden="true"></i> 선택이동</button></li> <li><button type="submit" name="btn_submit" value="선택이동" onclick="document.pressed=this.value"><i class="fa fa-arrows" aria-hidden="true"></i> 선택이동</button></li>
</ul> </ul>
<?php } ?> <?php } ?>
</li> </li>
<?php } ?> <?php } ?>
</ul> </ul>
</div> </div>
<!-- } 게시판 페이지 정보 및 버튼 끝 --> <!-- } 게시판 페이지 정보 및 버튼 끝 -->
@ -62,9 +61,9 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
<?php if ($is_checkbox) { ?> <?php if ($is_checkbox) { ?>
<div id="gall_allchk" class="all_chk chk_box"> <div id="gall_allchk" class="all_chk chk_box">
<input type="checkbox" id="chkall" onclick="if (this.checked) all_checked(true); else all_checked(false);" class="selec_chk"> <input type="checkbox" id="chkall" onclick="if (this.checked) all_checked(true); else all_checked(false);" class="selec_chk">
<label for="chkall"> <label for="chkall">
<span></span> <span></span>
<b class="sound_only">현재 페이지 게시물 </b> 전체선택 <b class="sound_only">현재 페이지 게시물 </b> 전체선택
</label> </label>
</div> </div>
<?php } ?> <?php } ?>
@ -84,40 +83,42 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
if( $wr_id && $wr_id == $list[$i]['wr_id'] ){ if( $wr_id && $wr_id == $list[$i]['wr_id'] ){
$classes[] = 'gall_now'; $classes[] = 'gall_now';
} }
$line_height_style = ($board['bo_gallery_height'] > 0) ? 'line-height:'.$board['bo_gallery_height'].'px' : '';
?> ?>
<li class="<?php echo implode(' ', $classes); ?>"> <li class="<?php echo implode(' ', $classes); ?>">
<div class="gall_box"> <div class="gall_box">
<div class="gall_chk chk_box"> <div class="gall_chk chk_box">
<?php if ($is_checkbox) { ?> <?php if ($is_checkbox) { ?>
<input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>" id="chk_wr_id_<?php echo $i ?>" class="selec_chk"> <input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>" id="chk_wr_id_<?php echo $i ?>" class="selec_chk">
<label for="chk_wr_id_<?php echo $i ?>"> <label for="chk_wr_id_<?php echo $i ?>">
<span></span> <span></span>
<b class="sound_only"><?php echo $list[$i]['subject'] ?></b> <b class="sound_only"><?php echo $list[$i]['subject'] ?></b>
</label> </label>
<?php } ?> <?php } ?>
<span class="sound_only"> <span class="sound_only">
<?php <?php
if ($wr_id == $list[$i]['wr_id']) if ($wr_id == $list[$i]['wr_id'])
echo "<span class=\"bo_current\">열람중</span>"; echo "<span class=\"bo_current\">열람중</span>";
else else
echo $list[$i]['num']; echo $list[$i]['num'];
?> ?>
</span> </span>
</div> </div>
<div class="gall_con"> <div class="gall_con">
<div class="gall_img"> <div class="gall_img" style="<?php if ($board['bo_gallery_height'] > 0) echo 'height:'.$board['bo_gallery_height'].'px;max-height:'.$board['bo_gallery_height'].'px'; ?>">
<a href="<?php echo $list[$i]['href'] ?>"> <a href="<?php echo $list[$i]['href'] ?>">
<?php <?php
if ($list[$i]['is_notice']) { // 공지사항 ?> if ($list[$i]['is_notice']) { // 공지사항 ?>
<span class="is_notice">공지</span> <span class="is_notice" style="<?php echo $line_height_style; ?>">공지</span>
<?php } else { <?php } else {
$thumb = get_list_thumbnail($board['bo_table'], $list[$i]['wr_id'], $board['bo_gallery_width'], $board['bo_gallery_height'], false, true); $thumb = get_list_thumbnail($board['bo_table'], $list[$i]['wr_id'], $board['bo_gallery_width'], $board['bo_gallery_height'], false, true);
if($thumb['src']) { if($thumb['src']) {
$img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" >'; $img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" >';
} else { } else {
$img_content = '<span class="no_image">no image</span>'; $img_content = '<span class="no_image" style="'.$line_height_style.'">no image</span>';
} }
echo run_replace('thumb_image_tag', $img_content, $thumb); echo run_replace('thumb_image_tag', $img_content, $thumb);
@ -132,8 +133,8 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
<a href="<?php echo $list[$i]['href'] ?>" class="bo_tit"> <a href="<?php echo $list[$i]['href'] ?>" class="bo_tit">
<?php // echo $list[$i]['icon_reply']; ?> <?php // echo $list[$i]['icon_reply']; ?>
<!-- 갤러리 댓글기능 사용시 주석을 제거하세요. --> <!-- 갤러리 댓글기능 사용시 주석을 제거하세요. -->
<?php echo $list[$i]['subject'] ?> <?php echo $list[$i]['subject'] ?>
<?php <?php
// if ($list[$i]['file']['count']) { echo '<'.$list[$i]['file']['count'].'>'; } // if ($list[$i]['file']['count']) { echo '<'.$list[$i]['file']['count'].'>'; }
@ -142,19 +143,19 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
//if (isset($list[$i]['icon_file'])) echo rtrim($list[$i]['icon_file']); //if (isset($list[$i]['icon_file'])) echo rtrim($list[$i]['icon_file']);
//if (isset($list[$i]['icon_link'])) echo rtrim($list[$i]['icon_link']); //if (isset($list[$i]['icon_link'])) echo rtrim($list[$i]['icon_link']);
if (isset($list[$i]['icon_secret'])) echo rtrim($list[$i]['icon_secret']); if (isset($list[$i]['icon_secret'])) echo rtrim($list[$i]['icon_secret']);
?> ?>
<?php if ($list[$i]['comment_cnt']) { ?><span class="sound_only">댓글</span><span class="cnt_cmt"><?php echo $list[$i]['wr_comment']; ?></span><span class="sound_only">개</span><?php } ?> <?php if ($list[$i]['comment_cnt']) { ?><span class="sound_only">댓글</span><span class="cnt_cmt"><?php echo $list[$i]['wr_comment']; ?></span><span class="sound_only">개</span><?php } ?>
</a> </a>
<span class="bo_cnt"><?php echo utf8_strcut(strip_tags($list[$i]['wr_content']), 68, '..'); ?></span> <span class="bo_cnt"><?php echo utf8_strcut(strip_tags($list[$i]['wr_content']), 68, '..'); ?></span>
</div> </div>
<div class="gall_info"> <div class="gall_info">
<span class="sound_only">작성자 </span><?php echo $list[$i]['name'] ?> <span class="sound_only">작성자 </span><?php echo $list[$i]['name'] ?>
<span class="gall_date"><span class="sound_only">작성일 </span><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $list[$i]['datetime2'] ?></span> <span class="gall_date"><span class="sound_only">작성일 </span><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $list[$i]['datetime2'] ?></span>
<span class="gall_view"><span class="sound_only">조회 </span><i class="fa fa-eye" aria-hidden="true"></i> <?php echo $list[$i]['wr_hit'] ?></span> <span class="gall_view"><span class="sound_only">조회 </span><i class="fa fa-eye" aria-hidden="true"></i> <?php echo $list[$i]['wr_hit'] ?></span>
</div> </div>
<div class="gall_option"> <div class="gall_option">
<?php if ($is_good) { ?><span class="sound_only">추천</span><strong><i class="fa fa-thumbs-o-up" aria-hidden="true"></i> <?php echo $list[$i]['wr_good'] ?></strong><?php } ?> <?php if ($is_good) { ?><span class="sound_only">추천</span><strong><i class="fa fa-thumbs-o-up" aria-hidden="true"></i> <?php echo $list[$i]['wr_good'] ?></strong><?php } ?>
<?php if ($is_nogood) { ?><span class="sound_only">비추천</span><strong><i class="fa fa-thumbs-o-down" aria-hidden="true"></i> <?php echo $list[$i]['wr_nogood'] ?></strong><?php } ?> <?php if ($is_nogood) { ?><span class="sound_only">비추천</span><strong><i class="fa fa-thumbs-o-down" aria-hidden="true"></i> <?php echo $list[$i]['wr_nogood'] ?></strong><?php } ?>
</div> </div>
</div> </div>
@ -163,26 +164,26 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
<?php } ?> <?php } ?>
<?php if (count($list) == 0) { echo "<li class=\"empty_list\">게시물이 없습니다.</li>"; } ?> <?php if (count($list) == 0) { echo "<li class=\"empty_list\">게시물이 없습니다.</li>"; } ?>
</ul> </ul>
<!-- 페이지 --> <!-- 페이지 -->
<?php echo $write_pages; ?> <?php echo $write_pages; ?>
<!-- 페이지 --> <!-- 페이지 -->
<?php if ($list_href || $is_checkbox || $write_href) { ?> <?php if ($list_href || $is_checkbox || $write_href) { ?>
<div class="bo_fx"> <div class="bo_fx">
<?php if ($list_href || $write_href) { ?> <?php if ($list_href || $write_href) { ?>
<ul class="btn_bo_user"> <ul class="btn_bo_user">
<?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn" title="관리자"><i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span></a></li><?php } ?> <?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn" title="관리자"><i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span></a></li><?php } ?>
<?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b01 btn" title="RSS"><i class="fa fa-rss" aria-hidden="true"></i><span class="sound_only">RSS</span></a></li><?php } ?> <?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b01 btn" title="RSS"><i class="fa fa-rss" aria-hidden="true"></i><span class="sound_only">RSS</span></a></li><?php } ?>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="글쓰기"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">글쓰기</span></a></li><?php } ?> <?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="글쓰기"><i class="fa fa-pencil" aria-hidden="true"></i><span class="sound_only">글쓰기</span></a></li><?php } ?>
</ul> </ul>
<?php } ?> <?php } ?>
</div> </div>
<?php } ?> <?php } ?>
</form> </form>
<!-- 게시판 검색 시작 { --> <!-- 게시판 검색 시작 { -->
<div class="bo_sch_wrap"> <div class="bo_sch_wrap">
<fieldset class="bo_sch"> <fieldset class="bo_sch">
<h3>검색</h3> <h3>검색</h3>
<form name="fsearch" method="get"> <form name="fsearch" method="get">

View File

@ -1,77 +1,5 @@
@charset "utf-8"; @charset "utf-8";
/* ### 기본 스타일 커스터마이징 시작 ### */
/* 게시판 버튼 */
/* 목록 버튼 */
#bo_gall a.btn_b01 {}
#bo_gall a.btn_b01:focus, #bo_gall a.btn_b01:hover {}
#bo_gall a.btn_b02 {}
#bo_gall a.btn_b02:focus, #bo_gall a.btn_b02:hover {}
#bo_gall a.btn_admin {} /* 관리자 전용 버튼 */
#bo_gall a.btn_admin:focus, #bo_gall .btn_admin:hover {}
/* 읽기 버튼 */
#bo_v a.btn_b01 {}
#bo_v a.btn_b01:focus, #bo_v a.btn_b01:hover {}
#bo_v a.btn_b02 {}
#bo_v a.btn_b02:focus, #bo_v a.btn_b02:hover {}
#bo_v a.btn_admin {} /* 관리자 전용 버튼 */
#bo_v a.btn_admin:focus, #bo_v a.btn_admin:hover {}
/* 쓰기 버튼 */
#bo_w .btn_confirm {} /* 서식단계 진행 */
#bo_w .btn_submit {padding:0 20px;font-size:1.167em}
#bo_w button.btn_submit {}
#bo_w fieldset .btn_submit {}
#bo_w .btn_cancel {font-size:1.167em;border-radius:3px}
#bo_w button.btn_cancel {}
#bo_w .btn_cancel:focus, #bo_w .btn_cancel:hover {}
#bo_w a.btn_frmline, #bo_w button.btn_frmline {} /* 우편번호검색버튼 등 */
#bo_w button.btn_frmline {}
/* 기본 테이블 */
/* 읽기 내 테이블 */
#bo_v .tbl_head01 {}
#bo_v .tbl_head01 caption {}
#bo_v .tbl_head01 thead th {}
#bo_v .tbl_head01 thead a {}
#bo_v .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */
#bo_v .tbl_head01 tfoot th {}
#bo_v .tbl_head01 tfoot td {}
#bo_v .tbl_head01 tbody th {}
#bo_v .tbl_head01 td {}
#bo_v .tbl_head01 a {}
#bo_v td.empty_table {}
/* 쓰기 테이블 */
#bo_w table {}
#bo_w caption {}
#bo_w .frm_info {}
#bo_w .frm_address {}
#bo_w .frm_file {}
#bo_w .tbl_frm01 {}
#bo_w .tbl_frm01 th {}
#bo_w .tbl_frm01 td {}
#bo_w .tbl_frm01 textarea, #bo_w tbl_frm01 .frm_input {}
#bo_w .tbl_frm01 textarea {}
#bo_w .tbl_frm01 a {}
/* 필수입력 */
#bo_w .required, #bo_w textarea.required {}
#bo_w .cke_sc {}
#bo_w button.btn_cke_sc {}
#bo_w .cke_sc_def {}
#bo_w .cke_sc_def dl {}
#bo_w .cke_sc_def dl:after {}
#bo_w .cke_sc_def dt, #bo_w .cke_sc_def dd {}
#bo_w .cke_sc_def dt {}
#bo_w .cke_sc_def dd {}
/* ### 기본 스타일 커스터마이징 끝 ### */
/* 게시판 목록 */ /* 게시판 목록 */
#bo_cate {margin:25px 0} #bo_cate {margin:25px 0}
#bo_cate h2 {position:absolute;font-size:0;line-height:0;overflow:hidden} #bo_cate h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
@ -124,10 +52,10 @@ box-shadow:inset 0 2px 5px rgb(33, 135, 202)}
#bo_gall .gall_now .gall_text_href a {color:#ff3061} #bo_gall .gall_now .gall_text_href a {color:#ff3061}
#bo_gall .gall_href a:link, #bo_gall .gall_href a:focus, #bo_gall .gall_href a:hover {text-decoration:none} #bo_gall .gall_href a:link, #bo_gall .gall_href a:focus, #bo_gall .gall_href a:hover {text-decoration:none}
#bo_gall .gall_img {border-bottom:1px solid #eee;text-align:center;height:200px;max-height:200px;overflow:hidden} #bo_gall .gall_img {border-bottom:1px solid #eee;text-align:center;overflow:hidden}
#bo_gall .gall_img a,#bo_gall .gall_img .no_image,#bo_gall .gall_img .is_notice {display:block} #bo_gall .gall_img a,#bo_gall .gall_img .no_image,#bo_gall .gall_img .is_notice {display:block}
#bo_gall .gall_img img, #bo_gall .gall_img video {max-width:100%;height:auto !important} #bo_gall .gall_img img, #bo_gall .gall_img video {max-width:100%;height:auto !important}
#bo_gall .gall_img span {display:inline-block;background:#eaeaea;text-align:center;line-height:200px;text-transform:uppercase;font-weight:bold;font-size:1.25em;color:#777} #bo_gall .gall_img span {display:inline-block;background:#eaeaea;text-align:center;text-transform:uppercase;font-weight:bold;font-size:1.25em;color:#777}
#bo_gall .gall_text_href {margin:10px 0} #bo_gall .gall_text_href {margin:10px 0}
#bo_gall .gall_text_href a {font-weight:bold} #bo_gall .gall_text_href a {font-weight:bold}

View File

@ -188,7 +188,7 @@ gif, jpg, png파일만 가능하며 용량 <?php echo number_format($config['cf_
<?php if ($w == 'u' && file_exists($mb_icon_path)) { ?> <?php if ($w == 'u' && file_exists($mb_icon_path)) { ?>
<img src="<?php echo $mb_icon_url ?>" alt="회원아이콘"> <img src="<?php echo $mb_icon_url ?>" alt="회원아이콘">
<input type="checkbox" name="del_mb_icon" value="1" id="del_mb_icon"> <input type="checkbox" name="del_mb_icon" value="1" id="del_mb_icon">
<label for="del_mb_icon">삭제</label> <label for="del_mb_icon" class="inline">삭제</label>
<?php } ?> <?php } ?>
</li> </li>
@ -207,7 +207,7 @@ gif, jpg, png파일만 가능하며 용량 <?php echo number_format($config['cf_
<?php if ($w == 'u' && file_exists($mb_img_path)) { ?> <?php if ($w == 'u' && file_exists($mb_img_path)) { ?>
<img src="<?php echo $mb_img_url ?>" alt="회원이미지"> <img src="<?php echo $mb_img_url ?>" alt="회원이미지">
<input type="checkbox" name="del_mb_img" value="1" id="del_mb_img"> <input type="checkbox" name="del_mb_img" value="1" id="del_mb_img">
<label for="del_mb_img">삭제</label> <label for="del_mb_img" class="inline">삭제</label>
<?php } ?> <?php } ?>
</li> </li>

View File

@ -131,6 +131,7 @@
.register_form_inner {background:#f7f7f7;border:1px solid #dde7e9;border-radius:3px} .register_form_inner {background:#f7f7f7;border:1px solid #dde7e9;border-radius:3px}
.register_form_inner ul {padding:20px} .register_form_inner ul {padding:20px}
.register_form_inner label {display:block;margin-bottom:10px;line-height:24px} .register_form_inner label {display:block;margin-bottom:10px;line-height:24px}
.register_form_inner label.inline {display:inline}
#fregisterform #msg_certify {margin:5px 0 0;padding:5px;border:1px solid #dbecff;background:#eaf4ff;text-align:center} #fregisterform #msg_certify {margin:5px 0 0;padding:5px;border:1px solid #dbecff;background:#eaf4ff;text-align:center}
#fregisterform .frm_address {margin:5px 0 0} #fregisterform .frm_address {margin:5px 0 0}