Refactoring "used quota" display using get_size_xx function in m_quota

This commit is contained in:
domi 2012-08-24 16:14:15 +00:00
parent 6155ddabc9
commit 90afce2198
2 changed files with 130 additions and 29 deletions

View File

@ -75,7 +75,7 @@ if (isset($error) && $error) {
foreach ($mList as $mUID => $mData) foreach ($mList as $mUID => $mData)
{ {
list($tmpweb) = @mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_web WHERE uid = '" . $mUID . "'")); $tmpweb = $quota->get_size_web_sum_user($mUID);
$totalweb += $tmpweb; $totalweb += $tmpweb;
if (!empty($mData["domaines"])) if (!empty($mData["domaines"]))
@ -84,36 +84,36 @@ if (isset($error) && $error) {
{ {
$dc++; $dc++;
list($tmpmail) = @mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_mail WHERE alias LIKE '%\_" . $domaine . "'")); $tmpmail = $quota->get_size_mail_sum_domain($domaine);
$totalmail += $tmpmail; $totalmail += $tmpmail;
list($mc) = @mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM size_mail WHERE alias LIKE '%\_" . $domaine . "'")); $mc = $quota->get_size_mail_count_domain($domaine);
list($tmplist) = @mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_mailman WHERE list LIKE '%@" . $domaine . "'")); $tmplist = $quota->get_size_mailman_sum_domain($domaine);
$totallist += $tmplist; $totallist += $tmplist;
} }
} }
list($mlc) = @mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM size_mailman WHERE uid = '" . $mUID . "'")); $mlc = $quota->get_size_mailman_count_user($mUID);
list($tmpdb) = @mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_db WHERE db = '" . $mData["login"] . "' OR db LIKE '" . $mData["login"] . "\_%'")); $tmpdb = $quota->get_size_db_sum_user($mData["login"]);
$totaldb += $tmpdb; $totaldb += $tmpdb;
list($dbc) = @mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM size_db WHERE db = '" . $mData["login"] . "' OR db LIKE '" . $mData["login"] . "\_%'")); $dbc = $quota->get_size_db_count_user($mData["login"]);
} }
$totaltotal=$totalweb+$totallist+$totalmail+($totaldb/1024); // en Ko $totaltotal=$totalweb+$totallist+$totalmail+($totaldb/1024); // en Ko
} }
else else
{ {
list($totalweb)=@mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_web;")); $totalweb = $quota->get_size_web_sum_all();
list($totalmail)=@mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_mail;")); $totalmail = $quota->get_size_mail_sum_all();
list($totallist)=@mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_mailman;")); $totallist = $quota->get_size_mailman_sum_all();
list($totaldb)=@mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_db;")); $totaldb = $quota->get_size_db_sum_all();
$totaltotal=$totalweb+$totallist+$totalmail+($totaldb/1024); // en Ko $totaltotal=$totalweb+$totallist+$totalmail+($totaldb/1024); // en Ko
list($dc)=@mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM domaines;")); list($dc)=@mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM domaines;"));
list($mc)=@mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM size_mail;")); $mc = $quota->get_size_mail_count_all();
list($mlc)=@mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM size_mailman;")); $mlc = $quota->get_size_mailman_count_all();
list($dbc)=@mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM size_db;")); $dbc = $quota->get_size_db_count_all();
} }
?> ?>
@ -200,7 +200,7 @@ if ($cuid != 2000)
foreach ($mList as $mUID => $mData) foreach ($mList as $mUID => $mData)
{ {
list($tmpweb) = @mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_web WHERE uid = '" . $mUID . "'")); $tmpweb = $quota->get_size_web_sum_user($mUID);
$totalweb += $tmpweb; $totalweb += $tmpweb;
if (!empty($mData["domaines"])) if (!empty($mData["domaines"]))
@ -209,28 +209,28 @@ if ($cuid != 2000)
{ {
$dc++; $dc++;
list($tmpmail) = @mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_mail WHERE alias LIKE '%\_" . $domaine . "'")); $tmpmail = $quota->get_size_mail_sum_domain($domaine);
$totalmail += $tmpmail; $totalmail += $tmpmail;
list($mc) = @mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM size_mail WHERE alias LIKE '%\_" . $domaine . "'")); $mc = $quota->get_size_mail_count_domain($domaine);
list($tmplist) = @mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_mailman WHERE list LIKE '%@" . $domaine . "'")); $tmplist = $quota->get_size_mailman_sum_domain($domaine);
$totallist += $tmplist; $totallist += $tmplist;
} }
} }
list($mlc) = @mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM size_mailman WHERE uid = '" . $mUID . "'")); $mlc = $quota->get_size_mailman_count_domain($mUID);
list($tmpdb) = @mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_db WHERE db = '" . $mData["login"] . "' OR db LIKE '" . $mData["login"] . "\_%'")); $tmpdb = $quota->get_size_db_sum_user($mData["login"]);
$totaldb += $tmpdb; $totaldb += $tmpdb;
list($dbc) = @mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM size_db WHERE db = '" . $mData["login"] . "' OR db LIKE '" . $mData["login"] . "\_%'")); $dbc = $quota->get_size_db_count_user($mData["login"]);
} }
} }
else else
{ {
list($totalweb)=@mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_web;")); $totalweb = $quota->get_size_web_sum_all();
list($totalmail)=@mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_mail;")); $totalmail = $quota->get_size_mail_sum_all();
list($totallist)=@mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_mailman;")); $totallist = $quota->get_size_mailman_sum_all();
list($totaldb)=@mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_db;")); $totaldb = $quota->get_size_db_sum_all();
} }
$totaltotal=$totalweb+$totallist+$totalmail+($totaldb/1024); // en Ko $totaltotal=$totalweb+$totallist+$totalmail+($totaldb/1024); // en Ko
@ -258,9 +258,9 @@ while ($c=mysql_fetch_array($r)) {
while ($d=mysql_fetch_array($s)) { while ($d=mysql_fetch_array($s)) {
if ($sd) echo "&nbsp;&nbsp;&nbsp;-&nbsp;".$d["domaine"]."<br />\n"; if ($sd) echo "&nbsp;&nbsp;&nbsp;-&nbsp;".$d["domaine"]."<br />\n";
$dc++; $dc++;
list($mstmp)=@mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_mail WHERE alias LIKE '%\_".$d["domaine"]."';")); $mstmp = $quota->get_size_mail_sum_domain($d["domaine"]);
$ms+=$mstmp; $ms+=$mstmp;
list($mlstmp)=@mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_mailman WHERE list LIKE '%@".$d["domaine"]."';")); $mlstmp = $quota->get_size_mailman_sum_domain($d["domaine"]);
$mls+=$mlstmp; $mls+=$mlstmp;
} }
@ -273,7 +273,7 @@ if ($sd) echo "&nbsp;&nbsp;&nbsp;-&nbsp;".$d["domaine"]."<br />\n";
echo ">"; echo ">";
// Espace WEB // Espace WEB
list($ws)=@mysql_fetch_array(mysql_query("SELECT size FROM size_web WHERE uid='".$c["uid"]."';")); $ws = $quota->get_size_web_sum_user($c["uid"]);
if (isset($totalweb) && $totalweb){ if (isset($totalweb) && $totalweb){
$pc=intval(100*$ws/$totalweb); $pc=intval(100*$ws/$totalweb);
@ -331,7 +331,7 @@ if ($mode!=2) echo " style=\"text-align: right\"";
echo ">"; echo ">";
// Espace DB : // Espace DB :
list($ds)=@mysql_fetch_array(mysql_query("SELECT SUM(size) FROM size_db WHERE db='".$c["login"]."' OR db LIKE '".$c["login"]."\_%';")); $ds = $quota->get_size_db_sum_user($c["login"]);
if ($totaldb) if ($totaldb)
$pc=intval(100*$ds/$totaldb); $pc=intval(100*$ds/$totaldb);

View File

@ -361,6 +361,107 @@ class m_quota {
} }
} }
/* get size_xx function (filled by spoolsize.php) */
function _get_sum_sql($sql) {
global $db,$err,$cuid;
$db->query($sql);
if ($db->num_rows() == 0) {
return -1;
} else {
$db->next_record();
$r = $db->Record;
return $r['sum'];
}
}
function _get_count_sql($sql) {
global $db,$err,$cuid;
$db->query($sql);
if ($db->num_rows() == 0) {
return 0;
} else {
$db->next_record();
$r = $db->Record;
return $r['count'];
}
}
/* sum of websites sizes from all users */
function get_size_web_sum_all() {
return $this->_get_sum_sql("SELECT SUM(size) AS sum FROM size_web;");
}
/* sum of websites sizes from one user */
function get_size_web_sum_user($u) {
return $this->_get_sum_sql("SELECT SUM(size) AS sum FROM size_web WHERE uid='$u';");
}
/* sum of mailbox sizes from all domains */
function get_size_mail_sum_all() {
return $this->_get_sum_sql("SELECT SUM(size) AS sum FROM size_mail;");
}
/* sum of mailbox sizes for one domain */
function get_size_mail_sum_domain($dom) {
return $this->_get_sum_sql("SELECT SUM(size) AS sum FROM size_mail WHERE alias LIKE '%\_{$dom}'");
}
/* count of mailbox sizes from all domains */
function get_size_mail_count_all() {
return $this->_get_count_sql("SELECT COUNT(*) AS count FROM size_mail;");
}
/* count of mailbox for one domain */
function get_size_mail_count_domain($dom) {
return $this->_get_count_sql("SELECT COUNT(*) AS count FROM size_mail FROM size_mail WHERE alias LIKE '%\_{$dom}'");
}
/* sum of mailman lists sizes from all domains */
function get_size_mailman_sum_all() {
return $this->_get_sum_sql("SELECT SUM(size) AS sum FROM size_mailman;");
}
/* sum of mailman lists sizes for one domain */
function get_size_mailman_sum_domain($dom) {
return $this->_get_sum_sql("SELECT SUM(size) AS sum FROM size_mailman WHERE list LIKE '%@{$dom}'");
}
/* count of mailman lists sizes from all domains */
function get_size_mailman_count_all() {
return $this->_get_count_sql("SELECT COUNT(*) AS count FROM size_mailman;");
}
/* count of mailman lists for one user */
function get_size_mailman_count_user($u) {
return $this->_get_count_sql("SELECT COUNT(*) AS count FROM size_mailman WHERE uid = '{$u}'");
}
/* sum of databases sizes from all users */
function get_size_db_sum_all() {
return $this->_get_sum_sql("SELECT SUM(size) AS sum FROM size_db;");
}
/* sum of databases sizes for one user */
function get_size_db_sum_user($u) {
return $this->_get_sum_sql("SELECT SUM(size) AS sum FROM size_db WHERE db = '{$u}' OR db LIKE '{$u}\_%'");
}
/* count of databases from all users */
function get_size_db_count_all() {
return $this->_get_count_sql("SELECT COUNT(*) AS count FROM size_db;");
}
/* count of mailman lists for one user */
function get_size_db_count_user($u) {
return $this->_get_count_sql("SELECT COUNT(*) AS count FROM size_db WHERE db = '{$u}' OR db LIKE '{$u}\_%'");
}
#list($dc)=@mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM domaines;"));
/* ==== Hook functions ==== */
/* ----------------------------------------------------------------- */ /* ----------------------------------------------------------------- */
/** Hook function call when a user is deleted /** Hook function call when a user is deleted