위젯 프로그램 자료실
| 라이센스 | GPL2 |
|---|---|
| 기타 라이센스 | |
| 적용 버전 | 정식버전(1.0이후),베타버전(1.0이전) |

ft.co.kr
suelife.net
엔퓨어
본 위젯은 현재 몇몇 호스팅 업체만 정상 작동됩니다. 데이타를 가공하는 부분이 있어서 다른 위젯처럼 다운받아서 설치한다고 해서 무조건 되는건 아닙니다^^
공개된 mod_cband모듈을 사용함으로서 약간의 소스 수정으로 다른 호스팅업체에서도 사용가능 하기 때문에 몇몇 분들에게 따로 소스 수정해서 드렸습니다. 추후 그분들의 호스팅 업체를 알아봐서 사용가능 호스팅업체를 별도로 표기하겠습니다.
위에 호스팅 목록에 없더라도 본인 계정이 mod_cband모듈을 사용한다면 일단 받아서 호스팅사 아무거나 선택해보고 정상적으로 데이타가 출력된다면 그냥 쓰셔도 됩니다^^
- 사용 방법 -
첨부된 파일 다운 -> 압축을 풀면 trafficViewer.1.4폴더가 생성 -> 폴더 이름을 trafficViewer로 변경
이름 변경한 폴더를 본인계정/xe폴더/widgets/에 올림.
제로보드 관리자 모드에서 왼쪽 관리형모듈 -> 위젯 ->트래픽 사용량 출력 -> 코드생성.
코드생성 화면에서 호스팅업체 선택, 주소입력부분에 본인의 계정에 맞는 트래픽 사용량 페이지 주소 입력.
※ ft.co.kr 계정 사용하시는 분들은 본인계정주소/cband-status-me?xml 입력
suelife.net 계정 사용하시는 분들은 본인계정주소/traffic-status-me?xml 입력
그외 각자 트래픽현황 보는 화면 주소입력....
- v1.2 수정 부분 -
사용량 퍼센테이지 처리를 위해 트래픽 용량을 나누는 과정에서 정보를 못받아올경우 0을 나누면서 NaN에러발생. 화면 백지상태.
@round()로 에러표시 막음으로서 화면 백지화 현상 해결.
- v1.3 수정 부분 -
호스팅 1개추가, 계정별로 새분화함
- v1.4 수정 부분 -
호스팅 1개추가, 계정별로 나누던것을 통합
ps 제가 올린것이기에 책임감(?)을 가지고 질문이 올라오면 최대한 답변을 드리려고 노력은 합니다만 질문하실때에는 최소한 cband모듈을 사용하는지, 본인의 트래픽뷰 주소는 무엇인지, 증상은 어디서 확인해 볼 수 있는지를 알려줘야 빠른 답변을 얻는 방법이 아닐까요?
신경 써 주셔서 감사합니다 :D
제 홈페이지에 트래픽 주소 보는 곳 남겨드리면 되는건가요?
http://topssim.com/~topsim/throttle-me
이렇게...
본 주소도 한번 남겨볼께요...
http://topsim.cafe24.com/~topsim/throttle-me
혹시나 이렇게 하는게 맞는가 싶어 1.4버전 다시 받아서 각자 계정 적는 부분에
http://topssim.com/~topsim/throttle-me 와 http://topssim.com/~topsim/throttle-me?xml 한번씩 적어봤는데
위와 똑같은 에러 문구가;
설치 방법좀 알려주세요..
제가 초보라서..
그냥 위젯에 넣고 코드 생성 해서 해봤는데 메인이 백지상태로 되버리네요..
어떻게 하는건지 방법좀 알려주세요..
페이지에서 위젯을 삽입하니 안되고
레이아웃에 집어 넣어보니
Fatal error: Call to a member function proc() on a non-object in /home/******/www/bbs/classes/widget/WidgetHandler.class.php on line 28
이 에러가 뜨고 출력이 안되네요.
만일 위젯 자체 문제라면 누구나 같은 에러가 발생해야하는데 말이죠..... 왜 제가 해보면 정상일까요??
이번 업뎃으로 인해 주소만 입력하면 본인 계정이 아니라도 데이타를 가져올수 있거든요. 해서 제가 님 주소로 직접 정보를 가져오는 테스트를 하고 이상이 없어서 1.4버전을 공개한겁니다.
주소와 호스팅업체 선택하셨고요? 위젯 수정하시진 않았죠?
현재로선 원인을 못찾겠습니다. 위젯 자체 문제라고 보여지지 않네요.
SMaker님도 아마도...이래서 안되지 싶습니다.
hangoon님 파일 다운 받으셔서...
압축을 풀면...trafficViewer.1.4 라는 폴더에 압축이 풀리지요.
이걸 그대로 올리면... 위 SMaker님과 같은 오류가 발생합니다.(실력이 없어서 왜 그런지는 모르겠습니다. -ㅅ-a)
폴더 명을 trafficViewer 로 변경 해보세요. 잘 작동 합니다. ^^
예) http://suelife.net 좌측 하단에 삽입
- <mod_cband>
- <Server>
<uptime>0W 0D 09:22:50</uptime>
</Server>
- <Virtualhosts>
- <domain-fantasypia.com>
<port>0</port>
<line>731</line>
- <limits>
<total>1000000KB</total>
<kbps>0</kbps>
<rps>0</rps>
<connections>0</connections>
</limits>
- <usages>
<total>28347KiB</total>
<kbps>1.21</kbps>
<rps>0.27</rps>
<connections>1</connections>
</usages>
<time_to_refresh>0W 0D 10:34:26</time_to_refresh>
<user>none</user>
<scoreboard>/web/scoreboard/fantasypia.com.scoreboard</scoreboard>
<limit_exceeded_URL>none</limit_exceeded_URL>
</domain-fantasypia.com>
</Virtualhosts>
<Users />
</mod_cband>
미리내 쓰고 있습니다-
바는 나오지만, 값이 전부 0으로 되는걸 보아, preg_match로 제대로 읽어오지 못하는거 같습니다.
맨 위는 제 트래픽 보기 xml페이지의 소스인데요 [...
어떻게 해야할지 알려주시면 감사하겠네요-
해결했습니다. 기본인증이 필요했군요,
혹시 값이 모두 0으로 나오시는 분들이 있으시다면,
트래픽보기 화면을 들어갈때 인증화면이 있는가 확인해 주시고,
if(!$url || !$hostingType) return 'error';
$array = parse_url($url);
$url_server = $array['host'];
$url_port = (empty($array['port'])) ? 80 : $array['port'];
$url_query = (empty($array['query'])) ? '' : '?'.$array['query'];
$url_path = $array['path'].$url_query;
$objSock = fsockopen($url_server, $url_port, $strErrorNo, $strErrStr, 5);
if($objSock){
$strHeader = "GET $url HTTP/1.1\r\n";
$strHeader .= "Host:$url_server:$url_port\r\n";
$strHeader .= "Authorization:Basic " . base64_encode("fpia:tkfbdi") . "\r\n";
$strHeader .= "\r\n";
fputs($objSock, $strHeader);
$data = "";
while (!feof($objSock))
{
$data .= fgets($objSock, 65535);
}
fclose($objSock);
}
if(!$objSock) return 'error';
<출처 phpschool>
형식으로 바꿔 주시고,
다른 php 파일에
<?
$array = parse_url("주소에 적는 트래픽을 xml로 보여주는 주소");
$url_server = $array['host'];
$url_port = (empty($array['port'])) ? 80 : $array['port'];
$url_query = (empty($array['query'])) ? '' : '?'.$array['query'];
$url_path = $array['path'].$url_query;
$objSock = fsockopen($url_server, $url_port, $strErrorNo, $strErrStr, 5);
if($objSock){
$strHeader = "GET $url HTTP/1.1\r\n";
$strHeader .= "Host:$url_server:$url_port\r\n";
$strHeader .= "Authorization:Basic " . base64_encode("아이디:패스워드") . "\r\n";
$strHeader .= "\r\n";
fputs($objSock, $strHeader);
$data = "";
while (!feof($objSock))
{
$data .= fgets($objSock, 65535);
}
fclose($objSock);
}
if(!$objSock) return 'error';
/*
$fp = @fsockopen($url_server, $url_port, $errno, $errstr, 5);
if(!$fp) return 'error';
$strHeader = "GET $url HTTP/1.0\r\n";
$strHeader .= "Host: ".$url_server.":".$url_port."\r\n\r\n";
$strHeader .= "Authorization:Basic " . base64_encode("아이디:패스워드") . "\r\n";
$strHeader .= "\r\n";
fputs($fp, $strHeader);
$data = "";
while (!feof($fp))
{
$data .= fgets($fp, 65535);
}
fclose($fp);
while(!feof($fp)) $data .= fgets($fp, 1024);
fclose($fp);
*/
$debug = $data;
echo $strHeader."<br>".$data;
switch($hostingType){
case '1':
preg_match('^<Users>(.*)<\/Users>^sU', $data, $_users);
preg_match('^<limits>(.*)<\/limits>^sU', $_users[1], $_limits);
preg_match('^<total>(.*)<\/total>^sU', $_limits[1], $_user_total);
preg_match('^<usages>(.*)<\/usages>^sU', $_users[1], $_usages);
preg_match('^<total>(.*)<\/total>^sU', $_usages[1], $_usage_total);
break;
case '2':
case '3':
preg_match('^<limits>(.*)<\/limits>^sU', $data, $_limits);
preg_match('^<total>(.*)<\/total>^sU', $_limits[1], $_user_total);
preg_match('^<usages>(.*)<\/usages>^sU', $data, $_usages);
preg_match('^<total>(.*)<\/total>^sU', $_usages[1], $_usage_total);
break;
case '4':
preg_match('@<limits>(.*)<\/limits>@su', $data, $_limits);
preg_match('@<total>(.+)<\/total>@su', $_limits[1], $_user_total);
preg_match('@<usages>(.*)<\/usages>@su', $data, $_usages);
preg_match('@<total>(.+)<\/total>@su', $_usages[1], $_usage_total);
break;
}
$limit = preg_replace('/[^\d\n]+/', '', $_user_total[1]);
$limit = $limit * 1000;
$used_rate = preg_replace('/[^\d\n]+/', '', $_usage_total[1]);
$used_rate = $used_rate * 1024;
$percentage = @round( ($used_rate / $limit) * 100 ,0);
?>
의 내용을 입력하여 어떤 형식으로 $data가 표시되는지 확인하신후, 그거에 맞게 알고리즘을 제가 한것처럼 case 4: 형식으로 추가해주시면 되겠네요. 저는 덕분에 해결했습니다.
예제 사이트 : http://fantasypia.com/zbxe/









페이지 수정에서 코드를 삽입하니 반응이 없길레 레아이웃 편집으로 코드를 삽입하니 아래와 같은 문구가 뜹니다
Fatal error: Call to a member function on a non-object in /home/hosting_users/topsim/www/classes/widget/WidgetHandler.class.php on line 28
제가 cafe24 계정을 사용하고 있는데 모듈이 설치 안되서 그런건가요?