카카오톡 링크기능 추가 및 기타 버그 수정
This commit is contained in:
@ -177,6 +177,12 @@ if(!isset($config['cf_optimize_date'])) {
|
||||
ADD `cf_optimize_date` date NOT NULL default '0000-00-00' AFTER `cf_popular_del` ", true);
|
||||
}
|
||||
|
||||
// 카카오톡링크 api 키
|
||||
if(!isset($config['cf_kakao_js_apikey'])) {
|
||||
sql_query(" ALTER TABLE `{$g5['config_table']}`
|
||||
ADD `cf_kakao_js_apikey` varchar(255) NOT NULL DEFAULT '' AFTER `cf_googl_shorturl_apikey` ", true);
|
||||
}
|
||||
|
||||
if(!$config['cf_faq_skin']) $config['cf_faq_skin'] = "basic";
|
||||
if(!$config['cf_mobile_faq_skin']) $config['cf_mobile_faq_skin'] = "basic";
|
||||
|
||||
@ -1056,6 +1062,10 @@ if ($config['cf_icode_id'] && $config['cf_icode_pw']) {
|
||||
<td>
|
||||
<input type="text" name="cf_googl_shorturl_apikey" value="<?php echo $config['cf_googl_shorturl_apikey'] ?>" id="cf_googl_shorturl_apikey" class="frm_input"> <a href="http://code.google.com/apis/console/" target="_blank" class="btn_frmline">API Key 등록하기</a>
|
||||
</td>
|
||||
<th scope="row"><label for="cf_kakao_js_apikey">카카오 Javascript API Key</label></th>
|
||||
<td>
|
||||
<input type="text" name="cf_kakao_js_apikey" value="<?php echo $config['cf_kakao_js_apikey'] ?>" id="cf_kakao_js_apikey" class="frm_input"> <a href="http://developers.kakao.com/" target="_blank" class="btn_frmline">앱 등록하기</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@ -127,6 +127,7 @@ $sql = " update {$g5['config_table']}
|
||||
cf_icode_server_ip = '{$_POST['cf_icode_server_ip']}',
|
||||
cf_icode_server_port = '{$_POST['cf_icode_server_port']}',
|
||||
cf_googl_shorturl_apikey = '{$_POST['cf_googl_shorturl_apikey']}',
|
||||
cf_kakao_js_apikey = '{$_POST['cf_kakao_js_apikey']}',
|
||||
cf_facebook_appid = '{$_POST['cf_facebook_appid']}',
|
||||
cf_facebook_secret = '{$_POST['cf_facebook_secret']}',
|
||||
cf_twitter_key = '{$_POST['cf_twitter_key']}',
|
||||
|
||||
@ -352,8 +352,8 @@ this.form.mb_intercept_date.value=this.form.mb_intercept_date.defaultValue; }">
|
||||
<script>
|
||||
function fmember_submit(f)
|
||||
{
|
||||
if (!f.mb_icon.value.match(/\.(gif|jp['e']g|png)$/i) && f.mb_icon.value) {
|
||||
alert('아이콘이 이미지 파일이 아닙니다. (bmp 제외)');
|
||||
if (!f.mb_icon.value.match(/\.gif$/i) && f.mb_icon.value) {
|
||||
alert('아이콘은 gif 파일만 가능합니다.');
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@ -26,6 +26,15 @@ switch ($w) {
|
||||
$return_url = './board.php?bo_table='.$bo_table;
|
||||
}
|
||||
break;
|
||||
case 'sc' :
|
||||
// 비밀번호 창에서 로그인 하는 경우 관리자 또는 자신의 글이면 바로 글보기로 감
|
||||
if ($is_admin || ($member['mb_id'] == $write['mb_id'] && $write['mb_id']))
|
||||
goto_url('./board.php?bo_table='.$bo_table.'&wr_id='.$wr_id);
|
||||
else {
|
||||
$action = './password_check.php';
|
||||
$return_url = './board.php?bo_table='.$bo_table.'&wr_id='.$wr_id;
|
||||
}
|
||||
break;
|
||||
default :
|
||||
alert('w 값이 제대로 넘어오지 않았습니다.');
|
||||
}
|
||||
|
||||
@ -15,6 +15,19 @@ if ($w == 's') {
|
||||
//set_session("ss_secret", "$bo_table|$wr[wr_num]");
|
||||
set_session($ss_name, TRUE);
|
||||
|
||||
} else if ($w == 'sc') {
|
||||
$qstr = 'bo_table='.$bo_table.'&sfl='.$sfl.'&stx='.$stx.'&sop='.$sop.'&wr_id='.$wr_id.'&page='.$page;
|
||||
|
||||
$wr = get_write($write_table, $wr_id);
|
||||
|
||||
if (sql_password($wr_password) != $wr['wr_password'])
|
||||
alert('비밀번호가 틀립니다.');
|
||||
|
||||
// 세션에 아래 정보를 저장. 하위번호는 비밀번호없이 보아야 하기 때문임.
|
||||
$ss_name = 'ss_secret_comment_'.$bo_table.'_'.$wr['wr_id'];
|
||||
//set_session("ss_secret", "$bo_table|$wr[wr_num]");
|
||||
set_session($ss_name, TRUE);
|
||||
|
||||
} else
|
||||
alert('w 값이 제대로 넘어오지 않았습니다.');
|
||||
|
||||
|
||||
@ -49,6 +49,15 @@ for ($i=0; $row=sql_fetch_array($result); $i++)
|
||||
$list[$i]['content1'] = $row['wr_content'];
|
||||
$list[$i]['content'] = conv_content($row['wr_content'], 0, 'wr_content');
|
||||
$list[$i]['content'] = search_font($stx, $list[$i]['content']);
|
||||
} else {
|
||||
$ss_name = 'ss_secret_comment_'.$bo_table.'_'.$list[$i]['wr_id'];
|
||||
|
||||
if(!get_session($ss_name))
|
||||
$list[$i]['content'] = '<a href="./password.php?w=sc&bo_table='.$bo_table.'&wr_id='.$list[$i]['wr_id'].$qstr.'" class="s_cmt">댓글내용 확인</a>';
|
||||
else {
|
||||
$list[$i]['content'] = conv_content($row['wr_content'], 0, 'wr_content');
|
||||
$list[$i]['content'] = search_font($stx, $list[$i]['content']);
|
||||
}
|
||||
}
|
||||
|
||||
$list[$i]['datetime'] = substr($row['wr_datetime'],2,14);
|
||||
|
||||
@ -478,7 +478,7 @@ if ($w == '' || $w == 'r') {
|
||||
}
|
||||
|
||||
// 게시판그룹접근사용을 하지 않아야 하고 비회원 글읽기가 가능해야 하며 비밀글이 아니어야 합니다.
|
||||
if (!$group['gr_use_access'] && $board['bO_read_level'] < 2 && !$secret) {
|
||||
if (!$group['gr_use_access'] && $board['bo_read_level'] < 2 && !$secret) {
|
||||
naver_syndi_ping($bo_table, $wr_id);
|
||||
}
|
||||
|
||||
|
||||
10
common.php
10
common.php
@ -68,10 +68,14 @@ function array_map_deep($fn, $array)
|
||||
// SQL Injection 대응 문자열 필터링
|
||||
function sql_escape_string($str)
|
||||
{
|
||||
$pattern = G5_ESCAPE_PATTERN;
|
||||
$replace = G5_ESCAPE_REPLACE;
|
||||
if(defined('G5_ESCAPE_PATTERN') && defined('G5_ESCAPE_REPLACE')) {
|
||||
$pattern = G5_ESCAPE_PATTERN;
|
||||
$replace = G5_ESCAPE_REPLACE;
|
||||
|
||||
if($pattern)
|
||||
$str = preg_replace($pattern, $replace, $str);
|
||||
}
|
||||
|
||||
$str = preg_replace($pattern, $replace, $str);
|
||||
$str = call_user_func('addslashes', $str);
|
||||
|
||||
return $str;
|
||||
|
||||
@ -165,8 +165,8 @@ define('G5_DISPLAY_SQL_ERROR', TRUE);
|
||||
define('G5_ESCAPE_FUNCTION', 'sql_escape_string');
|
||||
|
||||
// sql_escape_string 함수에서 사용될 패턴
|
||||
define('G5_ESCAPE_PATTERN', '/(and|or).*(union|select|insert|update|delete|from|where|limit|create|drop).*/i');
|
||||
define('G5_ESCAPE_REPLACE', '');
|
||||
//define('G5_ESCAPE_PATTERN', '/(and|or).*(union|select|insert|update|delete|from|where|limit|create|drop).*/i');
|
||||
//define('G5_ESCAPE_REPLACE', '');
|
||||
|
||||
// 게시판에서 링크의 기본개수를 말합니다.
|
||||
// 필드를 추가하면 이 숫자를 필드수에 맞게 늘려주십시오.
|
||||
|
||||
@ -294,6 +294,7 @@ CREATE TABLE IF NOT EXISTS `g5_config` (
|
||||
`cf_facebook_secret` varchar(255) NOT NULL,
|
||||
`cf_twitter_key` varchar(255) NOT NULL,
|
||||
`cf_twitter_secret` varchar(255) NOT NULL,
|
||||
`cf_kakao_js_apikey` varchar(255) NOT NULL,
|
||||
`cf_1_subj` varchar(255) NOT NULL DEFAULT '',
|
||||
`cf_2_subj` varchar(255) NOT NULL DEFAULT '',
|
||||
`cf_3_subj` varchar(255) NOT NULL DEFAULT '',
|
||||
|
||||
10
js/kakaolink.js
Normal file
10
js/kakaolink.js
Normal file
@ -0,0 +1,10 @@
|
||||
function kakaolink_send(text, url)
|
||||
{
|
||||
// 카카오톡 링크 버튼을 생성합니다. 처음 한번만 호출하면 됩니다.
|
||||
Kakao.Link.sendTalkLink({
|
||||
webLink : {
|
||||
text: String(text),
|
||||
url: url // 앱 설정의 웹 플랫폼에 등록한 도메인의 URL이어야 합니다.
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -2640,7 +2640,7 @@ function get_search_string($stx)
|
||||
$stx_pattern[] = '#\.*/+#';
|
||||
$stx_pattern[] = '#\\\*#';
|
||||
$stx_pattern[] = '#\.{2,}#';
|
||||
$stx_pattern[] = '#[/\'\"%=*\#\(\)\|\+\-\&\!\$@~\{\}\[\]`;:\?\^\,]+#';
|
||||
$stx_pattern[] = '#[/\'\"%=*\#\(\)\|\+\&\!\$~\{\}\[\]`;:\?\^\,]+#';
|
||||
|
||||
$stx_replace = array();
|
||||
$stx_replace[] = '';
|
||||
|
||||
@ -1,6 +1,20 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit;
|
||||
|
||||
// http://kr1.php.net/manual/en/function.curl-setopt-array.php 참고
|
||||
if (!function_exists('curl_setopt_array')) {
|
||||
function curl_setopt_array(&$ch, $curl_options)
|
||||
{
|
||||
foreach ($curl_options as $option => $value) {
|
||||
if (!curl_setopt($ch, $option, $value)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 네이버 신디케이션에 ping url 을 curl 로 전달합니다.
|
||||
function naver_syndi_ping($bo_table, $wr_id)
|
||||
{
|
||||
|
||||
@ -216,6 +216,7 @@
|
||||
#bo_vc a {color:#000;text-decoration:none}
|
||||
#bo_vc p {padding:0 0 5px;line-height:1.8em}
|
||||
#bo_vc p a {text-decoration:underline}
|
||||
#bo_vc p a.s_cmt {text-decoration:none}
|
||||
#bo_vc_empty {margin:0;padding:15px !important;text-align:center}
|
||||
#bo_vc #bo_vc_winfo {float:left}
|
||||
#bo_vc footer {zoom:1}
|
||||
|
||||
@ -309,7 +309,12 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
|
||||
<?php if($board['bo_use_sns'] && ($config['cf_facebook_appid'] || $config['cf_twitter_key'])) { ?>
|
||||
// sns 등록
|
||||
$(function() {
|
||||
$("#bo_vc_send_sns").load( "<?php echo G5_SNS_URL; ?>/view_comment_write.sns.skin.php?bo_table=<?php echo $bo_table; ?>" );
|
||||
$("#bo_vc_send_sns").load(
|
||||
"<?php echo G5_SNS_URL; ?>/view_comment_write.sns.skin.php?bo_table=<?php echo $bo_table; ?>",
|
||||
function() {
|
||||
save_html = document.getElementById('bo_vc_w').innerHTML;
|
||||
}
|
||||
);
|
||||
});
|
||||
<?php } ?>
|
||||
</script>
|
||||
|
||||
@ -203,6 +203,7 @@
|
||||
#bo_vc a {color:#000;text-decoration:none}
|
||||
#bo_vc p {padding:0 0 5px;line-height:1.8em}
|
||||
#bo_vc p a {text-decoration:underline}
|
||||
#bo_vc p a.s_cmt {text-decoration:none}
|
||||
#bo_vc_empty {margin:0;padding:15px !important;text-align:center}
|
||||
#bo_vc #bo_vc_winfo {float:left}
|
||||
#bo_vc footer {zoom:1}
|
||||
|
||||
@ -309,7 +309,12 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
|
||||
<?php if($board['bo_use_sns'] && ($config['cf_facebook_appid'] || $config['cf_twitter_key'])) { ?>
|
||||
// sns 등록
|
||||
$(function() {
|
||||
$("#bo_vc_send_sns").load( "<?php echo G5_SNS_URL; ?>/view_comment_write.sns.skin.php?bo_table=<?php echo $bo_table; ?>" );
|
||||
$("#bo_vc_send_sns").load(
|
||||
"<?php echo G5_SNS_URL; ?>/view_comment_write.sns.skin.php?bo_table=<?php echo $bo_table; ?>",
|
||||
function() {
|
||||
save_html = document.getElementById('bo_vc_w').innerHTML;
|
||||
}
|
||||
);
|
||||
});
|
||||
<?php } ?>
|
||||
</script>
|
||||
|
||||
@ -21,8 +21,21 @@ $facebook_url = $sns_send.'&sns=facebook';
|
||||
$twitter_url = $sns_send.'&sns=twitter';
|
||||
$gplus_url = $sns_send.'&sns=gplus';
|
||||
?>
|
||||
|
||||
<?php if(G5_IS_MOBILE && $config['cf_kakao_js_apikey']) { ?>
|
||||
<script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
|
||||
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js"></script>
|
||||
<script>
|
||||
// 사용할 앱의 Javascript 키를 설정해 주세요.
|
||||
Kakao.init("<?php echo $config['cf_kakao_js_apikey']; ?>");
|
||||
</script>
|
||||
<?php } ?>
|
||||
|
||||
<ul id="bo_v_sns">
|
||||
<li><a href="<?php echo $facebook_url; ?>" target="_blank"><img src="<?php echo G5_SNS_URL; ?>/icon/facebook.png" alt="페이스북으로 보내기"></a></li>
|
||||
<li><a href="<?php echo $twitter_url; ?>" target="_blank"><img src="<?php echo G5_SNS_URL; ?>/icon/twitter.png" alt="트위터로 보내기"></a></li>
|
||||
<li><a href="<?php echo $gplus_url; ?>" target="_blank"><img src="<?php echo G5_SNS_URL; ?>/icon/gplus.png" alt="구글플러스로 보내기"></a></li>
|
||||
<?php if(G5_IS_MOBILE && $config['cf_kakao_js_apikey']) { ?>
|
||||
<li><a href="javascript:kakaolink_send('<?php echo $sns_msg; ?>', '<?php echo urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); ?>');"><img src="<?php echo G5_SNS_URL; ?>/icon/kakaotalk.png" alt="카카오톡으로 보내기"></a>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
|
||||
@ -236,6 +236,7 @@ html.no-overflowscrolling #autosave_pop {height:auto;max-height:10000px !importa
|
||||
#bo_vc a {color:#000;text-decoration:none}
|
||||
#bo_vc p {padding:0 0 5px;line-height:1.8em}
|
||||
#bo_vc p a {text-decoration:underline}
|
||||
#bo_vc p a.s_cmt {text-decoration:none}
|
||||
#bo_vc_empty {margin:0;padding:20px !important;text-align:center}
|
||||
#bo_vc #bo_vc_winfo {float:left}
|
||||
#bo_vc footer {zoom:1}
|
||||
|
||||
@ -317,7 +317,12 @@ comment_box('', 'c'); // 댓글 입력폼이 보이도록 처리하기위해서
|
||||
<?php if($board['bo_use_sns'] && ($config['cf_facebook_appid'] || $config['cf_twitter_key'])) { ?>
|
||||
// sns 등록
|
||||
$(function() {
|
||||
$("#bo_vc_send_sns").load( "<?php echo G5_SNS_URL; ?>/view_comment_write.sns.skin.php?bo_table=<?php echo $bo_table; ?>" );
|
||||
$("#bo_vc_send_sns").load(
|
||||
"<?php echo G5_SNS_URL; ?>/view_comment_write.sns.skin.php?bo_table=<?php echo $bo_table; ?>",
|
||||
function() {
|
||||
save_html = document.getElementById('bo_vc_w').innerHTML;
|
||||
}
|
||||
);
|
||||
});
|
||||
<?php } ?>
|
||||
</script>
|
||||
|
||||
@ -229,6 +229,7 @@ html.no-overflowscrolling #autosave_pop {height:auto;max-height:10000px !importa
|
||||
#bo_vc a {color:#000;text-decoration:none}
|
||||
#bo_vc p {padding:0 0 5px;line-height:1.8em}
|
||||
#bo_vc p a {text-decoration:underline}
|
||||
#bo_vc p a.s_cmt {text-decoration:none}
|
||||
#bo_vc_empty {margin:0;padding:20px !important;text-align:center}
|
||||
#bo_vc #bo_vc_winfo {float:left}
|
||||
#bo_vc footer {zoom:1}
|
||||
|
||||
@ -317,7 +317,12 @@ comment_box('', 'c'); // 댓글 입력폼이 보이도록 처리하기위해서
|
||||
<?php if($board['bo_use_sns'] && ($config['cf_facebook_appid'] || $config['cf_twitter_key'])) { ?>
|
||||
// sns 등록
|
||||
$(function() {
|
||||
$("#bo_vc_send_sns").load( "<?php echo G5_SNS_URL; ?>/view_comment_write.sns.skin.php?bo_table=<?php echo $bo_table; ?>" );
|
||||
$("#bo_vc_send_sns").load(
|
||||
"<?php echo G5_SNS_URL; ?>/view_comment_write.sns.skin.php?bo_table=<?php echo $bo_table; ?>",
|
||||
function() {
|
||||
save_html = document.getElementById('bo_vc_w').innerHTML;
|
||||
}
|
||||
);
|
||||
});
|
||||
<?php } ?>
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user