태터툴즈 고쳐쓰기 #10 - 최근 리퍼러 보여주기
예전에는 태터의 리퍼러를 수시로 확인하곤 했는데 요즘은 한달에 한번이나 들여다볼까.. 데이터는 자꾸 쌓이는데 쓰이지 못하는게 안타까워 메인 화면으로 빼봤다. 추가하는 과정은 예전에 썼던 방명록 최근글 보여주기와 99% 비슷함.
1. inc_presswork.php 파일에 아래의 함수를 추가
2. inc_function.php 파일 120번째줄에 아래의 코드를 삽입한다. (정확한 위치를 모르면 비슷하게 생긴 코드들 사이에 추가하면 됨)
3. index.php 파일 512번째줄 근처로 가서 아래의 코드를 삽입한다 (역시 비슷하게 생긴놈들 사이에 끼워넣기)
4. 마지막으로 스킨파일을 수정한다. 096_quan 스킨을 예로 들면 이렇게 수정한다
이렇게 하면 일단 기본 작업은 끝이고 이곳 처럼 URL 앞에 favicon을 표시하려면 [##_referer_rep_favicon_##] 치환자를 사용하면 된다. 예를들면 이런식으로..
이로서 실시간 리퍼러 스토킹도 시작됐으니 많이많이 찾아주세요;;
1. inc_presswork.php 파일에 아래의 함수를 추가
function get_referer_rep() {
global $db, $dbid;
unset($p);
$p_rct_refer_cnt = 10; // 몇개까지 표시할지 결정
$p_rct_refer_trunc = 24; // 길이를 몇바이트에서 자를지 결정
$sql = "select distinct host, refer from t3_".$dbid."_referlog order by regdate desc limit 0, $p_rct_refer_cnt";
// print $sql;
$result = @mysql_query($sql);
while(list($host, $referer) = @mysql_fetch_array($result)) {
$p_rep = $GLOBALS["skin"]->s_referer_rep;
$p_rep = str_replace("[##_referer_rep_link_##]", $referer, $p_rep);
$p_rep = str_replace("[##_referer_rep_favicon_##]", "http://$host/favicon.ico", $p_rep);
$p_rep = str_replace("[##_referer_rep_url_##]", str_cut(urldecode(substr($referer,7)), $p_rct_refer_trunc, 1), $p_rep);
$p .= $p_rep;
}
return $p;
}
global $db, $dbid;
unset($p);
$p_rct_refer_cnt = 10; // 몇개까지 표시할지 결정
$p_rct_refer_trunc = 24; // 길이를 몇바이트에서 자를지 결정
$sql = "select distinct host, refer from t3_".$dbid."_referlog order by regdate desc limit 0, $p_rct_refer_cnt";
// print $sql;
$result = @mysql_query($sql);
while(list($host, $referer) = @mysql_fetch_array($result)) {
$p_rep = $GLOBALS["skin"]->s_referer_rep;
$p_rep = str_replace("[##_referer_rep_link_##]", $referer, $p_rep);
$p_rep = str_replace("[##_referer_rep_favicon_##]", "http://$host/favicon.ico", $p_rep);
$p_rep = str_replace("[##_referer_rep_url_##]", str_cut(urldecode(substr($referer,7)), $p_rct_refer_trunc, 1), $p_rep);
$p .= $p_rep;
}
return $p;
}
2. inc_function.php 파일 120번째줄에 아래의 코드를 삽입한다. (정확한 위치를 모르면 비슷하게 생긴 코드들 사이에 추가하면 됨)
list($sval, $this->s_referer_rep) = cut_skintag($sval, "s_referer_rep");
3. index.php 파일 512번째줄 근처로 가서 아래의 코드를 삽입한다 (역시 비슷하게 생긴놈들 사이에 끼워넣기)
if (strpos($d1, "[##_s_referer_rep_##]")) $d1 = str_replace("[##_s_referer_rep_##]", get_referer_rep(), $d1);
4. 마지막으로 스킨파일을 수정한다. 096_quan 스킨을 예로 들면 이렇게 수정한다
<div class="h3"><img src="./images/left.gif" align="absmiddle"> 최근에 방문한 경로</div>
<div style="padding:0 0 0 20"><s_referer_rep><a href="[##_referer_rep_link_##]" target="_blank" style="line-height:13pt">[##_referer_rep_url_##]</a><br></s_referer_rep></div>
<div style="padding:0 0 0 20"><s_referer_rep><a href="[##_referer_rep_link_##]" target="_blank" style="line-height:13pt">[##_referer_rep_url_##]</a><br></s_referer_rep></div>
이렇게 하면 일단 기본 작업은 끝이고 이곳 처럼 URL 앞에 favicon을 표시하려면 [##_referer_rep_favicon_##] 치환자를 사용하면 된다. 예를들면 이런식으로..
<img src="[##_referer_rep_favicon_##]" width="16" height="16" onerror="this.onerror=null;this.src='./images/favicon.ico'">
favicon 가져올때의 문제점은 예를들어 URL이 http://search.daum.net 으로 시작하는 경우에는 http://search.daum.net/favicon.ico 를 찾기때문에 favicon을 가져오지 못한다. 이럴땐 http://daum.net/favicon.ico 를 가져오도록 만든다던가 하는 방법이 있지만 가장 단순하고 무식한 방법은 아래처럼 일일히 값을 조사해서 해당 favicon으로 연결해주는 방법이다. (일단 구글, 다음, 네이버만 적용..) function get_referer_rep() {
global $db, $dbid;
unset($p);
$p_rct_refer_cnt = 10; // 몇개까지 표시할지 결정
$p_rct_refer_trunc = 24; // 길이를 몇바이트에서 자를지 결정
$sql = "select distinct host, refer from t3_".$dbid."_referlog order by regdate desc limit 0, $p_rct_refer_cnt";
// print $sql;
$result = @mysql_query($sql);
while(list($host, $referer) = @mysql_fetch_array($result)) {
$p_rep = $GLOBALS["skin"]->s_referer_rep;
$p_rep = str_replace("[##_referer_rep_link_##]", $referer, $p_rep);
if( eregi("^(www.)?google.", $host) )
$p_rep = str_replace("[##_referer_rep_favicon_##]", "http://www.google.com/favicon.ico", $p_rep);
else if( eregi("daum.net$", $host) )
$p_rep = str_replace("[##_referer_rep_favicon_##]", "http://www.daum.net/favicon.ico", $p_rep);
else if( eregi("naver.com$", $host) )
$p_rep = str_replace("[##_referer_rep_favicon_##]", "http://www.naver.com/favicon.ico", $p_rep);
else
$p_rep = str_replace("[##_referer_rep_favicon_##]", "http://$host/favicon.ico", $p_rep);
$p_rep = str_replace("[##_referer_rep_url_##]", str_cut(urldecode(substr($referer,7)), $p_rct_refer_trunc, 1), $p_rep);
$p .= $p_rep;
}
return $p;
}
global $db, $dbid;
unset($p);
$p_rct_refer_cnt = 10; // 몇개까지 표시할지 결정
$p_rct_refer_trunc = 24; // 길이를 몇바이트에서 자를지 결정
$sql = "select distinct host, refer from t3_".$dbid."_referlog order by regdate desc limit 0, $p_rct_refer_cnt";
// print $sql;
$result = @mysql_query($sql);
while(list($host, $referer) = @mysql_fetch_array($result)) {
$p_rep = $GLOBALS["skin"]->s_referer_rep;
$p_rep = str_replace("[##_referer_rep_link_##]", $referer, $p_rep);
if( eregi("^(www.)?google.", $host) )
$p_rep = str_replace("[##_referer_rep_favicon_##]", "http://www.google.com/favicon.ico", $p_rep);
else if( eregi("daum.net$", $host) )
$p_rep = str_replace("[##_referer_rep_favicon_##]", "http://www.daum.net/favicon.ico", $p_rep);
else if( eregi("naver.com$", $host) )
$p_rep = str_replace("[##_referer_rep_favicon_##]", "http://www.naver.com/favicon.ico", $p_rep);
else
$p_rep = str_replace("[##_referer_rep_favicon_##]", "http://$host/favicon.ico", $p_rep);
$p_rep = str_replace("[##_referer_rep_url_##]", str_cut(urldecode(substr($referer,7)), $p_rct_refer_trunc, 1), $p_rep);
$p .= $p_rep;
}
return $p;
}
이로서 실시간 리퍼러 스토킹도 시작됐으니 많이많이 찾아주세요;;
'컴퓨터 얘기 > 프로그래밍' 카테고리의 다른 글
| 태터툴즈 검색어 통계 (34) | 2005/03/24 |
|---|---|
| 단어사용 빈도 분석 (6) | 2005/03/18 |
| 태터툴즈 고쳐쓰기 #10 - 최근 리퍼러 보여주기 (3) | 2005/02/24 |
| 태터툴즈 고쳐쓰기 #9 - 답글달리면 SMS 통보 (34) | 2005/01/30 |
| 태터툴즈 고쳐쓰기 #8 - nofollow, whois 연결 (4) | 2005/01/21 |
| 태터툴즈 고쳐쓰기 #7 - 글쓰기 화면 넓게 쓰기 (2) | 2005/01/04 |
태그 : 태터툴즈