계정 사용량, 게시물 레코드수, 첨부파일수 표시하기 정보
계정 사용량, 게시물 레코드수, 첨부파일수 표시하기
첨부파일
본문
오랜만에 글을 쓰네요.
사이트 정보를 요약해서 표시해주는 코드입니다.
표시하는 정보는 아래와 같습니다.
계정사용량, 첨부파일사용량, 데이터베이스 사용량, 전체게시판수, 전체게시물수, 전체코멘트수, 첨부파일수, 하루동안 쓴글, 하루동안 쓴 코멘트
사용법은 표시하고 싶은 부분에 코드를 붙여넣거나 단독페이지를 생성하면 됩니다.
제가 관리해주는 사이트에서는 관리자페이지 왼쪽에 항상 표시하도록 하였는데, 쿼리전송이 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>
4
댓글 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"),