몇일전 태터툴즈를 설치해서 사용하던 블로그를 텍스트큐브로 업그레이드했습니다. 업그레이드가 다소 번거롭지 않을까 해서 미뤄두었던 것을 이제서야 하게 되었네요. 업그레이드는 생각보다 손쉽게 되었습니다. 기존 태터툴즈 소스 위에 최신 텍스트큐브 소스를 덮어 씌우고 설정만 고쳐주었더니 나머지 처리는 알아서 해주는 듯 합니다. 그런데 기존에 사용하던 플러그인 중에 몇몇은 사용할 수 없게 되었고 소스를 일부 수정해서 사용하던 것이 무용지물이 되었습니다. 다시 나의 필요에 맞게 튜닝을 하고 쓸만한 플러그인이 있는지 찾아봐야겠군요.
이것 저것 살펴보던 중에 관리자 페이지 리퍼러 기록 부분이 맘에 차지 않아서 어제 야밤에 관련 소스를 수정하게 되었습니다. 혹시 필요하신 분들이 있을지 모르니 그런 분이 있다면 아래 소스를 참고하세요. 리퍼러 로그 플러그인 소스의 일부를 아래에 소개한 소스 코드로 변경하면 검색 주소인 경우 아래 그림과 같이 주소 앞부분에 검색어를 강조해서 노출시켜주고 날짜에 시간도 함께 표시해줍니다.
설치형 블로그나 개인 홈페이지를 운영하다 보면 인터넷 서퍼들이 어떤 경로로 나의 홈페이지에 유입되는지에 관심이 생기며 때로는 리퍼러 로그를 보는 것이 홈페이지를 운영하는 즐거움 중에 하나입니다. 더 나아가 블로그의 운영 방향을 결정하는 자료로 활용되기도 하고 홈페이지 마케팅의 기초 자료가 되기도 합니다. 그 중에 리퍼러 로그는 실시간으로 반응을 확인할 수 있는 자료이며 이를 명확하고 직관적으로 확인할 수 있게 해주는 것이 도움이 될 수 있습니다. 그런 차원에서 아래 제시한 소스는 작게나마 도움이 될 수 있습니다. 티스토리의 경우 아마 이런 플러그인이 지원 되는 것으로 알고 있고 검색어를 강조해주는 텍스트큐브용 플러그인도 있을 지 모르겠군요.
웹프로그래머의 홈페이지 정보 블로그 http://hompy.info
[리퍼러 기록 출력 화면]

[변경전 소스 코드:tc/plugins/PN_Referer_Default/index.php]
<?php
$more = false;
list($referers, $paging) = Statistics::getRefererLogsWithPage($_GET['page'], $perPage);
for ($i=0; $i<count($referers); $i++) {
$record = $referers[$i];
$className = ($i % 2) == 1 ? 'even-line' : 'odd-line';
$className .= ($i == sizeof($referers) - 1) ? ' last-line' : '';
?>
<tr class="<?php echo $className;?> inactive-class" onmouseover="rolloverClass(this, 'over')" onmouseout="rolloverClass(this, 'out')">
<td class="date"><?php echo Timestamp::formatDate($record['referred']);?></td>
<td class="address"><a href="<?php echo misc::escapeJSInAttribute($record['url']);?>" onclick="window.open(this.href); return false;" title="<?php echo htmlspecialchars($record['url']);?>"><?php echo fireEvent('ViewRefererURL', htmlspecialchars(UTF8::lessenAsEm($record['url'], 70)), $record);?></a></td>
</tr>
<?php
}
?>
[변경후 소스 코드:tc/plugins/PN_Referer_Default/index.php]
<?php
$more = false;
list($referers, $paging) = Statistics::getRefererLogsWithPage($_GET['page'], $perPage);
for ($i=0; $i<count($referers); $i++) {
$record = $referers[$i];
$className = ($i % 2) == 1 ? 'even-line' : 'odd-line';
$className .= ($i == sizeof($referers) - 1) ? ' last-line' : '';
$record_url = urldecode($record['url']);
if (iconv("UTF-8","UTF-8",$record_url)!=$record_url) {
$record_url = iconv("EUC-KR","UTF-8",$record_url);
}
$record_url_title = $record_url;
$q_record_url = strstr($record_url,"&q");
if (!$q_record_url) {
$q_record_url = strstr($record_url,"?q");
if ($q_record_url) $q_record_url[0] = "&";
}
if ($q_record_url) {
$arr_record_url = split("&",$q_record_url);
$arr_record_url = split("=",$arr_record_url[1]);
$record_url = "<b>".$arr_record_url[1]."</b> : ".$record_url ;
}
?>
<tr class="<?php echo $className;?> inactive-class" onmouseover="rolloverClass(this, 'over')" onmouseout="rolloverClass(this, 'out')">
<td class="date"><?php echo date("m-d H:i",$record['referred']);?></td>
<td class="address"><a href="<?php echo misc::escapeJSInAttribute($record['url']);?>" onclick="window.open(this.href); return false;" title="<?php echo htmlspecialchars($record_url_title);?>"><?php echo UTF8::lessenAsEm($record_url, 70);?></a></td>
</tr>
<?php
}
?>
이것 저것 살펴보던 중에 관리자 페이지 리퍼러 기록 부분이 맘에 차지 않아서 어제 야밤에 관련 소스를 수정하게 되었습니다. 혹시 필요하신 분들이 있을지 모르니 그런 분이 있다면 아래 소스를 참고하세요. 리퍼러 로그 플러그인 소스의 일부를 아래에 소개한 소스 코드로 변경하면 검색 주소인 경우 아래 그림과 같이 주소 앞부분에 검색어를 강조해서 노출시켜주고 날짜에 시간도 함께 표시해줍니다.
설치형 블로그나 개인 홈페이지를 운영하다 보면 인터넷 서퍼들이 어떤 경로로 나의 홈페이지에 유입되는지에 관심이 생기며 때로는 리퍼러 로그를 보는 것이 홈페이지를 운영하는 즐거움 중에 하나입니다. 더 나아가 블로그의 운영 방향을 결정하는 자료로 활용되기도 하고 홈페이지 마케팅의 기초 자료가 되기도 합니다. 그 중에 리퍼러 로그는 실시간으로 반응을 확인할 수 있는 자료이며 이를 명확하고 직관적으로 확인할 수 있게 해주는 것이 도움이 될 수 있습니다. 그런 차원에서 아래 제시한 소스는 작게나마 도움이 될 수 있습니다. 티스토리의 경우 아마 이런 플러그인이 지원 되는 것으로 알고 있고 검색어를 강조해주는 텍스트큐브용 플러그인도 있을 지 모르겠군요.
웹프로그래머의 홈페이지 정보 블로그 http://hompy.info
[리퍼러 기록 출력 화면]

