首页 » 后端 » DedeCMS » 正文

为 DedeCMS 后台增加空间使用量和数据库使用量功能

发布者:站点默认
2012/11/21 浏览数(2,545) 分类:DedeCMS, MySQL/MariaDB 为 DedeCMS 后台增加空间使用量和数据库使用量功能已关闭评论

说明:

在DedeCMS后台添加“空间使用量”和“数据库使用量”。方便随时了解空间和MySQL的占用情况。

需要编辑以下文件:

include\extend.func.php(添加几函数)

dede\templets\index_body.htm (后台模板)

dede\space.js.php(这个文件是新添加的)

效果:

DedeCMS后台的空间和数据库使用情况示例

DedeCMS后台的空间和数据库使用情况示例

操作:

第一步:在 include\extend.func.php 中添加几个函数:

//获取文件夹大小
function GetDirSize($dir){
    $handle = opendir($dir);
    $sizeResult = '';
    $FolderOrFile = readdir($handle);

    while($FolderOrFile !== false)
    {
        if($FolderOrFile != '.' && $FolderOrFile != '..')
        {
            if(is_dir("$dir/$FolderOrFile"))
            {
                $sizeResult += GetDirSize("$dir/$FolderOrFile");
            }
            else
            {
                $sizeResult += filesize("$dir/$FolderOrFile");
            }
        }
    }

    closedir($handle);
    if(empty($sizeResult)) $sizeResult = 0;

    return $sizeResult;
}

//获取文件夹大小(upall专用)
function GetFolderSize($directory = './'){
   $directorySize = 0;
   if ($dh = @opendir($directory)){
      while (($fileName = readdir ($dh))){
         if ($fileName != "." && $fileName != ".."){
            if (is_file($directory . "/" . $fileName))
               $directorySize += filesize($directory . "/" . $fileName);
            if (is_dir($directory . "/" . $fileName))
               $directorySize += GetFolderSize($directory . "/" . $fileName);
         }
      }
   }
   @closedir($dh);
   return $directorySize;
}

// 数据库使用量
function GetMysqlSize(){
    global $dsql,$cfg_dbname;
    $dbName = $cfg_dbname;
    $sql = "SELECT table_schema AS db, " .
        "sum( data_length + index_length ) /1024 / 1024 AS total " .
        "FROM information_schema.TABLES " .
        "WHERE table_schema = '$dbName' " .
        "GROUP BY table_schema " .
        "LIMIT 1";
    $mysqlUseRs = $dsql->GetOne($sql);
    return $mysqlUseRs['total'];
}
//查看数据大小
function GetRealSize($size){
    $kb = 1024;          // Kilobyte
    $mb = 1024 * $kb;    // Megabyte
    $gb = 1024 * $mb;    // Gigabyte
    $tb = 1024 * $gb;    // Terabyte

    if($size < $kb){
        return round($size,2).'B';
    }else if($size < $mb){
        return round($size/$kb,2).'KB';
    }else if($size < $gb){
        return round($size/$mb,2).'MB';
    }else if($size < $tb){
        return round($size/$gb,2).'GB';
    }else{
        return round($size/$tb,2).'TB';
    }
}

第二步:在 dede\templets\index_body.htm 中添加数据显示:

<tr>
	<td class='nline' style="text-align:right"> 空间使用量:</td>
	<td class='nline' style="text-align:left">
		<a href="javascript:;" title="点击查看" id="folderSize">[点击查看]</a>
		<script type="application/javascript">
			$('#folderSize').click(function(){
				$(this).html('正在查询..');
				$.get("space.js.php", function(data){
					$('#folderSize').html(data);
				})
			});
		</script>
	</td>
</tr>
<tr>
	<td class='nline' style="text-align:right"> 数据库使用量:</td>
	<td class='nline' style="text-align:left"> <?php echo GetRealSize(GetMysqlSize());?></td>
</tr>

加到这些代码后边:

<tr>
	<td class='nline' style="text-align:right"> 软件版本信息: </td>
	<td class='nline' style="text-align:left"> <?php echo $cfg_soft_enname; ?>&nbsp;<?php echo $cfg_version; ?></td>
</tr>

第三步:创建 dede\space.js.php :

<?php
// 输出网站所占用的磁盘空间
require_once(dirname(__FILE__)."/config.php");
echo $spaceUse = GetRealSize(GetFolderSize('../'));
?>

<完>

点击返回顶部
  1. 留言
  2. 联系方式