diff --git a/adm/config_form.php b/adm/config_form.php index 0b387bf34..75aca7329 100644 --- a/adm/config_form.php +++ b/adm/config_form.php @@ -135,6 +135,11 @@ if (!isset($config['cf_syndi_token'])) { ADD `cf_syndi_token` VARCHAR(255) NOT NULL AFTER `cf_add_meta` ", true); } +if (!isset($config['cf_syndi_except'])) { + sql_query(" ALTER TABLE `{$g5['config_table']}` + ADD `cf_syndi_except` TEXT NOT NULL AFTER `cf_syndi_token` ", true); +} + if(!isset($config['cf_sms_use'])) { sql_query(" ALTER TABLE `{$g5['config_table']}` ADD `cf_sms_use` varchar(255) NOT NULL DEFAULT '' AFTER `cf_cert_limit`, @@ -511,10 +516,18 @@ if ($config['cf_icode_id'] && $config['cf_icode_pw']) { + 경고) curl이 지원되지 않아 네이버 신디케이션을 사용할수 없습니다.'); ?> 연동키는 네이버 웹마스터도구 -> 네이버 신디케이션에서 발급할 수 있습니다.') ?> + + + + 참고로 그룹접근사용 게시판, 글읽기 권한 2 이상 게시판, 비밀글은 신디케이션 수집에서 제외됩니다.') ?> + + + diff --git a/adm/config_form_update.php b/adm/config_form_update.php index 34aefaa62..db852d38b 100644 --- a/adm/config_form_update.php +++ b/adm/config_form_update.php @@ -54,6 +54,7 @@ $sql = " update {$g5['config_table']} cf_analytics = '{$_POST['cf_analytics']}', cf_add_meta = '{$_POST['cf_add_meta']}', cf_syndi_token = '{$_POST['cf_syndi_token']}', + cf_syndi_except = '{$_POST['cf_syndi_except']}', cf_member_skin = '{$_POST['cf_member_skin']}', cf_use_homepage = '{$_POST['cf_use_homepage']}', cf_req_homepage = '{$_POST['cf_req_homepage']}', diff --git a/lib/naver_syndi.lib.php b/lib/naver_syndi.lib.php index 5bce8c2ab..7964c9305 100644 --- a/lib/naver_syndi.lib.php +++ b/lib/naver_syndi.lib.php @@ -14,8 +14,11 @@ function naver_syndi_ping($bo_table, $wr_id) // 토큰의 길이는 112 글자입니다. if (strlen($token) != 112) return -1; + // 신디케이션 수집 제외게시판 + if (preg_match('#^('.$config['cf_syndi_except'].')$#', $bo_table)) return -2; + // curl library 가 지원되어야 합니다. - if (!function_exists('curl_init')) return -2; + if (!function_exists('curl_init')) return -3; $ping_auth_header = "Authorization: Bearer " . $token; $ping_url = urlencode( G5_SYNDI_URL . "/ping.php?bo_table={$bo_table}&wr_id={$wr_id}" ); @@ -29,11 +32,11 @@ function naver_syndi_ping($bo_table, $wr_id) CURLOPT_HTTPHEADER => array("Host: apis.naver.com", "Pragma: no-cache", "Accept: */*", $ping_auth_header) ); + //print_r2($ping_client_opt); exit; $ping = curl_init(); curl_setopt_array($ping, $ping_client_opt); $response = curl_exec($ping); curl_close($ping); - //print_r2($ping_client_opt); exit; return $response; } diff --git a/plugin/syndi/ping.php b/plugin/syndi/ping.php index 92635a7ca..016afcaa0 100644 --- a/plugin/syndi/ping.php +++ b/plugin/syndi/ping.php @@ -10,12 +10,12 @@ if ($group['gr_use_access']) if ($board['bo_read_level'] > 1) die("비회원 읽기가 가능한 게시판만 신디케이션을 지원합니다."); -if (preg_match('#^('.SYNDI_EXCEPT_TABLE.')$#', $bo_table)) - die("신디케이션에서 제외된 게시판입니다."); - if (strstr($write['wr_option'], 'secret')) die("비밀글은 신디케이션을 지원하지 않습니다."); +if (preg_match('#^('.$config['cf_syndi_except'].')$#', $bo_table)) + die("신디케이션에서 제외된 게시판입니다."); + $title = htmlspecialchars($write['wr_subject']); $author = htmlspecialchars($write['wr_name']); $published = date('Y-m-d\TH:i:s\+09:00', strtotime($write['wr_datetime']));