s

계정 사용량, 게시물 레코드수, 첨부파일수 표시하기

오랜만에 글을 쓰네요.

사이트 정보를 요약해서 표시해주는 코드입니다.

표시하는 정보는 아래와 같습니다.
계정사용량, 첨부파일사용량, 데이터베이스 사용량, 전체게시판수, 전체게시물수, 전체코멘트수, 첨부파일수, 하루동안 쓴글, 하루동안 쓴 코멘트

사용법은 표시하고 싶은 부분에 코드를 붙여넣거나 단독페이지를 생성하면 됩니다.

제가 관리해주는 사이트에서는 관리자페이지 왼쪽에 항상 표시하도록 하였는데, 쿼리전송이 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>

첨부파일

state.php (2.7 KB) 78회 2009-02-04 23:04
|

댓글 3개

http://sir.co.kr/bbs/tb.php/g4_tiptech/656

이런 것도.. ^^
$g4_path = ".."; 때문에 속도 떨어지네요.
$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"),
감사합니다
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요. 나누면 즐거움이 커집니다.

+
제목 글쓴이 날짜 조회
16년 전 조회 3,393
16년 전 조회 6,694
16년 전 조회 2,488
16년 전 조회 4,025
16년 전 조회 3,053
16년 전 조회 4,431
16년 전 조회 4,591
16년 전 조회 2,430
16년 전 조회 1.2만
16년 전 조회 3,352
16년 전 조회 4,941
16년 전 조회 3,590
16년 전 조회 3,121
16년 전 조회 3,899
16년 전 조회 1.2만
16년 전 조회 2,183
16년 전 조회 8,204
16년 전 조회 9,395
16년 전 조회 4,955
17년 전 조회 3,488
🐛 버그신고