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

Last change on this file since 526 was 526, checked in by moo, 7 years ago

allow user decide to show used or free blocks/percent

File size: 8.6 KB
Line 
1<?php include("header.tpl.php"); ?>
2<a href="help.php" target="_blank" id="help"><?php echo _T("Help") ?> &raquo;</a>
3<span class="switcher"><?php echo switcher("type", $types); ?></span>
4<?php
5$a = new Cycle('class="col1"', 'class="col2"');
6$b = new Cycle('class="col1"', 'class="col2"');
7?>
8<?php echo _T('Caches'); ?>:
9<table cellspacing="0" cellpadding="4" class="cycles">
10    <col />
11    <col align="right" />
12    <col align="right" />
13    <col align="right" />
14    <col />
15    <col />
16    <col align="right" />
17    <col align="right" />
18    <col align="right" />
19    <col />
20    <col align="right" />
21    <col align="right" />
22    <col align="right" />
23    <col align="right" />
24    <col align="right" />
25    <col align="right" />
26    <col align="right" />
27    <col />
28    <tr <?php echo $a->next(); ?>>
29        <th>-</th>
30        <th><?php echo _T('Slots'); ?></th>
31        <th><?php echo _T('Size'); ?></th>
32        <th><?php echo _T('Avail'); ?></th>
33        <th><?php echo _T(isset($free_graph_width) ? '% Free' : '% Used'); ?></th>
34        <th><?php echo _T('Clear'); ?></th>
35        <th><?php echo _T('Compiling'); ?></th>
36        <th><?php echo _T('Hits'); ?></th>
37        <th><?php echo _T('Hits/H'); ?></th>
38        <th><?php echo _T('Hits 24H'); ?></th>
39        <th><?php echo _T('Hits/S'); ?></th>
40        <th><?php echo _T('Misses'); ?></th>
41        <th><?php echo _T('Clogs'); ?></th>
42        <th><?php echo _T('OOMs'); ?></th>
43        <th><?php echo _T('Errors'); ?></th>
44        <th><?php echo _T('Protected'); ?></th>
45        <th><?php echo _T('Cached'); ?></th>
46        <th><?php echo _T('Deleted'); ?></th>
47        <th><?php echo _T('GC'); ?></th>
48    </tr>
49    <?php
50    $numkeys = explode(',', 'slots,size,avail,hits,misses,clogs,ooms,errors,cached,deleted');
51    $l_clear = _T('Clear');
52    $l_clear_confirm = _T('Sure to clear?');
53    foreach ($cacheinfos as $i => $ci) {
54        echo "
55        <tr ", $a->next(), ">";
56        $pvalue = (int) ($ci['avail'] / $ci['size'] * 100);
57        $pempty = 100 - $pvalue;
58        if (!isset($free_graph_width)) {
59            // swap
60            $tmp = $pvalue;
61            $pvalue = $pempty;
62            $pempty = $tmp;
63        }
64
65        $w = $graph_width;
66        $tdwidth = $w + 2;
67        if (empty($ci['istotal'])) {
68            $graph = freeblock_to_graph($ci['free_blocks'], $ci['size']);
69            $blocksgraph = "<div class=\"blocksgraph\" style=\"width: {$w}px\">{$graph}</div>";
70        }
71        else {
72            $blocksgraph = '';
73        }
74
75        $ci_slots = size($ci['slots']);
76        $ci_size  = size($ci['size']);
77        $ci_avail = size($ci['avail']);
78        $ci = number_formats($ci, $numkeys);
79
80        $hits_avg_h     = number_format(array_avg($ci['hits_by_hour']), 2);
81        $hits_avg_s     = number_format(array_avg($ci['hits_by_second']), 2);
82        $hits_graph_h   = hits_to_graph($ci['hits_by_hour']);
83        $hits_graph_h_w = count($ci['hits_by_hour']) * 2;
84
85        if (!empty($ci['istotal'])) {
86            $ci['compiling']    = '-';
87            $ci['can_readonly'] = '-';
88        }
89        else {
90            $ci['compiling']    = $ci['type'] == $type_php ? ($ci['compiling'] ? 'yes' : 'no') : '-';
91            $ci['can_readonly'] = $ci['can_readonly'] ? 'yes' : 'no';
92        }
93        echo <<<EOS
94        <th>{$ci['cache_name']}</th>
95        <td title="{$ci['slots']}">{$ci_slots}</td>
96        <td title="{$ci['size']}">{$ci_size}</td>
97        <td title="{$ci['avail']}">{$ci_avail}</td>
98        <td title="{$pvalue} %" width="{$tdwidth}"
99            ><div class="percent" style="width: {$w}px"
100                ><div style="width: {$pvalue}%" class="pvalue"></div
101                ><div style="width: {$pempty}%" class="pempty"></div
102            ></div
103        >{$blocksgraph}</td>
104        <td
105            ><form method="post"
106                ><div
107                    ><input type="hidden" name="type" value="{$ci['type']}"
108                    /><input type="hidden" name="cacheid" value="{$ci['cacheid']}"
109                    /><input type="submit" name="clearcache" value="{$l_clear}" class="submit" onclick="return confirm('{$l_clear_confirm}');"
110                /></div
111            ></form
112        ></td>
113        <td>{$ci['compiling']}</td>
114        <td>{$ci['hits']}</td>
115        <td>{$hits_avg_h}</td>
116        <td><div class="hitsgraph" style="width: {$hits_graph_h_w}px">{$hits_graph_h}</div></td>
117        <td>{$hits_avg_s}</td>
118        <td>{$ci['misses']}</td>
119        <td>{$ci['clogs']}</td>
120        <td>{$ci['ooms']}</td>
121        <td>{$ci['errors']}</td>
122        <td>{$ci['can_readonly']}</td>
123        <td>{$ci['cached']}</td>
124        <td>{$ci['deleted']}</td>
125        <td>{$ci['gc']}</td>
126EOS;
127
128            $b->reset();
129            ?>
130    </tr>
131    <?php } ?>
132</table>
133<div style="clear: both">&nbsp;</div>
134<?php
135
136if ($cachelist) {
137    $isphp = $cachelist['type'] == $type_php;
138    if (function_exists("ob_filter_path_nicer")) {
139        ob_start("ob_filter_path_nicer");
140    }
141    foreach (array('Cached' => $cachelist['cache_list'], 'Deleted' => $cachelist['deleted_list']) as $listname => $entries) {
142        $a->reset();
143        echo "
144        <caption>", _T("{$cachelist['type_name']} $listname"), "</caption>";
145        ?>
146
147    <form action="" method="post">
148    <table cellspacing="0" cellpadding="4" class="cycles entries" width="100%">
149        <col />
150        <col />
151        <col />
152        <col align="right" />
153        <col align="right" />
154        <col align="right" />
155        <col align="right" />
156        <col align="right" />
157        <col align="right" />
158        <?php
159        if ($listname == 'Deleted') {
160            echo '<col align="right" />';
161        }
162        if ($isphp) {
163            echo '<col align="right" />';
164            echo '<col align="right" />';
165            echo '<col align="right" />';
166            echo '<col align="right" />';
167        }
168
169        echo "
170        <tr ", $a->next(), ">";
171        ?>
172
173            <?php if (!$isphp) { ?>
174            <th width="20">R</th>
175            <?php } ?>
176            <th><a href="javascript:" onclick="resort(this); return false"><?php echo _T('Cache'); ?></a></th>
177            <th><a href="javascript:" onclick="resort(this); return false"><?php echo _T('entry'); ?></a></th>
178            <th><a href="javascript:" onclick="resort(this); return false"><?php echo _T('Hits'); ?></a></th>
179            <th><a href="javascript:" onclick="resort(this); return false"><?php echo _T('Refcount'); ?></a></th>
180            <th><a href="javascript:" onclick="resort(this); return false"><?php echo _T('Size'); ?></a></th>
181            <?php if ($isphp) { ?>
182            <th><a href="javascript:" onclick="resort(this); return false"><?php echo _T('PhpShared'); ?></a></th>
183            <th><a href="javascript:" onclick="resort(this); return false"><?php echo _T('SrcSize'); ?></a></th>
184            <th><a href="javascript:" onclick="resort(this); return false"><?php echo _T('Modify'); ?></a></th>
185            <?php if ($haveinode) { ?>
186            <th><a href="javascript:" onclick="resort(this); return false"><?php echo _T('device'); ?></a></th>
187            <th><a href="javascript:" onclick="resort(this); return false"><?php echo _T('inode'); ?></a></th>
188            <?php } ?>
189            <?php } ?>
190            <th><a href="javascript:" onclick="resort(this); return false"><?php echo _T('hash'); ?></a></th>
191            <th><a href="javascript:" onclick="resort(this); return false"><?php echo _T('Access'); ?></a></th>
192            <th><a href="javascript:" onclick="resort(this); return false"><?php echo _T('Create'); ?></a></th>
193            <?php if ($listname == 'Deleted') { ?>
194            <th><a href="javascript:" onclick="resort(this); return false"><?php echo _T('Delete'); ?></a></th>
195            <?php } ?>
196        </tr>
197        <?php
198        foreach ($entries as $i => $entry) {
199            echo "
200            <tr ", $a->next(), ">";
201            $name     = htmlspecialchars($entry['name']);
202            $hits     = number_format($entry['hits']);
203            $refcount = number_format($entry['refcount']);
204            $size     = size($entry['size']);
205            if ($isphp) {
206                $sourcesize  = size($entry['sourcesize']);
207                $phprefcount = number_format($entry['phprefcount']);
208            }
209
210            if ($isphp) {
211                $mtime = age($entry['mtime']);
212            }
213            $ctime = age($entry['ctime']);
214            $atime = age($entry['atime']);
215            if ($listname == 'Deleted') {
216                $dtime = age($entry['dtime']);
217            }
218
219            if (!$isphp) {
220                echo <<<ENTRY
221                    <td><input type="checkbox" name="remove[]" value="{$name}"/></td>
222ENTRY;
223                $uname = urlencode($entry['name']);
224                $namelink = "<a href=\"edit.php?name=$uname\">$name</a>";
225            }
226            else {
227                $namelink = $name;
228            }
229
230            echo <<<ENTRY
231            <td>{$entry['cache_name']} {$i}</td>
232            <td>{$namelink}</td>
233            <td int="{$entry['hits']}">{$entry['hits']}</td>
234            <td int="{$entry['refcount']}">{$entry['refcount']}</td>
235            <td int="{$entry['size']}">{$size}</td>
236ENTRY;
237            if ($isphp) {
238                echo <<<ENTRY
239                <td int="{$entry['phprefcount']}">{$phprefcount}</td>
240                <td int="{$entry['sourcesize']}">{$sourcesize}</td>
241                <td int="{$entry['mtime']}">{$mtime}</td>
242ENTRY;
243                if (isset($entry['inode'])) {
244                    echo <<<ENTRY
245                    <td int="{$entry['device']}">{$entry['device']}</td>
246                    <td int="{$entry['inode']}">{$entry['inode']}</td>
247ENTRY;
248                }
249            }
250            echo <<<ENTRY
251            <td int="{$entry['hvalue']}">{$entry['hvalue']}</td>
252            <td int="{$entry['atime']}">{$atime}</td>
253            <td int="{$entry['ctime']}">{$ctime}</td>
254ENTRY;
255            if ($listname == 'Deleted') {
256            echo <<<ENTRY
257                <td int="{$entry['dtime']}">{$dtime}</td>
258ENTRY;
259            }
260
261            echo "
262        </tr>
263            ";
264        }
265        ?>
266
267    </table>
268    <input type="submit" value="<?php echo _T("Remove Selected"); ?>">
269    </form>
270<?php
271    }
272    if (function_exists("ob_filter_path_nicer")) {
273        ob_end_flush();
274    }
275}
276if ($moduleinfo) {
277    $t_moduleinfo = _T("Module Info");
278    echo <<<HTML
279<h2>$t_moduleinfo</h2>
280<div class="moduleinfo">$moduleinfo</div>
281HTML;
282}
283?>
284<?php include("footer.tpl.php"); ?>
Note: See TracBrowser for help on using the repository browser.