source: trunk/htdocs/cacher/cacher.tpl.php @ 1071

Last change on this file since 1071 was 1071, checked in by moo, 2 years ago

htdocs/cacher: improve format of generated html output

  • Property svn:eol-style set to native
File size: 8.8 KB
RevLine 
[1053]1<?php include("../common/header.tpl.php"); ?>
2<div class="switcher"><?php echo switcher("type", $listTypes); ?></div>
[530]3<div id="help">
[1038]4    <a href="help.php"><?php echo _("Help") ?> &raquo;</a>
[530]5</div>
[34]6<?php
7$a = new Cycle('class="col1"', 'class="col2"');
8$b = new Cycle('class="col1"', 'class="col2"');
9?>
[1038]10<table cellspacing="0" cellpadding="4" class="cycles caches">
11    <caption><?php echo _('Caches'); ?></caption>
[34]12    <tr <?php echo $a->next(); ?>>
[1038]13    <?php echo
14        th(N_("cache.cache"))
15        , th(N_("cache.size"))
16        , th(N_("cache.avail"))
17        , th(N_("cache.used"))
18        , th(N_("cache.blocksgraph"))
19        , th(N_("cache.operations"))
[1063]20        , th(N_("cache.status"))
[1038]21        , th(N_("cache.hits"))
22        , th(N_("cache.hits_graph"))
23        , th(N_("cache.hits_avg_h"))
24        , th(N_("cache.hits_avg_s"))
25        , th(N_("cache.updates"))
[1063]26        , th(N_("cache.skips"))
[1038]27        , th(N_("cache.ooms"))
28        , th(N_("cache.errors"))
29        , th(N_("cache.readonly_protected"))
30        , th(N_("cache.cached"))
31        , th(N_("cache.deleted"))
32        , th(N_("cache.gc_timer"))
33        ;
34    ?>
[34]35    </tr>
36    <?php
[1063]37    $numkeys = explode(',', 'slots,size,avail,hits,updates,skips,ooms,errors,cached,deleted');
[1038]38    $l_clear = _('Clear');
[1064]39    $l_disabled = _('Disabled');
40    $l_disable = _('Disable');
41    $l_enable = _('Enable');
42    $l_compiling = _('Compiling');
43    $l_normal = _('Normal');
[1066]44    $l_confirm = _('Sure?');
[34]45    foreach ($cacheinfos as $i => $ci) {
46        echo "
[352]47        <tr ", $a->next(), ">";
[526]48        $pvalue = (int) ($ci['avail'] / $ci['size'] * 100);
49        $pempty = 100 - $pvalue;
[902]50        if ($config['percent_graph_type'] == 'used') {
[526]51            // swap
52            $tmp = $pvalue;
53            $pvalue = $pempty;
54            $pempty = $tmp;
55        }
[108]56
[1068]57        $w = $config['percent_graph_width'] + 2;
[521]58        if (empty($ci['istotal'])) {
59            $graph = freeblock_to_graph($ci['free_blocks'], $ci['size']);
[526]60            $blocksgraph = "<div class=\"blocksgraph\" style=\"width: {$w}px\">{$graph}</div>";
[521]61        }
62        else {
[526]63            $blocksgraph = '';
[521]64        }
[517]65
[188]66        $ci_slots = size($ci['slots']);
67        $ci_size  = size($ci['size']);
68        $ci_avail = size($ci['avail']);
[34]69        $ci = number_formats($ci, $numkeys);
[522]70
71        $hits_avg_h     = number_format(array_avg($ci['hits_by_hour']), 2);
72        $hits_avg_s     = number_format(array_avg($ci['hits_by_second']), 2);
[1058]73        $hits_graph_h   = get_cache_hits_graph($ci, 'hits_by_hour');
[522]74        $hits_graph_h_w = count($ci['hits_by_hour']) * 2;
75
[521]76        if (!empty($ci['istotal'])) {
[1063]77            $ci['status']       = '-';
[521]78            $ci['can_readonly'] = '-';
79        }
80        else {
[1064]81            if ($ci['disabled']) {
82                $ci['status'] = $l_disabled
83                    . sprintf("(%s)", age($ci['disabled']));
[1063]84            }
[1064]85            else if ($ci['type'] == $type_php) {
86                $ci['status'] = $ci['compiling']
87                    ? $l_compiling . sprintf("(%s)", age($ci['compiling']))
88                    : $l_normal;
89            }
[1063]90            else {
91                $ci['status'] = '-';
92            }
[521]93            $ci['can_readonly'] = $ci['can_readonly'] ? 'yes' : 'no';
94        }
[1064]95        $enabledisable = $ci['disabled'] ? 'enable' : 'disable';
96        $l_enabledisable = $ci['disabled'] ? $l_enable : $l_disable;
[34]97        echo <<<EOS
98        <th>{$ci['cache_name']}</th>
[1068]99        <td align="right" title="{$ci['slots']}">{$ci_slots}</td>
100        <td align="right" title="{$ci['size']}">{$ci_size}</td>
101        <td align="right" title="{$ci['avail']}">{$ci_avail}</td>
[530]102        <td title="{$pvalue} %"
[517]103            ><div class="percent" style="width: {$w}px"
[526]104                ><div style="width: {$pvalue}%" class="pvalue"></div
105                ><div style="width: {$pempty}%" class="pempty"></div
[517]106            ></div
[526]107        >{$blocksgraph}</td>
[518]108        <td
[530]109            ><form method="post" action=""
[518]110                ><div
111                    ><input type="hidden" name="type" value="{$ci['type']}"
112                    /><input type="hidden" name="cacheid" value="{$ci['cacheid']}"
[1066]113                    /><input type="submit" name="clearcache" value="{$l_clear}" class="submit" onclick="return confirm('{$l_confirm}');"
[1064]114                    /><input type="submit" name="{$enabledisable}" value="{$l_enabledisable}" class="submit"
[518]115                /></div
116            ></form
117        ></td>
[1063]118        <td>{$ci['status']}</td>
[1068]119        <td align="right">{$ci['hits']}</td>
[1038]120        <td><div class="hitsgraph" style="width: {$hits_graph_h_w}px">{$hits_graph_h}</div></td>
[1068]121        <td align="right">{$hits_avg_h}</td>
122        <td align="right">{$hits_avg_s}</td>
123        <td align="right">{$ci['updates']}</td>
124        <td align="right">{$ci['skips']}</td>
125        <td align="right">{$ci['ooms']}</td>
126        <td align="right">{$ci['errors']}</td>
[34]127        <td>{$ci['can_readonly']}</td>
[1068]128        <td align="right">{$ci['cached']}</td>
129        <td align="right">{$ci['deleted']}</td>
130        <td align="right">{$ci['gc']}</td>
[34]131EOS;
132
133            $b->reset();
134            ?>
135    </tr>
136    <?php } ?>
137</table>
[527]138<div class="blockarea legends">
[1038]139    <div class="legendtitle"><?php echo _('Legends:'); ?></div>
[527]140    <div class="legend pvalue">&nbsp;&nbsp;</div>
[1038]141    <div class="legendtitle"><?php echo _($config['percent_graph_type'] == 'free' ? '% Free' : '% Used'); ?></div>
[527]142    <div class="legend" style="background: rgb(0,0,255)">&nbsp;&nbsp;</div>
[1038]143    <div class="legendtitle"><?php echo _($config['percent_graph_type'] == 'free' ? 'Free Blocks' : 'Used Blocks'); ?></div>
[527]144    <div class="legend" style="background: rgb(255,0,0)">&nbsp;&nbsp;</div>
[1038]145    <div class="legendtitle"><?php echo _('Hits'); ?></div>
[527]146</div>
[34]147<?php
148
149if ($cachelist) {
150    $isphp = $cachelist['type'] == $type_php;
[902]151    ob_start($config['path_nicer']);
[34]152    foreach (array('Cached' => $cachelist['cache_list'], 'Deleted' => $cachelist['deleted_list']) as $listname => $entries) {
153        $a->reset();
154        ?>
155
[1071]156<form action="" method="post">
[1068]157    <table cellspacing="0" cellpadding="4" class="cycles entries">
[1038]158        <caption><?php echo _("{$cachelist['type_name']} $listname"); ?></caption>
[1071]159<?php
160        $class = $a->next();
161        echo <<<TR
162        <tr {$class}>
[34]163
[1071]164TR;
[1038]165            if ($isphp) {
166                echo
167                    th("entry.id")
168                    ;
169            }
170            else {
171                echo
[1068]172                    th("entry.remove")
[1038]173                    ;
174            }
175
176            echo
177                th(N_("entry.name"))
178                , th(N_("entry.hits"))
179                , th(N_("entry.size"))
180                ;
181
182            if ($isphp) {
183                echo
184                    th(N_("entry.refcount"))
185                    , th(N_("entry.phprefcount"))
186                    , th(N_("entry.class_cnt"))
187                    , th(N_("entry.function_cnt"))
188                    , th(N_("entry.file_size"))
189                    , th(N_("entry.file_mtime"))
190                    ;
191                if ($haveinode) {
192                    echo
193                        th(N_("entry.file_device"))
194                        , th(N_("entry.file_inode"))
195                        ;
196                }
197            }
198            echo
199                th(N_("entry.hash"))
200                , th(N_("entry.atime"))
201                , th(N_("entry.ctime"))
202                ;
203
204            if ($listname == 'Deleted') {
205                echo
206                    th(N_("entry.delete"))
207                    ;
208            }
209            ?>
[34]210        </tr>
[1071]211<?php
[34]212        foreach ($entries as $i => $entry) {
[1071]213            $class = $a->next();
214            echo <<<TR
215        <tr $class>
216
217TR;
[34]218            $name     = htmlspecialchars($entry['name']);
219            $hits     = number_format($entry['hits']);
220            $size     = size($entry['size']);
221            if ($isphp) {
[1053]222                $class_cnt    = number_format($entry['class_cnt']);
223                $function_cnt = number_format($entry['function_cnt']);
224                $phprefcount  = number_format($entry['phprefcount']);
225                $file_size    = size($entry['file_size']);
[34]226            }
227
228            if ($isphp) {
[868]229                $file_mtime = age($entry['file_mtime']);
[34]230            }
231            $ctime = age($entry['ctime']);
232            $atime = age($entry['atime']);
[146]233            if ($listname == 'Deleted') {
234                $dtime = age($entry['dtime']);
235            }
[34]236
[1053]237            if ($isphp) {
238                $namelink = $name;
[371]239                echo <<<ENTRY
[1071]240            <td>{$entry['cache_name']} {$i}</td>
241
[371]242ENTRY;
[1053]243            }
244            else {
245                echo <<<ENTRY
[1071]246            <td><label><input type="checkbox" name="remove[]" value="{$name}"/>{$entry['cache_name']} {$i}</label></td>
247
[1053]248ENTRY;
[371]249                $uname = urlencode($entry['name']);
250                $namelink = "<a href=\"edit.php?name=$uname\">$name</a>";
251            }
252
[34]253            echo <<<ENTRY
[371]254            <td>{$namelink}</td>
[868]255            <td align="right" int="{$entry['hits']}">{$entry['hits']}</td>
256            <td align="right" int="{$entry['size']}">{$size}</td>
[1071]257
[34]258ENTRY;
259            if ($isphp) {
[931]260                $refcount = number_format($entry['refcount']);
[34]261                echo <<<ENTRY
[1071]262            <td align="right" int="{$entry['refcount']}">{$entry['refcount']}</td>
263            <td align="right" int="{$entry['phprefcount']}">{$phprefcount}</td>
264            <td align="right" int="{$entry['class_cnt']}">{$class_cnt}</td>
265            <td align="right" int="{$entry['function_cnt']}">{$function_cnt}</td>
266            <td align="right" int="{$entry['file_size']}">{$file_size}</td>
267            <td align="right" int="{$entry['file_mtime']}">{$file_mtime}</td>
268
[34]269ENTRY;
[851]270                if (isset($entry['file_inode'])) {
[84]271                    echo <<<ENTRY
[1071]272            <td align="right" int="{$entry['file_device']}">{$entry['file_device']}</td>
273            <td align="right" int="{$entry['file_inode']}">{$entry['file_inode']}</td>
274
[84]275ENTRY;
276                }
[34]277            }
278            echo <<<ENTRY
[868]279            <td align="right" int="{$entry['hvalue']}">{$entry['hvalue']}</td>
280            <td align="right" int="{$entry['atime']}">{$atime}</td>
281            <td align="right" int="{$entry['ctime']}">{$ctime}</td>
[1071]282
[34]283ENTRY;
284            if ($listname == 'Deleted') {
[1071]285                echo <<<ENTRY
286            <td align="right" int="{$entry['dtime']}">{$dtime}</td>
287
[34]288ENTRY;
289            }
290
[1071]291            echo <<<TR
[34]292        </tr>
[1071]293
294TR;
[34]295        }
296        ?>
297    </table>
[1071]298<?php if (!$isphp) { ?>
[1038]299    <input type="submit" value="<?php echo _("Remove Selected"); ?>">
[1071]300<?php } ?>
301</form>
[34]302<?php
303    }
[902]304    ob_end_flush();
[34]305}
[1068]306if ($moduleinfo) {
307    if (ini_get("xcache.test")) {
[1066]308?>
[1071]309<form method="post" action="">
310    <div>
311        <input type="submit" name="coredump" value="Test coredump" class="submit" onclick="return confirm('<?php echo $l_confirm ?>');" />
312    </div>
313</form>
[1066]314<?php
[1068]315    }
[1038]316    $t_moduleinfo = _("Module Info");
[147]317    echo <<<HTML
318<h2>$t_moduleinfo</h2>
[1041]319<div class="phpinfo">$moduleinfo</div>
[147]320HTML;
321}
[34]322?>
[1053]323<?php include("../common/footer.tpl.php"); ?>
Note: See TracBrowser for help on using the repository browser.