252 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			252 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
/*
 | 
						|
 ----------------------------------------------------------------------
 | 
						|
 LICENSE
 | 
						|
 | 
						|
 This program is free software; you can redistribute it and/or
 | 
						|
 modify it under the terms of the GNU General Public License (GPL)
 | 
						|
 as published by the Free Software Foundation; either version 2
 | 
						|
 of the License, or (at your option) any later version.
 | 
						|
 | 
						|
 This program is distributed in the hope that it will be useful,
 | 
						|
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
 GNU General Public License for more details.
 | 
						|
 | 
						|
 To read the license please visit http://www.gnu.org/copyleft/gpl.html
 | 
						|
 ----------------------------------------------------------------------
 | 
						|
*/
 | 
						|
 | 
						|
/** 
 | 
						|
 * Show quotas for one user
 | 
						|
 * 
 | 
						|
 * @copyright AlternC-Team 2000-2017 https://alternc.com/
 | 
						|
 */
 | 
						|
 | 
						|
require_once("../class/config.php");
 | 
						|
if (!defined("QUOTASONE")) return;
 | 
						|
 | 
						|
// FIXME missing getfield for $mode
 | 
						|
if (!isset($mode)) { // when included from adm_login, mode is not set
 | 
						|
  $mode = 0;
 | 
						|
}
 | 
						|
// $mode = 4; // to debug the graphical mode of quotas
 | 
						|
 | 
						|
// If the var $usr exists, it means we call quotas for 1 user from the general admin page.
 | 
						|
// If not, we get the ID of the user via $mem->user["login"]
 | 
						|
if (isset($usr) && is_int($usr)) {
 | 
						|
  $id_usr=$usr;
 | 
						|
  $login=$admin->get_login_by_uid($id_usr);
 | 
						|
} else {
 | 
						|
  $id_usr = $mem->user["uid"];
 | 
						|
  $login = $mem->user["login"];
 | 
						|
}
 | 
						|
?>
 | 
						|
<center>
 | 
						|
 | 
						|
<h3 style="text-align:center;"><?php printf(_("<b>%s</b> account"),$login); ?></h3>
 | 
						|
 | 
						|
<div style="width: 600px">
 | 
						|
 | 
						|
<!-- Webspaces -->
 | 
						|
 | 
						|
<?php
 | 
						|
 | 
						|
  $totalweb = $quota->getquota('web');
 | 
						|
  if ( $totalweb['u'] > 0 ) {
 | 
						|
    $t=$quota->get_size_unit($totalweb['u'] * 1024);
 | 
						|
    echo "<p>"._("quota_web")." "; // use quota_web because it's the magically translated string
 | 
						|
    echo sprintf("%.1f", $t['size'])." ".$t['unit'];
 | 
						|
    echo "</p>";
 | 
						|
  }
 | 
						|
?>
 | 
						|
 | 
						|
<!-- Mails -->
 | 
						|
 | 
						|
<p style="text-align: left; font-size:16px;"><b><?php __("Emails"); ?></b></p>
 | 
						|
 | 
						|
<table class="tedit" width="100%">
 | 
						|
<thead>
 | 
						|
<tr>
 | 
						|
   <th><?php __("Domains"); ?></th>
 | 
						|
   <th><?php __("Emails"); ?></th>
 | 
						|
   <th><?php __("Space"); ?></th>
 | 
						|
</tr>
 | 
						|
</thead>
 | 
						|
<tbody>
 | 
						|