[변경전 소스 코드:tc/plugins/PN_Referer_Default/index.php]
<?php
$more = false;
list($referers, $paging) = Statistics::getRefererLogsWithPage($_GET['page'], $perPage);
for ($i=0; $i<count($referers); $i++) {
$record = $referers[$i];
$className = ($i % 2) == 1 ? 'even-line' : 'odd-line';
$className .= ($i == sizeof($referers) - 1) ? ' last-line' : '';
?>
<tr class="<?php echo $className;?> inactive-class" onmouseover="rolloverClass(this, 'over')" onmouseout="rolloverClass(this, 'out')">
<td class="date"><?php echo Timestamp::formatDate($record['referred']);?></td>
<td class="address"><a href="<?php echo misc::escapeJSInAttribute($record['url']);?>" onclick="window.open(this.href); return false;" title="<?php echo htmlspecialchars($record['url']);?>"><?php echo fireEvent('ViewRefererURL', htmlspecialchars(UTF8::lessenAsEm($record['url'], 70)), $record);?></a></td>
</tr>
<?php
}
?>
[변경후 소스 코드:tc/plugins/PN_Referer_Default/index.php]
<?php
$more = false;
list($referers, $paging) = Statistics::getRefererLogsWithPage($_GET['page'], $perPage);
for ($i=0; $i<count($referers); $i++) {
$record = $referers[$i];
$className = ($i % 2) == 1 ? 'even-line' : 'odd-line';
$className .= ($i == sizeof($referers) - 1) ? ' last-line' : '';
$record_url = urldecode($record['url']);
if (iconv("UTF-8","UTF-8",$record_url)!=$record_url) {
$record_url = iconv("EUC-KR","UTF-8",$record_url);
}
$record_url_title = $record_url;
$q_record_url = strstr($record_url,"&q");
if (!$q_record_url) {
$q_record_url = strstr($record_url,"?q");
if ($q_record_url) $q_record_url[0] = "&";
}
if ($q_record_url) {
$arr_record_url = split("&",$q_record_url);
$arr_record_url = split("=",$arr_record_url[1]);
$record_url = "<b>".$arr_record_url[1]."</b> : ".$record_url ;
}
?>
<tr class="<?php echo $className;?> inactive-class" onmouseover="rolloverClass(this, 'over')" onmouseout="rolloverClass(this, 'out')">
<td class="date"><?php echo date("m-d H:i",$record['referred']);?></td>
<td class="address"><a href="<?php echo misc::escapeJSInAttribute($record['url']);?>" onclick="window.open(this.href); return false;" title="<?php echo htmlspecialchars($record_url_title);?>"><?php echo UTF8::lessenAsEm($record_url, 70);?></a></td>
</tr>
<?php
}
?>