Changeset 521 for trunk/admin/xcache.php


Ignore:
Timestamp:
2008-02-17T15:27:05+01:00 (7 years ago)
Author:
moo
Message:

add "total" stat

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin/xcache.php

    r520 r521  
    169169        $cacheid = (int) (isset($_POST['cacheid']) ? $_POST['cacheid'] : 0);
    170170        if (isset($_POST['clearcache'])) {
    171             xcache_clear_cache($type, $cacheid);
     171            $count = xcache_count($type);
     172            if ($cacheid == $count) {
     173                for ($cacheid = 0; $cacheid < $count; $cacheid ++) {
     174                    xcache_clear_cache($type, $cacheid);
     175                }
     176            }
     177            else {
     178                xcache_clear_cache($type, $cacheid);
     179            }
    172180        }
    173181    }
     
    177185// {{{ load info/list
    178186$cacheinfos = array();
     187$total = array();
    179188for ($i = 0; $i < $pcnt; $i ++) {
    180189    $data = xcache_info(XC_TYPE_PHP, $i);
     
    186195    $data['cacheid'] = $i;
    187196    $cacheinfos[] = $data;
    188 }
     197    if ($pcnt >= 2) {
     198        foreach ($data as $k => $v) {
     199            switch ($k) {
     200            case 'type':
     201            case 'cache_name':
     202            case 'cacheid':
     203            case 'free_blocks':
     204                continue 2;
     205            }
     206            if (!isset($total[$k])) {
     207                $total[$k] = $v;
     208            }
     209            else {
     210                $total[$k] += $v;
     211            }
     212        }
     213    }
     214}
     215
     216if ($pcnt >= 2) {
     217    $total['type'] = XC_TYPE_PHP;
     218    $total['cache_name'] = _T('Total');
     219    $total['cacheid'] = $pcnt;
     220    $total['gc'] = null;
     221    $total['istotal'] = true;
     222    $cacheinfos[] = $total;
     223}
     224
     225$total = array();
    189226for ($i = 0; $i < $vcnt; $i ++) {
    190227    $data = xcache_info(XC_TYPE_VAR, $i);
     
    196233    $data['cacheid'] = $i;
    197234    $cacheinfos[] = $data;
     235    if ($pcnt >= 2) {
     236        foreach ($data as $k => $v) {
     237            switch ($k) {
     238            case 'type':
     239            case 'cache_name':
     240            case 'cacheid':
     241            case 'free_blocks':
     242            case 'gc':
     243                continue 2;
     244            }
     245            if (!isset($total[$k])) {
     246                $total[$k] = $v;
     247            }
     248            else {
     249                $total[$k] += $v;
     250            }
     251        }
     252    }
     253}
     254
     255if ($vcnt >= 2) {
     256    $total['type'] = XC_TYPE_VAR;
     257    $total['cache_name'] = _T('Total');
     258    $total['cacheid'] = $vcnt;
     259    $total['gc'] = null;
     260    $total['istotal'] = true;
     261    $cacheinfos[] = $total;
    198262}
    199263// }}}
     
    210274    }
    211275    foreach ($cacheinfos as $i => $c) {
     276        if (!empty($c['istotal'])) {
     277            continue;
     278        }
    212279        if ($c['type'] == $type && isset($c['cache_list'])) {
    213280            foreach ($c['cache_list'] as $e) {
Note: See TracChangeset for help on using the changeset viewer.