<?php
 | 
						|
 | 
						|
  $domaines_user = $dom->enum_domains($id_usr);
 | 
						|
  $totalmail=0;
 | 
						|
  foreach ($domaines_user as $domaine) {
 | 
						|
    $mstmp = $quota->get_size_mail_sum_domain($domaine);
 | 
						|
    $totalmail+=$mstmp;
 | 
						|
  }
 | 
						|
 | 
						|
  $t=$quota->get_size_unit($totalmail);
 | 
						|
 | 
						|
  foreach ($domaines_user as $domaine) { 
 | 
						|
    $alias_sizes = $quota->get_size_mail_details_domain($domaine);
 | 
						|
    $domsize = 0; 
 | 
						|
    foreach ($alias_sizes as $e) {
 | 
						|
      if($e['size'] > 0) {
 | 
						|
        $domsize += $e['size'];
 | 
						|
        echo "<tr><td>{$domaine}</td>";
 | 
						|
        echo "<td>".str_replace("_","@",$e["alias"])."</td>";
 | 
						|
        echo "<td"; if ($mode!=2) echo " style=\"text-align: right\""; echo ">";
 | 
						|
        $ms = $quota->get_size_unit($e['size']);
 | 
						|
        if ($totalmail) {
 | 
						|
          $pc=intval(100*($e['size']/$totalmail));
 | 
						|
        } else {
 | 
						|
          $pc=0;
 | 
						|
        }
 | 
						|
        if ($mode==0) {
 | 
						|
          echo sprintf("%.1f", $ms['size'])." ".$ms['unit'];
 | 
						|
        } elseif ($mode==1) {
 | 
						|
          echo sprintf("%.1f", $pc)." %";
 | 
						|
        } else {
 | 
						|
          $quota->quota_displaybar($pc);
 | 
						|
        }
 | 
						|
        echo "</td></tr>";
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    $d = $quota->get_size_unit($domsize);
 | 
						|
 | 
						|
    if ($totalmail) {
 | 
						|
      $tpc = intval(100 * $domsize / $totalmail);
 | 
						|
    } else {
 | 
						|
      $tpc = 0;
 | 
						|
    }
 | 
						|
    if (count($alias_sizes) > 0) {
 | 
						|
    echo "<tr><td style=\"text-align: right\"><i><b>". _('Total'). " {$domaine}</b></i></td><td></td>";
 | 
						|
    echo "<td";
 | 
						|
    if ($mode!=2) echo " style=\"text-align: right\"";
 | 
						|
    echo "><i><b>";
 | 
						|
    if ($mode==0) {
 | 
						|
      echo sprintf("%.1f", $d['size'])." ".$d['unit'];
 | 
						|
    } elseif ($mode==1) {
 | 
						|
      echo sprintf("%.1f", $tpc)." %";
 | 
						|
    } else {
 | 
						|
      $quota->quota_displaybar($tpc);
 | 
						|
    }
 | 
						|
    echo "</b></i></td></tr>";
 | 
						|
  }
 | 
						|
}
 | 
						|
?>
 | 
						|
</tbody>
 | 
						|
</table>
 | 
						|
 | 
						|
<p> </p>
 | 
						|
<!-- Databases -->
 | 
						|
 | 
						|
<?php
 | 
						|
  $totaldb = $quota->get_size_db_sum_user($login);
 | 
						|
 | 
						|
  $t = $quota->get_size_unit($totaldb);
 | 
						|
 | 
						|
  echo "<p style=\"text-align: left; font-size:16px;\"><b>"._("Databases:")." ";
 | 
						|
  echo "</b></p>";
 | 
						|
?>
 | 
						|
 | 
						|
<table class="tedit" width="100%">
 | 
						|
<thead>
 | 
						|
<tr>
 | 
						|
  <th width='50%'><?php __("DB"); ?></th>
 | 
						|
  <th width='50%'><?php __("Space"); ?></th>
 | 
						|
</tr>
 | 
						|
</thead>
 | 
						|
<tbody>
 | 
						|
<?php
 | 
						|
 | 
						|
  $db_sizes = $quota->get_size_db_details_user($login);
 | 
						|
  foreach ($db_sizes as $d) {
 | 
						|
    echo "<tr><td>".$d["db"]."</td><td";
 | 
						|
    if ($mode!=2) echo " style=\"text-align: right\"";
 | 
						|
    echo ">";
 | 
						|
    $ds = $quota->get_size_unit($d["size"]);
 | 
						|
    if ($totaldb) {
 | 
						|
      $pc=intval(100*$d['size']/$totaldb);
 | 
						|
    } else {
 | 
						|
      $pc=0;
 | 
						|
    }
 | 
						|
    if (isset($mode) && $mode==0) {
 | 
						|
      echo sprintf("%.1f", $ds['size'])." ".$ds['unit'];
 | 
						|
    } elseif (isset($mode) &&$mode==1) {
 | 
						|
      echo sprintf("%.1f", $pc)." %";
 | 
						|
    } else {
 | 
						|
      $quota->quota_displaybar($pc, 0);
 | 
						|
    }
 | 
						|
    echo "</td></tr>";
 | 
						|
  }
 | 
						|
 | 
						|
  if (count($db_sizes) > 0 && $mode==0) {
 | 
						|
    echo "<tr><td style=\"text-align: right\"><i><b>". _('Total'). " " . _("Databases:")."</b></i></td>";
 | 
						|
    echo "<td style=\"text-align: right\"><i><b>";
 | 
						|
    echo sprintf("%.1f", $t['size'])." ".$t['unit'];
 | 
						|
    echo "</b></i></td></tr>";
 | 
						|
  }
 | 
						|
?>
 | 
						|
</tbody>
 | 
						|
</table>
 | 
						|
 | 
						|
<!-- Mailing lists -->
 | 
						|
 | 
						|
<?php
 | 
						|
  $totallist = $quota->get_size_mailman_sum_user($id_usr);
 | 
						|
  if ($totallist) {
 | 
						|
    // $totalweb is in KB, so we call get_size_unit() with it in Bytes
 | 
						|
    $t=$quota->get_size_unit($totallist * 1024);
 | 
						|
 | 
						|
    echo "<p style=\"text-align: left; font-size:16px;\"><b>"._("Mailman lists:")." ";
 | 
						|
    echo "</b></p>";
 | 
						|
?>
 | 
						|
 | 
						|
<table class="tedit" width='100%'>
 | 
						|
<thead>
 | 
						|
<tr>
 | 
						|
  <th><?php __("Lists"); ?></th>
 | 
						|
  <th><?php __("Space"); ?></th>
 | 
						|
</tr>
 | 
						|
</thead>
 | 
						|
<tbody>
 | 
						|
<?php
 | 
						|
 | 
						|
  $mailman_size = $quota->get_size_mailman_details_user($id_usr);
 | 
						|
  foreach ($mailman_size as $d) {
 | 
						|
    echo "<tr><td>".$d["list"]."</td><td";
 | 
						|
    if ($mode!=2) echo " style=\"text-align: right\"";
 | 
						|
    echo ">";
 | 
						|
    $ds = $quota->get_size_unit($d["size"] * 1024);
 | 
						|
    if ($totallist) {
 | 
						|
      $pc=intval(100*$d['size']/$totallist);
 | 
						|
    } else {
 | 
						|
      $pc=0;
 | 
						|
    }
 | 
						|
    if ($mode==0) {
 | 
						|
      echo sprintf("%.1f", $ds['size'])." ".$ds['unit'];
 | 
						|
    } elseif ($mode==1) {
 | 
						|
      echo sprintf("%.1f", $pc)." %";
 | 
						|
    } else {
 | 
						|
      $quota->quota_displaybar($pc);
 | 
						|
    }
 | 
						|
    echo "</td></tr>";
 | 
						|
  }
 | 
						|
 | 
						|
  if (count($db_sizes) > 0 && $mode==0) {
 | 
						|
    echo "<tr><td style=\"text-align: right\"><i><b>". _('Total'). " " . _("Mailman lists:")."</b></i></td>";
 | 
						|
    echo "<td";
 | 
						|
    if ($mode!=2) echo " style=\"text-align: right\"";
 | 
						|
    echo "><i><b>";
 | 
						|
    echo sprintf("%.1f", $t['size'])." ".$t['unit'];
 | 
						|
    echo "</b></i></td></tr>";
 | 
						|
  }
 | 
						|
?>
 | 
						|
</tbody>
 | 
						|
</table>
 | 
						|
 | 
						|
    <?php } /* totallist */ ?>
 | 
						|
</div>
 | 
						|
<p> </p>
 | 
						|
</center>
 |