juso.sir.co.kr 도로명주소를 다음 주소 API 로 변경하는 방법 정보
juso.sir.co.kr 도로명주소를 다음 주소 API 로 변경하는 방법본문
2014년 10월 31일 부로 SIR 도로명주소 서비스의 지원이 중단 된다고 안내를 드린바 있습니다.
http://sir.co.kr/bbs/board.php?bo_table=co_notice&wr_id=1160
이 게시물을 참고하시어 그누보드 5.0.16 하위 버전의 도로명주소 코드를 수정해 주시기 바랍니다.
config.php
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') { //https 통신일때 daum 주소 js
define('G5_POSTCODE_JS', '<script src="https://spi.maps.daum.net/imap/map_js_init/postcode.js"></script>');
} else { //http 통신일때 daum 주소 js
define('G5_POSTCODE_JS', '<script src="http://dmaps.daum.net/map_js_init/postcode.js"></script>');
}
위의 내용이 추가되었습니다.
/lib/common.lib.php
function add_javascript($javascript, $order=0)
{
global $html_process;
if(trim($javascript))
$html_process->merge_javascript($javascript, $order);
}
위의 함수 구문이 추가 되었습니다.
class html_process 는 아래와 같이 변경 되었습니다.
class html_process {
protected $css = array();
protected $js = array();
function merge_stylesheet($stylesheet, $order)
{
$links = $this->css;
$is_merge = true;
foreach($links as $link) {
if($link[1] == $stylesheet) {
$is_merge = false;
break;
}
}
if($is_merge)
$this->css[] = array($order, $stylesheet);
}
function merge_javascript($javascript, $order)
{
$scripts = $this->js;
$is_merge = true;
foreach($scripts as $script) {
if($script[1] == $javascript) {
$is_merge = false;
break;
}
}
if($is_merge)
$this->js[] = array($order, $javascript);
}
function run()
{
global $config, $g5, $member;
// 현재접속자 처리
$tmp_sql = " select count(*) as cnt from {$g5['login_table']} where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
$tmp_row = sql_fetch($tmp_sql);
if ($tmp_row['cnt']) {
$tmp_sql = " update {$g5['login_table']} set mb_id = '{$member['mb_id']}', lo_datetime = '".G5_TIME_YMDHIS."', lo_location = '{$g5['lo_location']}', lo_url = '{$g5['lo_url']}' where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
sql_query($tmp_sql, FALSE);
} else {
$tmp_sql = " insert into {$g5['login_table']} ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '{$_SERVER['REMOTE_ADDR']}', '{$member['mb_id']}', '".G5_TIME_YMDHIS."', '{$g5['lo_location']}', '{$g5['lo_url']}' ) ";
sql_query($tmp_sql, FALSE);
// 시간이 지난 접속은 삭제한다
sql_query(" delete from {$g5['login_table']} where lo_datetime < '".date("Y-m-d H:i:s", G5_SERVER_TIME - (60 * $config['cf_login_minutes']))."' ");
// 부담(overhead)이 있다면 테이블 최적화
//$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g5['login_table']' ");
//if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g5['login_table'] ");
}
$buffer = ob_get_contents();
ob_end_clean();
$stylesheet = '';
$links = $this->css;
if(!empty($links)) {
foreach ($links as $key => $row) {
$order[$key] = $row[0];
$index[$key] = $key;
$style[$key] = $row[1];
}
array_multisort($order, SORT_ASC, $index, SORT_ASC, $links);
foreach($links as $link) {
if(!trim($link[1]))
continue;
$stylesheet .= PHP_EOL.$link[1];
}
}
$javascript = '';
$scripts = $this->js;
$php_eol = '';
unset($order);
unset($index);
if(!empty($scripts)) {
foreach ($scripts as $key => $row) {
$order[$key] = $row[0];
$index[$key] = $key;
$script[$key] = $row[1];
}
array_multisort($order, SORT_ASC, $index, SORT_ASC, $scripts);
foreach($scripts as $js) {
if(!trim($js[1]))
continue;
$javascript .= $php_eol.$js[1];
$php_eol = PHP_EOL;
}
}
/*
</title>
<link rel="stylesheet" href="default.css">
밑으로 스킨의 스타일시트가 위치하도록 하게 한다.
*/
$buffer = preg_replace('#(</title>[^<]*<link[^>]+>)#', "$1$stylesheet", $buffer);
/*
</head>
<body>
전에 스킨의 자바스크립트가 위치하도록 하게 한다.
*/
$buffer = preg_replace('#(</head>[^<]*<body[^>]*>)#', "$javascript\n$1", $buffer);
return $buffer;
}
}
/js/common.js
$(".win_zip_find").click(function() {
win_zip(this.href);
return false;
});
위의 내용이 아래와 같이 변경 되었습니다.
$(".win_zip_find").click(function(e) {
e.preventDefault();
win_zip(this.href);
return false;
});
우편번호 창 win_zip 함수가 아래와 같이 변경 되었습니다.
var win_zip = function(href) {
if(typeof daum === 'undefined'){
alert("다음 juso.js 파일이 로드되지 않았습니다.");
return false;
}
var url_to_array = function(url) {
var request = [];
var pairs = url.substring(url.indexOf('?') + 1).split('&');
for (var i = 0; i < pairs.length; i++) {
var pair = pairs[i].split('=');
request[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
}
return request;
}
var param = url_to_array(href),
frm_name = param['frm_name'],
frm_addr1 = param['frm_addr1'],
frm_addr2 = param['frm_addr2'],
frm_addr3 = param['frm_addr3'],
frm_zip1 = param['frm_zip1'],
frm_zip2 = param['frm_zip2'],
frm_jibeon = param['frm_jibeon'],
of = document[frm_name];
new daum.Postcode({
oncomplete: function(data) {
// 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분.
// 우편번호와 주소 정보를 해당 필드에 넣고, 커서를 상세주소 필드로 이동한다.
of[frm_zip1].value = data.postcode1;
of[frm_zip2].value = data.postcode2;
of[frm_addr1].value = data.address1;
of[frm_addr2].value = "";
of[frm_addr3].value = "";
if( data.addressType == "R" ){ //도로명이면
of[frm_addr3].value = data.address2;
}
if(of[frm_jibeon] !== undefined){
of[frm_jibeon].value = data.addressType;
}
of[frm_addr2].focus();
}
}).open();
}
/bbs/register_form.php
// add_javascript('js 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
if ($config['cf_use_addr'])
add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js
위의 내용이 추가 되었습니다.
/adm/member_form.php
// add_javascript('js 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js
위의 내용이 추가 되었습니다.
<label for="mb_addr2">상세주소</label><br>
<input type="text" name="mb_addr3" value="<?php echo $mb['mb_addr3'] ?>" id="mb_addr3" class="frm_input" size="60">
<label for="mb_addr3">참고항목</label>
<input type="hidden" name="mb_addr_jibeon" value="<?php echo $mb['mb_addr_jibeon']; ?>"><br>
<span id="mb_addr_jibeon">지번주소 : <?php echo $mb['mb_addr_jibeon']; ?></span>
위의 내용이 아래 내용으로 변경되었습니다.
<label for="mb_addr2">상세주소</label>
<br>
<input type="text" name="mb_addr3" value="<?php echo $mb['mb_addr3'] ?>" id="mb_addr3" class="frm_input" size="60">
<label for="mb_addr3">참고항목</label>
<input type="hidden" name="mb_addr_jibeon" value="<?php echo $mb['mb_addr_jibeon']; ?>"><br>
/skin/member/basic/register_form.skin.php
<label for="mb_addr2">상세주소</label><br>
<input type="text" name="mb_addr3" value="<?php echo $mb['mb_addr3'] ?>" id="mb_addr3" class="frm_input" size="60">
<label for="mb_addr3">참고항목</label>
<input type="hidden" name="mb_addr_jibeon" value="<?php echo $mb['mb_addr_jibeon']; ?>"><br>
<span id="mb_addr_jibeon">지번주소 : <?php echo $mb['mb_addr_jibeon']; ?></span>
위의 내용이 아래 내용으로 변경되었습니다.
<input type="text" name="mb_addr2" value="<?php echo $member['mb_addr2'] ?>" id="reg_mb_addr2" class="frm_input frm_address" size="50">
<label for="reg_mb_addr2">상세주소</label>
<br>
<input type="text" name="mb_addr3" value="<?php echo $member['mb_addr3'] ?>" id="reg_mb_addr3" class="frm_input frm_address" size="50" readonly="readonly">
<label for="reg_mb_addr3">참고항목</label>
<input type="hidden" name="mb_addr_jibeon" value="<?php echo $member['mb_addr_jibeon']; ?>">
아래 내용은 삭제 되었습니다.
$("#reg_mb_zip1, #reg_mb_zip2, #reg_mb_addr1").attr("readonly", true);
===== 모바일 ======
/mobile/skin/member/basic/register_form.skin.php
<input type="text" name="mb_addr2" value="<?php echo $member['mb_addr2'] ?>" id="reg_mb_addr2" class="frm_input frm_address" size="50"><br>
<label for="reg_mb_addr3" class="sound_only">참고항목</label>
<input type="text" name="mb_addr3" value="<?php echo $member['mb_addr3'] ?>" id="reg_mb_addr3" readonly="readonly" class="frm_input frm_address" size="50">
<input type="hidden" name="mb_addr_jibeon" value="<?php echo $member['mb_addr_jibeon']; ?>"><br>
<span id="mb_addr_jibeon"><?php echo ($member['mb_addr_jibeon'] ? '지번주소 : '.$member['mb_addr_jibeon'] : ''); ?></span>
위의 내용이 아래 내용으로 변경되었습니다.
<label for="reg_mb_addr2" class="sound_only">상세주소</label>
<input type="text" name="mb_addr2" value="<?php echo $member['mb_addr2'] ?>" id="reg_mb_addr2" class="frm_input frm_address" size="50">
<br>
<label for="reg_mb_addr3" class="sound_only">참고항목</label>
<input type="text" name="mb_addr3" value="<?php echo $member['mb_addr3'] ?>" id="reg_mb_addr3" class="frm_input frm_address" size="50" readonly="readonly">
<input type="hidden" name="mb_addr_jibeon" value="<?php echo $member['mb_addr_jibeon']; ?>">
아래 내용은 삭제 되었습니다.
$("#reg_mb_zip1, #reg_mb_zip2, #reg_mb_addr1").attr("readonly", true);
- 끝 -
http://sir.co.kr/bbs/board.php?bo_table=co_notice&wr_id=1160
이 게시물을 참고하시어 그누보드 5.0.16 하위 버전의 도로명주소 코드를 수정해 주시기 바랍니다.
config.php
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') { //https 통신일때 daum 주소 js
define('G5_POSTCODE_JS', '<script src="https://spi.maps.daum.net/imap/map_js_init/postcode.js"></script>');
} else { //http 통신일때 daum 주소 js
define('G5_POSTCODE_JS', '<script src="http://dmaps.daum.net/map_js_init/postcode.js"></script>');
}
위의 내용이 추가되었습니다.
/lib/common.lib.php
function add_javascript($javascript, $order=0)
{
global $html_process;
if(trim($javascript))
$html_process->merge_javascript($javascript, $order);
}
위의 함수 구문이 추가 되었습니다.
class html_process 는 아래와 같이 변경 되었습니다.
class html_process {
protected $css = array();
protected $js = array();
function merge_stylesheet($stylesheet, $order)
{
$links = $this->css;
$is_merge = true;
foreach($links as $link) {
if($link[1] == $stylesheet) {
$is_merge = false;
break;
}
}
if($is_merge)
$this->css[] = array($order, $stylesheet);
}
function merge_javascript($javascript, $order)
{
$scripts = $this->js;
$is_merge = true;
foreach($scripts as $script) {
if($script[1] == $javascript) {
$is_merge = false;
break;
}
}
if($is_merge)
$this->js[] = array($order, $javascript);
}
function run()
{
global $config, $g5, $member;
// 현재접속자 처리
$tmp_sql = " select count(*) as cnt from {$g5['login_table']} where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
$tmp_row = sql_fetch($tmp_sql);
if ($tmp_row['cnt']) {
$tmp_sql = " update {$g5['login_table']} set mb_id = '{$member['mb_id']}', lo_datetime = '".G5_TIME_YMDHIS."', lo_location = '{$g5['lo_location']}', lo_url = '{$g5['lo_url']}' where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
sql_query($tmp_sql, FALSE);
} else {
$tmp_sql = " insert into {$g5['login_table']} ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '{$_SERVER['REMOTE_ADDR']}', '{$member['mb_id']}', '".G5_TIME_YMDHIS."', '{$g5['lo_location']}', '{$g5['lo_url']}' ) ";
sql_query($tmp_sql, FALSE);
// 시간이 지난 접속은 삭제한다
sql_query(" delete from {$g5['login_table']} where lo_datetime < '".date("Y-m-d H:i:s", G5_SERVER_TIME - (60 * $config['cf_login_minutes']))."' ");
// 부담(overhead)이 있다면 테이블 최적화
//$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g5['login_table']' ");
//if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g5['login_table'] ");
}
$buffer = ob_get_contents();
ob_end_clean();
$stylesheet = '';
$links = $this->css;
if(!empty($links)) {
foreach ($links as $key => $row) {
$order[$key] = $row[0];
$index[$key] = $key;
$style[$key] = $row[1];
}
array_multisort($order, SORT_ASC, $index, SORT_ASC, $links);
foreach($links as $link) {
if(!trim($link[1]))
continue;
$stylesheet .= PHP_EOL.$link[1];
}
}
$javascript = '';
$scripts = $this->js;
$php_eol = '';
unset($order);
unset($index);
if(!empty($scripts)) {
foreach ($scripts as $key => $row) {
$order[$key] = $row[0];
$index[$key] = $key;
$script[$key] = $row[1];
}
array_multisort($order, SORT_ASC, $index, SORT_ASC, $scripts);
foreach($scripts as $js) {
if(!trim($js[1]))
continue;
$javascript .= $php_eol.$js[1];
$php_eol = PHP_EOL;
}
}
/*
</title>
<link rel="stylesheet" href="default.css">
밑으로 스킨의 스타일시트가 위치하도록 하게 한다.
*/
$buffer = preg_replace('#(</title>[^<]*<link[^>]+>)#', "$1$stylesheet", $buffer);
/*
</head>
<body>
전에 스킨의 자바스크립트가 위치하도록 하게 한다.
*/
$buffer = preg_replace('#(</head>[^<]*<body[^>]*>)#', "$javascript\n$1", $buffer);
return $buffer;
}
}
/js/common.js
$(".win_zip_find").click(function() {
win_zip(this.href);
return false;
});
위의 내용이 아래와 같이 변경 되었습니다.
$(".win_zip_find").click(function(e) {
e.preventDefault();
win_zip(this.href);
return false;
});
우편번호 창 win_zip 함수가 아래와 같이 변경 되었습니다.
var win_zip = function(href) {
if(typeof daum === 'undefined'){
alert("다음 juso.js 파일이 로드되지 않았습니다.");
return false;
}
var url_to_array = function(url) {
var request = [];
var pairs = url.substring(url.indexOf('?') + 1).split('&');
for (var i = 0; i < pairs.length; i++) {
var pair = pairs[i].split('=');
request[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
}
return request;
}
var param = url_to_array(href),
frm_name = param['frm_name'],
frm_addr1 = param['frm_addr1'],
frm_addr2 = param['frm_addr2'],
frm_addr3 = param['frm_addr3'],
frm_zip1 = param['frm_zip1'],
frm_zip2 = param['frm_zip2'],
frm_jibeon = param['frm_jibeon'],
of = document[frm_name];
new daum.Postcode({
oncomplete: function(data) {
// 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분.
// 우편번호와 주소 정보를 해당 필드에 넣고, 커서를 상세주소 필드로 이동한다.
of[frm_zip1].value = data.postcode1;
of[frm_zip2].value = data.postcode2;
of[frm_addr1].value = data.address1;
of[frm_addr2].value = "";
of[frm_addr3].value = "";
if( data.addressType == "R" ){ //도로명이면
of[frm_addr3].value = data.address2;
}
if(of[frm_jibeon] !== undefined){
of[frm_jibeon].value = data.addressType;
}
of[frm_addr2].focus();
}
}).open();
}
/bbs/register_form.php
// add_javascript('js 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
if ($config['cf_use_addr'])
add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js
위의 내용이 추가 되었습니다.
/adm/member_form.php
// add_javascript('js 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js
위의 내용이 추가 되었습니다.
<label for="mb_addr2">상세주소</label><br>
<input type="text" name="mb_addr3" value="<?php echo $mb['mb_addr3'] ?>" id="mb_addr3" class="frm_input" size="60">
<label for="mb_addr3">참고항목</label>
<input type="hidden" name="mb_addr_jibeon" value="<?php echo $mb['mb_addr_jibeon']; ?>"><br>
<span id="mb_addr_jibeon">지번주소 : <?php echo $mb['mb_addr_jibeon']; ?></span>
위의 내용이 아래 내용으로 변경되었습니다.
<label for="mb_addr2">상세주소</label>
<br>
<input type="text" name="mb_addr3" value="<?php echo $mb['mb_addr3'] ?>" id="mb_addr3" class="frm_input" size="60">
<label for="mb_addr3">참고항목</label>
<input type="hidden" name="mb_addr_jibeon" value="<?php echo $mb['mb_addr_jibeon']; ?>"><br>
/skin/member/basic/register_form.skin.php
<label for="mb_addr2">상세주소</label><br>
<input type="text" name="mb_addr3" value="<?php echo $mb['mb_addr3'] ?>" id="mb_addr3" class="frm_input" size="60">
<label for="mb_addr3">참고항목</label>
<input type="hidden" name="mb_addr_jibeon" value="<?php echo $mb['mb_addr_jibeon']; ?>"><br>
<span id="mb_addr_jibeon">지번주소 : <?php echo $mb['mb_addr_jibeon']; ?></span>
위의 내용이 아래 내용으로 변경되었습니다.
<input type="text" name="mb_addr2" value="<?php echo $member['mb_addr2'] ?>" id="reg_mb_addr2" class="frm_input frm_address" size="50">
<label for="reg_mb_addr2">상세주소</label>
<br>
<input type="text" name="mb_addr3" value="<?php echo $member['mb_addr3'] ?>" id="reg_mb_addr3" class="frm_input frm_address" size="50" readonly="readonly">
<label for="reg_mb_addr3">참고항목</label>
<input type="hidden" name="mb_addr_jibeon" value="<?php echo $member['mb_addr_jibeon']; ?>">
아래 내용은 삭제 되었습니다.
$("#reg_mb_zip1, #reg_mb_zip2, #reg_mb_addr1").attr("readonly", true);
===== 모바일 ======
/mobile/skin/member/basic/register_form.skin.php
<input type="text" name="mb_addr2" value="<?php echo $member['mb_addr2'] ?>" id="reg_mb_addr2" class="frm_input frm_address" size="50"><br>
<label for="reg_mb_addr3" class="sound_only">참고항목</label>
<input type="text" name="mb_addr3" value="<?php echo $member['mb_addr3'] ?>" id="reg_mb_addr3" readonly="readonly" class="frm_input frm_address" size="50">
<input type="hidden" name="mb_addr_jibeon" value="<?php echo $member['mb_addr_jibeon']; ?>"><br>
<span id="mb_addr_jibeon"><?php echo ($member['mb_addr_jibeon'] ? '지번주소 : '.$member['mb_addr_jibeon'] : ''); ?></span>
위의 내용이 아래 내용으로 변경되었습니다.
<label for="reg_mb_addr2" class="sound_only">상세주소</label>
<input type="text" name="mb_addr2" value="<?php echo $member['mb_addr2'] ?>" id="reg_mb_addr2" class="frm_input frm_address" size="50">
<br>
<label for="reg_mb_addr3" class="sound_only">참고항목</label>
<input type="text" name="mb_addr3" value="<?php echo $member['mb_addr3'] ?>" id="reg_mb_addr3" class="frm_input frm_address" size="50" readonly="readonly">
<input type="hidden" name="mb_addr_jibeon" value="<?php echo $member['mb_addr_jibeon']; ?>">
아래 내용은 삭제 되었습니다.
$("#reg_mb_zip1, #reg_mb_zip2, #reg_mb_addr1").attr("readonly", true);
- 끝 -
댓글 10개
감사합니다. 추천이 있다면 추천 누르고 싶네요.
감사합니다.....
이전에 만들어 놓은것을 자주 이 페이지을 보면서 수정하느라
엄청난 도움이 되고 있습니다......
제가 가진게 약간 이전 버젼이라서 덧붙여 봅니다
[ member.skin.php ]
<button type="button" class="btn_frmline" onclick="win_zip('fregisterform', 'mb_zip1', 'mb_zip2', 'mb_addr1', 'mb_addr2', 'mb_addr3', 'mb_addr_jibeon');">주소 검색</button>
[ common.js ]
var win_zip = function(frm_name, frm_zip1, frm_zip2, frm_addr1, frm_addr2, frm_addr3, frm_jibeon) {
if(typeof daum === 'undefined'){
alert("다음 juso.js 파일이 로드되지 않았습니다.");
return false;
}
new daum.Postcode({
oncomplete: function(data) {
// 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분.
// 우편번호와 주소 정보를 해당 필드에 넣고, 커서를 상세주소 필드로 이동한다.
var of = document[frm_name];
of[frm_zip1].value = data.postcode1;
of[frm_zip2].value = data.postcode2;
of[frm_addr1].value = data.address1;
of[frm_addr2].value = "";
of[frm_addr3].value = "";
if( data.addressType == "R" ){ //도로명이면
of[frm_addr3].value = data.address2;
}
if(of[frm_jibeon] !== undefined){
of[frm_jibeon].value = data.addressType;
}
of[frm_addr2].focus();
}
}).open();
}
이전에 만들어 놓은것을 자주 이 페이지을 보면서 수정하느라
엄청난 도움이 되고 있습니다......
제가 가진게 약간 이전 버젼이라서 덧붙여 봅니다
[ member.skin.php ]
<button type="button" class="btn_frmline" onclick="win_zip('fregisterform', 'mb_zip1', 'mb_zip2', 'mb_addr1', 'mb_addr2', 'mb_addr3', 'mb_addr_jibeon');">주소 검색</button>
[ common.js ]
var win_zip = function(frm_name, frm_zip1, frm_zip2, frm_addr1, frm_addr2, frm_addr3, frm_jibeon) {
if(typeof daum === 'undefined'){
alert("다음 juso.js 파일이 로드되지 않았습니다.");
return false;
}
new daum.Postcode({
oncomplete: function(data) {
// 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분.
// 우편번호와 주소 정보를 해당 필드에 넣고, 커서를 상세주소 필드로 이동한다.
var of = document[frm_name];
of[frm_zip1].value = data.postcode1;
of[frm_zip2].value = data.postcode2;
of[frm_addr1].value = data.address1;
of[frm_addr2].value = "";
of[frm_addr3].value = "";
if( data.addressType == "R" ){ //도로명이면
of[frm_addr3].value = data.address2;
}
if(of[frm_jibeon] !== undefined){
of[frm_jibeon].value = data.addressType;
}
of[frm_addr2].focus();
}
}).open();
}
Fatal error: Call to a member function merge_javascript() on a non-object in D:\APM_Setup\htdocs\lib\common.lib.php on line 2420
이 에러가 나는데 왜 그런건가요? 알려주시면 감사하겠습니다.
이 에러가 나는데 왜 그런건가요? 알려주시면 감사하겠습니다.
merge_javascript 함수가 존재하지 않아서 생기는 오류입니다.
그누보드 최신버젼에서
/lib/common.lib.php
파일 보시고 함수가 없다면 추가해 주세요.
그누보드 최신버젼에서
/lib/common.lib.php
파일 보시고 함수가 없다면 추가해 주세요.
html_process class 안에 함수는 있습니다.
function add_javascript($javascript, $order=0)
{
global $html_process;
if(trim($javascript))
$html_process->merge_javascript($javascript, $order);
}
class html_process {
protected $css = array();
protected $js = array();
function merge_stylesheet($stylesheet, $order)
{
$links = $this->css;
$is_merge = true;
foreach($links as $link) {
if($link[1] == $stylesheet) {
$is_merge = false;
break;
}
}
if($is_merge)
$this->css[] = array($order, $stylesheet);
}
function merge_javascript($javascript, $order)
{
$scripts = $this->js;
$is_merge = true;
foreach($scripts as $script) {
if($script[1] == $javascript) {
$is_merge = false;
break;
}
}
if($is_merge)
$this->js[] = array($order, $javascript);
}
function run()
{
global $config, $g5, $member;
// 현재접속자 처리
$tmp_sql = " select count(*) as cnt from {$g5['login_table']} where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
$tmp_row = sql_fetch($tmp_sql);
if ($tmp_row['cnt']) {
$tmp_sql = " update {$g5['login_table']} set mb_id = '{$member['mb_id']}', lo_datetime = '".G5_TIME_YMDHIS."', lo_location = '{$g5['lo_location']}', lo_url = '{$g5['lo_url']}' where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
sql_query($tmp_sql, FALSE);
} else {
$tmp_sql = " insert into {$g5['login_table']} ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '{$_SERVER['REMOTE_ADDR']}', '{$member['mb_id']}', '".G5_TIME_YMDHIS."', '{$g5['lo_location']}', '{$g5['lo_url']}' ) ";
sql_query($tmp_sql, FALSE);
// 시간이 지난 접속은 삭제한다
sql_query(" delete from {$g5['login_table']} where lo_datetime < '".date("Y-m-d H:i:s", G5_SERVER_TIME - (60 * $config['cf_login_minutes']))."' ");
// 부담(overhead)이 있다면 테이블 최적화
//$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g5['login_table']' ");
//if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g5['login_table'] ");
}
$buffer = ob_get_contents();
ob_end_clean();
$stylesheet = '';
$links = $this->css;
if(!empty($links)) {
foreach ($links as $key => $row) {
$order[$key] = $row[0];
$index[$key] = $key;
$style[$key] = $row[1];
}
array_multisort($order, SORT_ASC, $index, SORT_ASC, $links);
foreach($links as $link) {
if(!trim($link[1]))
continue;
$stylesheet .= PHP_EOL.$link[1];
}
}
$javascript = '';
$scripts = $this->js;
$php_eol = '';
unset($order);
unset($index);
if(!empty($scripts)) {
foreach ($scripts as $key => $row) {
$order[$key] = $row[0];
$index[$key] = $key;
$script[$key] = $row[1];
}
array_multisort($order, SORT_ASC, $index, SORT_ASC, $scripts);
foreach($scripts as $js) {
if(!trim($js[1]))
continue;
$javascript .= $php_eol.$js[1];
$php_eol = PHP_EOL;
}
}
/*
</title>
<link rel="stylesheet" href="default.css">
밑으로 스킨의 스타일시트가 위치하도록 하게 한다.
*/
$buffer = preg_replace('#(</title>[^<]*<link[^>]+>)#', "$1$stylesheet", $buffer);
/*
</head>
<body>
전에 스킨의 자바스크립트가 위치하도록 하게 한다.
*/
$buffer = preg_replace('#(</head>[^<]*<body[^>]*>)#', "$javascript\n$1", $buffer);
return $buffer;
}
}
function add_javascript($javascript, $order=0)
{
global $html_process;
if(trim($javascript))
$html_process->merge_javascript($javascript, $order);
}
class html_process {
protected $css = array();
protected $js = array();
function merge_stylesheet($stylesheet, $order)
{
$links = $this->css;
$is_merge = true;
foreach($links as $link) {
if($link[1] == $stylesheet) {
$is_merge = false;
break;
}
}
if($is_merge)
$this->css[] = array($order, $stylesheet);
}
function merge_javascript($javascript, $order)
{
$scripts = $this->js;
$is_merge = true;
foreach($scripts as $script) {
if($script[1] == $javascript) {
$is_merge = false;
break;
}
}
if($is_merge)
$this->js[] = array($order, $javascript);
}
function run()
{
global $config, $g5, $member;
// 현재접속자 처리
$tmp_sql = " select count(*) as cnt from {$g5['login_table']} where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
$tmp_row = sql_fetch($tmp_sql);
if ($tmp_row['cnt']) {
$tmp_sql = " update {$g5['login_table']} set mb_id = '{$member['mb_id']}', lo_datetime = '".G5_TIME_YMDHIS."', lo_location = '{$g5['lo_location']}', lo_url = '{$g5['lo_url']}' where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
sql_query($tmp_sql, FALSE);
} else {
$tmp_sql = " insert into {$g5['login_table']} ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '{$_SERVER['REMOTE_ADDR']}', '{$member['mb_id']}', '".G5_TIME_YMDHIS."', '{$g5['lo_location']}', '{$g5['lo_url']}' ) ";
sql_query($tmp_sql, FALSE);
// 시간이 지난 접속은 삭제한다
sql_query(" delete from {$g5['login_table']} where lo_datetime < '".date("Y-m-d H:i:s", G5_SERVER_TIME - (60 * $config['cf_login_minutes']))."' ");
// 부담(overhead)이 있다면 테이블 최적화
//$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g5['login_table']' ");
//if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g5['login_table'] ");
}
$buffer = ob_get_contents();
ob_end_clean();
$stylesheet = '';
$links = $this->css;
if(!empty($links)) {
foreach ($links as $key => $row) {
$order[$key] = $row[0];
$index[$key] = $key;
$style[$key] = $row[1];
}
array_multisort($order, SORT_ASC, $index, SORT_ASC, $links);
foreach($links as $link) {
if(!trim($link[1]))
continue;
$stylesheet .= PHP_EOL.$link[1];
}
}
$javascript = '';
$scripts = $this->js;
$php_eol = '';
unset($order);
unset($index);
if(!empty($scripts)) {
foreach ($scripts as $key => $row) {
$order[$key] = $row[0];
$index[$key] = $key;
$script[$key] = $row[1];
}
array_multisort($order, SORT_ASC, $index, SORT_ASC, $scripts);
foreach($scripts as $js) {
if(!trim($js[1]))
continue;
$javascript .= $php_eol.$js[1];
$php_eol = PHP_EOL;
}
}
/*
</title>
<link rel="stylesheet" href="default.css">
밑으로 스킨의 스타일시트가 위치하도록 하게 한다.
*/
$buffer = preg_replace('#(</title>[^<]*<link[^>]+>)#', "$1$stylesheet", $buffer);
/*
</head>
<body>
전에 스킨의 자바스크립트가 위치하도록 하게 한다.
*/
$buffer = preg_replace('#(</head>[^<]*<body[^>]*>)#', "$javascript\n$1", $buffer);
return $buffer;
}
}
common.php 에서
맨 마지막 줄에
$html_process = new html_process();
를 추가해 주세요.
맨 마지막 줄에
$html_process = new html_process();
를 추가해 주세요.
아 되네요 정말 감사합니다. 즐건 크리스마스 보내세요~ ^^
네 ^^ 메리크리스마스 ~
감사합니다
도로명 신주소 적용