source: trunk/admin/xcache.tpl.php @ 47

Last change on this file since 47 was 47, checked in by moo, 9 years ago

fix cycle for freeblocks

File size: 6.2 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4    <meta http-equiv="Content-Language" content="en-us" />
5<?php
6echo <<<HEAD
7    <meta http-equiv="Content-Type" content="text/html; charset=$charset" />
8    <script type="text/javascript" src="tablesort.js" charset="$charset"></script>
9HEAD;
10?>
11
12    <link rel="stylesheet" type="text/css" href="xcache.css" />
13    <title>XCache Administration</title>
14</head>
15
16<body>
17<h1>XCache Administration</h1>
18<span class="switcher"><?php echo switcher("type", $types); ?></span>
19<?php
20$a = new Cycle('class="col1"', 'class="col2"');
21$b = new Cycle('class="col1"', 'class="col2"');
22?>
23<table cellspacing="0" cellpadding="4" class="cycles">
24    <col />
25    <col align="right" />
26    <col align="right" />
27    <col align="right" />
28    <col />
29    <col />
30    <col align="right" />
31    <col align="right" />
32    <col align="right" />
33    <col align="right" />
34    <col align="right" />
35    <col align="right" />
36    <col align="right" />
37    <col align="right" />
38    <col />
39    <tr <?php echo $a->next(); ?>>
40        <th>-</th>
41        <th>Slots</th>
42        <th>Size</th>
43        <th>Avail</th>
44        <th>Used</th>
45        <th>Clear</th>
46        <th>Compiling</th>
47        <th>Hits</th>
48        <th>Misses</th>
49        <th>CLogs</th>
50        <th>OOMs</th>
51        <th>Protected</th>
52        <th>Cached</th>
53        <th>Deleted</th>
54        <th>Blocks</th>
55    </tr>
56    <?php
57    $numkeys = explode(',', 'slots,size,avail,hits,misses,clogs,ooms,cached,deleted');
58    foreach ($cacheinfos as $i => $ci) {
59        echo "
60        <tr ", $a->next(), ">";
61        $ci = number_formats($ci, $numkeys);
62        $ci['compiling']    = $ci['type'] == $type_php ? ($ci['compiling'] ? 'yes' : 'no') : '-';
63        $ci['can_readonly'] = $ci['can_readonly'] ? 'yes' : 'no';
64
65        $percent = (int) (($ci['size'] - $ci['avail']) / $ci['size'] * 100);
66        echo <<<EOS
67        <th>{$ci['cache_name']}</th>
68        <td>{$ci['slots']}</td>
69        <td>{$ci['size']}</td>
70        <td>{$ci['avail']}</td>
71        <td><div class="percent"><div style="width: $percent%" class="v">&nbsp;</div></div></td>
72        <td>
73            <form method="post">
74                <div>
75                    <input type="hidden" name="type" value="{$ci['type']}">
76                    <input type="hidden" name="cacheid" value="{$ci['cacheid']}">
77                    <input type="submit" name="clearcache" value="Clear" class="submit" onclick="return confirm('Sure to clear?');" />
78                </div>
79            </form>
80        </td>
81        <td>{$ci['compiling']}</td>
82        <td>{$ci['hits']}</td>
83        <td>{$ci['misses']}</td>
84        <td>{$ci['clogs']}</td>
85        <td>{$ci['ooms']}</td>
86        <td>{$ci['can_readonly']}</td>
87        <td>{$ci['cached']}</td>
88        <td>{$ci['deleted']}</td>
89        <td>
90EOS;
91
92            $b->reset();
93            ?>
94        </td>
95    </tr>
96    <?php } ?>
97</table>
98<?php
99foreach ($cacheinfos as $i => $ci) {
100    $b->reset();
101?>
102<table cellspacing="0" cellpadding="4" class="cycles freeblocks">
103    <tr>
104        <th><?php echo $ci['cache_name']; ?> size<br>offset</th>
105    <?php
106    foreach ($ci['free_blocks'] as $block) {
107        $size   = number_format($block['size']);
108        $offset = number_format($block['offset']);
109
110        $c = $b->next();
111        echo "
112        <td $c><nobr>$size<br>$offset</nobr></td>";
113    }
114    ?>
115
116    </tr>
117</table>
118<?php
119}
120?>
121<div style="clear: both">&nbsp;</div>
122<?php
123
124if ($cachelist) {
125    $isphp = $cachelist['type'] == $type_php;
126    if (function_exists("ob_filter_path_nicer")) {
127        ob_start("ob_filter_path_nicer");
128    }
129    foreach (array('Cached' => $cachelist['cache_list'], 'Deleted' => $cachelist['deleted_list']) as $listname => $entries) {
130        $a->reset();
131        echo "
132        <caption>{$cachelist['type_name']} $listname</caption>";
133        ?>
134
135    <table cellspacing="0" cellpadding="4" class="cycles entrys" width="100%">
136        <col />
137        <col />
138        <col align="right" />
139        <col align="right" />
140        <col align="right" />
141        <col align="right" />
142        <col align="right" />
143        <col align="right" />
144        <?php
145        if ($listname == 'Deleted') {
146            echo '<col align="right" />';
147        }
148        if ($isphp) {
149            echo '<col align="right" />';
150            echo '<col align="right" />';
151            echo '<col align="right" />';
152        }
153
154        echo "
155        <tr ", $a->next(), ">";
156        ?>
157
158            <th><a href="javascript:" onclick="resort(this); return false">Cache</a></th>
159            <th><a href="javascript:" onclick="resort(this); return false">entry</a></th>
160            <th><a href="javascript:" onclick="resort(this); return false">Hits</a></th>
161            <th><a href="javascript:" onclick="resort(this); return false">Ref count</a></th>
162            <th><a href="javascript:" onclick="resort(this); return false">Size</a></th>
163            <?php if ($isphp) { ?>
164            <th><a href="javascript:" onclick="resort(this); return false">SrcSize</a></th>
165            <th><a href="javascript:" onclick="resort(this); return false">Modify</a></th>
166            <th><a href="javascript:" onclick="resort(this); return false">device</a></th>
167            <th><a href="javascript:" onclick="resort(this); return false">inode</a></th>
168            <?php } ?>
169            <th><a href="javascript:" onclick="resort(this); return false">Access</a></th>
170            <th><a href="javascript:" onclick="resort(this); return false">Create</a></th>
171            <?php if ($listname == 'Deleted') { ?>
172            <th><a href="javascript:" onclick="resort(this); return false">Delete</a></th>
173            <?php } ?>
174        </tr>
175        <?php
176        foreach ($entries as $i => $entry) {
177            echo "
178            <tr ", $a->next(), ">";
179            $name     = htmlspecialchars($entry['name']);
180            $hits     = number_format($entry['hits']);
181            $refcount = number_format($entry['refcount']);
182            $size     = size($entry['size']);
183            if ($isphp) {
184                $sourcesize = size($entry['sourcesize']);
185            }
186
187            if ($isphp) {
188                $mtime = age($entry['mtime']);
189            }
190            $ctime = age($entry['ctime']);
191            $atime = age($entry['atime']);
192            $dtime = age($entry['dtime']);
193
194            echo <<<ENTRY
195            <td>{$entry['cache_name']} {$i}</td>
196            <td>{$name}</td>
197            <td int="{$entry['hits']}">{$entry['hits']}</td>
198            <td int="{$entry['refcount']}">{$entry['refcount']}</td>
199            <td int="{$entry['size']}">{$size}</td>
200ENTRY;
201            if ($isphp) {
202                echo <<<ENTRY
203                <td int="{$entry['sourcesize']}">{$sourcesize}</td>
204                <td int="{$entry['mtime']}">{$mtime}</td>
205                <td int="{$entry['device']}">{$entry['device']}</td>
206                <td int="{$entry['inode']}">{$entry['inode']}</td>
207ENTRY;
208            }
209            echo <<<ENTRY
210            <td int="{$entry['atime']}">{$atime}</td>
211            <td int="{$entry['ctime']}">{$ctime}</td>
212ENTRY;
213            if ($listname == 'Deleted') {
214            echo <<<ENTRY
215                <td int="{$entry['dtime']}">{$dtime}</td>
216ENTRY;
217            }
218
219            echo "
220        </tr>
221            ";
222        }
223        ?>
224
225    </table>
226<?php
227    }
228    if (function_exists("ob_filter_path_nicer")) {
229        ob_end_flush();
230    }
231}
232?>
233</body>
234</html>
Note: See TracBrowser for help on using the repository browser.