계정 사용량, 게시물 레코드수, 첨부파일수 표시하기
오랜만에 글을 쓰네요.
사이트 정보를 요약해서 표시해주는 코드입니다.
표시하는 정보는 아래와 같습니다.
계정사용량, 첨부파일사용량, 데이터베이스 사용량, 전체게시판수, 전체게시물수, 전체코멘트수, 첨부파일수, 하루동안 쓴글, 하루동안 쓴 코멘트
사용법은 표시하고 싶은 부분에 코드를 붙여넣거나 단독페이지를 생성하면 됩니다.
제가 관리해주는 사이트에서는 관리자페이지 왼쪽에 항상 표시하도록 하였는데, 쿼리전송이 5회정도 이루어지는 것이 부담스러우면 단독페이지로 사용하면 될겁니다.
<?php
/**
* 계정 사용량, 게시물 레코드수 통계 2009.2.4
**/
$g4_path = "..";
include_once("./_common.php");
$state = array();
// 게시판수, 전체게시물수, 전체코멘트수 구하기
$clean = mysql_fetch_array(mysql_query("
select
FORMAT(count(*), 0) as count_board,
FORMAT(sum(bo_count_write), 0) as count_article,
FORMAT(sum(bo_count_comment), 0) as count_comment
from g4_board
"));
$state['count_board'] = $clean['count_board'];
$state['count_article'] = $clean['count_article'];
$state['count_comment'] = $clean['count_comment'];
unset($clean);
// 전체게시판 첨부파일수
$clean = mysql_fetch_array(mysql_query("
select FORMAT(count(*), 0) as count_file
from g4_board_file
"));
$state['count_file'] = $clean['count_file'];
$state['size_db'] = 0;
// DB 사용량
$tmp = mysql_query(" show table status ");
while($clean = mysql_fetch_array($tmp)) {
$state['size_db'] += $clean['Data_length'] + $clean['Index_length'];
}
$state['size_db'] = get_filesize($state['size_db']);
unset($tmp);
unset($clean);
// 계정 사용량
$state['size_account'] = `du -sh {$g4['path']}`;
$state['size_account'] = preg_replace("/(\s|\.|\/)/i", "", $state['size_account']);
// DATA 폴더 사용량
$state['size_data'] = `du -sh {$g4['path']}/data`;
$state['size_data'] = preg_replace("/(\s|\.|\/|data)/i", "", $state['size_data']);
// 최근글정보
$clean = mysql_fetch_array(mysql_query("
select
FORMAT(count(*), 0) as count_board
from g4_board_new
where wr_id = wr_parent and bn_datetime >= SUBDATE(CURDATE(), INTERVAL 1 day)
"));
$state['new_article'] = $clean['count_board'];
unset($clean);
$clean = mysql_fetch_array(mysql_query("
select
FORMAT(count(*), 0) as count_comment
from g4_board_new
where wr_id != wr_parent and bn_datetime >= SUBDATE(CURDATE(), INTERVAL 1 day)
"));
$state['new_comment'] = $clean['count_comment'];
unset($clean);
?>
<style type="text/css">
#state_box { margin:10px; border:1px solid red; }
#state_box dl { margin:0 0 0 10px; font-size:8pt; }
#state_box dt { margin:10px 0 0 0; font-weight:bold; }
#state_box dd { margin:3px 0 3px 5px; padding:0; }
</style>
<div id="state_box">
<dl>
<dt>계정정보 보기</dt>
<dd>계정사용량 : <?=$state['size_account']?></dd>
<dd>첨부파일사용량 : <?=$state['size_data'];?></dd>
<dd>데이터베이스 : <?=$state['size_db'];?></dd>
</dl>
<dl>
<dt>게시판 정보</dt>
<dd>게시판 수 : <?=$state['count_board']?></dd>
<dd>전체 게시물 : <?=$state['count_article'];?></dd>
<dd>전체 코멘트 : <?=$state['count_comment'];?></dd>
<dd>첨부파일 수 : <?=$state['count_file'];?></dd>
<dd>새로운 게시물 : <?=$state['new_article'];?></dd>
<dd>새로운 코멘트 : <?=$state['new_comment'];?></dd>
</dl>
</div>
댓글 3개
이런 것도.. ^^
$g4_path = ".."; 빼 버리는 게 나을 듯....
<?
$sub_menu = "200720"; // 임의로 설정했습니다. 알아서 적절히...
include_once("./_common.php");
auth_check($auth[$sub_menu], "r");
// 출력 시작
$g4[title] = "사이트 통계";
include_once("$g4[admin_path]/admin.head.php");
$state = array();
// 게시판수, 전체게시물수, 전체코멘트수 구하기
$clean = mysql_fetch_array(mysql_query("
select
FORMAT(count(*), 0) as count_board,
FORMAT(sum(bo_count_write), 0) as count_article,
FORMAT(sum(bo_count_comment), 0) as count_comment
from g4_board
"));
$state['count_board'] = $clean['count_board'];
$state['count_article'] = $clean['count_article'];
$state['count_comment'] = $clean['count_comment'];
unset($clean);
// 전체게시판 첨부파일수
$clean = mysql_fetch_array(mysql_query("
select FORMAT(count(*), 0) as count_file
from g4_board_file
"));
$state['count_file'] = $clean['count_file'];
$state['size_db'] = 0;
// DB 사용량
$tmp = mysql_query(" show table status ");
while($clean = mysql_fetch_array($tmp)) {
$state['size_db'] += $clean['Data_length'] + $clean['Index_length'];
}
$state['size_db'] = get_filesize($state['size_db']);
unset($tmp);
unset($clean);
// 계정 사용량
$state['size_account'] = `du -sh {$g4['path']}`;
$state['size_account'] = preg_replace("/(\s|\.|\/)/i", "", $state['size_account']);
// DATA 폴더 사용량
$state['size_data'] = `du -sh {$g4['path']}/data`;
$state['size_data'] = preg_replace("/(\s|\.|\/|data)/i", "", $state['size_data']);
// 최근글정보
$clean = mysql_fetch_array(mysql_query("
select
FORMAT(count(*), 0) as count_board
from g4_board_new
where wr_id = wr_parent and bn_datetime >= SUBDATE(CURDATE(), INTERVAL 1 day)
"));
$state['new_article'] = $clean['count_board'];
unset($clean);
$clean = mysql_fetch_array(mysql_query("
select
FORMAT(count(*), 0) as count_comment
from g4_board_new
where wr_id != wr_parent and bn_datetime >= SUBDATE(CURDATE(), INTERVAL 1 day)
"));
$state['new_comment'] = $clean['count_comment'];
unset($clean);
?>
<style type="text/css">
#state_box { margin:10px; border:1px solid red; }
#state_box dl { margin:0 0 0 10px; font-size:8pt; }
#state_box dt { margin:10px 0 0 0; font-weight:bold; }
#state_box dd { margin:3px 0 3px 5px; padding:0; }
</style>
<div id="state_box">
<dl>
<dt>계정정보 보기</dt>
<dd>계정사용량 : <?=$state['size_account']?></dd>
<dd>첨부파일사용량 : <?=$state['size_data'];?></dd>
<dd>데이터베이스 : <?=$state['size_db'];?></dd>
</dl>
<dl>
<dt>게시판 정보</dt>
<dd>게시판 수 : <?=$state['count_board']?></dd>
<dd>전체 게시물 : <?=$state['count_article'];?></dd>
<dd>전체 코멘트 : <?=$state['count_comment'];?></dd>
<dd>첨부파일 수 : <?=$state['count_file'];?></dd>
<dd>새로운 게시물 : <?=$state['new_article'];?></dd>
<dd>새로운 코멘트 : <?=$state['new_comment'];?></dd>
</dl>
</div>
<? include_once("$g4[admin_path]/admin.tail.php"); ?>
위 파일을 state.php로 저장해서 /adm에...
+
/adm/admin.menu200.php 에 다음과 같이 추가
array("200720", "사이트 통계", "$g4[admin_path]/state.php"),