|
1 |
| -<?php |
2 |
| - |
| 1 | +<?php /* vim: set colorcolumn= expandtab shiftwidth=2 softtabstop=2 tabstop=4 smarttab: */ |
3 | 2 | namespace BNETDocs\Templates\Server;
|
4 |
| - |
5 | 3 | use \BNETDocs\Libraries\Server;
|
6 | 4 | use \CarlBennett\MVC\Libraries\Common;
|
7 | 5 | use \CarlBennett\MVC\Libraries\Pair;
|
| 6 | +$title = 'Server Not Found'; |
| 7 | +$description = 'The requested server does not exist or could not be found.'; |
| 8 | +$server = $this->getContext()->server; |
| 9 | +$server_id = $this->getContext()->server_id; |
| 10 | +$server_type = $this->getContext()->server_type; |
| 11 | +if (!$server) |
| 12 | +{ |
| 13 | + $server_user = null; |
| 14 | + $url = Common::relativeUrlToAbsolute(sprintf('/server/', rawurlencode($server_id))); |
| 15 | +} |
| 16 | +else |
| 17 | +{ |
| 18 | + $server_address = filter_var(sprintf('%s:%s', $server->getAddress(), $server->getPort()), FILTER_SANITIZE_FULL_SPECIAL_CHARS); |
| 19 | + $server_name = filter_var($server->getName(), FILTER_SANITIZE_FULL_SPECIAL_CHARS); |
8 | 20 |
|
9 |
| -$object_id = $this->getContext()->server_id; |
10 |
| -$object = $this->getContext()->server; |
11 |
| -$object_status = null; |
12 |
| -$object_type = $this->getContext()->server_type; |
13 |
| - |
14 |
| -$object_user = ($object ? $object->getUser() : null); |
15 |
| -$object_user_avatar = ($object_user ? $object_user->getAvatarURI(22) : null); |
16 |
| -$object_user_url = ($object_user ? $object_user->getURI() : null); |
17 |
| - |
18 |
| -$title = ($object ? $object->getName() : "Server Not Found"); |
19 |
| -$description = ($object ? "The BNETDocs Status Page for " . $object->getName() |
20 |
| - : "The requested server does not exist or could not be found."); |
21 |
| - |
22 |
| -$this->opengraph->attach(new Pair("type", "article")); |
23 |
| - |
24 |
| -$url = Common::relativeUrlToAbsolute("/server/" . urlencode($object_id)); |
25 |
| - |
26 |
| -if ($object) { |
| 21 | + $title = $server_name; |
| 22 | + $description = sprintf('Server Status for %s', $server_name); |
| 23 | + $url = $server->getURI(); |
| 24 | + $url_json = sprintf('%s.json', $url); |
| 25 | + $url_txt = sprintf('%s.txt', $url); |
27 | 26 |
|
28 |
| - $url = $object->getURI(); |
| 27 | + $server_type = $server->getType(); |
| 28 | + $server_type_label = filter_var($server_type->getLabel(), FILTER_SANITIZE_FULL_SPECIAL_CHARS); |
29 | 29 |
|
30 |
| - $object_status_bitmask = $object->getStatusBitmask(); |
31 |
| - if ($object_status_bitmask & Server::STATUS_ONLINE) { |
32 |
| - $object_status = "<span class=\"online\">Online</span>"; |
33 |
| - } else { |
34 |
| - $object_status = "<span class=\"offline\">Offline</span>"; |
| 30 | + $server_user = $server->getUser(); |
| 31 | + if (!$server_user) |
| 32 | + { |
| 33 | + $server_user_string = 'Anonymous'; |
35 | 34 | }
|
36 |
| - if ($object_status_bitmask & Server::STATUS_DISABLED) { |
37 |
| - $object_status .= ", <span class=\"disabled\">Disabled</span>"; |
| 35 | + else |
| 36 | + { |
| 37 | + $server_user_avatar = $server_user->getAvatarURI(22); |
| 38 | + $server_user_name = filter_var($server_user->getName(), FILTER_SANITIZE_FULL_SPECIAL_CHARS); |
| 39 | + $server_user_url = $server_user->getURI(); |
| 40 | + $server_user_string = sprintf('<a href="%s"><img class="mr-2 rounded" src="%s"/>%s</a>', $server_user_url, $server_user_avatar, $server_user_name); |
38 | 41 | }
|
39 | 42 |
|
| 43 | + $server_status_bitmask = $server->getStatusBitmask(); |
| 44 | + $server_status = ( |
| 45 | + ($server_status_bitmask & Server::STATUS_ONLINE) ? |
| 46 | + '<span class="text-success">Online</span>' : |
| 47 | + '<span class="text-danger">Offline</span>' |
| 48 | + ) . ( |
| 49 | + ($server_status_bitmask & Server::STATUS_DISABLED) ? |
| 50 | + ', <span class="text-danger">Disabled</span>' : '' |
| 51 | + ); |
40 | 52 | }
|
41 |
| - |
42 |
| -$this->opengraph->attach(new Pair("url", $url)); |
43 |
| - |
44 |
| -require("./header.inc.phtml"); |
45 |
| -?> |
46 |
| - <article> |
47 |
| -<?php if ($object) { ?> |
48 |
| - <a href="https://twitter.com/share?text=<?php echo urlencode($title); ?>&url=<?php echo urlencode($url); ?>" rel="external" data-popup="1"><img class="header-button float-right" src="<?php echo Common::relativeUrlToAbsolute("/a/social-twitter-24px.png"); ?>"/></a> |
49 |
| - <a href="https://facebook.com/sharer/sharer.php?u=<?php echo urlencode($url); ?>" rel="external" data-popup="1"><img class="header-button float-right" src="<?php echo Common::relativeUrlToAbsolute("/a/social-facebook-24px.png"); ?>"/></a> |
50 |
| - <header>Server Status</header> |
51 |
| - <section> |
52 |
| - <table class="serverview"><tbody> |
53 |
| - <tr><th>Label</th><td><?php echo filter_var($object->getLabel(), FILTER_SANITIZE_FULL_SPECIAL_CHARS); ?></td></tr> |
54 |
| - <tr><th>Address</th><td class="address" onclick="bnetdocs.fSelectText(this);"><?php echo filter_var($object->getAddress() . ":" . $object->getPort(), FILTER_SANITIZE_FULL_SPECIAL_CHARS); ?></td></tr> |
55 |
| - <tr><th>Owner</th><td><?php if ($object_user) { ?><a href="<?php echo $object_user_url; ?>"><img class="avatar" src="<?php echo $object_user_avatar; ?>"/> <?php echo filter_var($object_user->getName(), FILTER_SANITIZE_FULL_SPECIAL_CHARS); ?></a><?php } else { echo "Anonymous"; } ?></td></tr> |
56 |
| - <tr><th>Type</th><td><?php echo filter_var($object_type->getLabel(), FILTER_SANITIZE_FULL_SPECIAL_CHARS); ?></td></tr> |
57 |
| - <tr><th>Current Status</th><td><?php echo $object_status; ?></td></tr> |
58 |
| - </tbody></table> |
59 |
| - <hr/> |
60 |
| - <p style="font-size:smaller;text-align:center;"><a href="<?php echo Common::relativeUrlToAbsolute( $url . '.json' ); ?>">JSON</a> | <a href="<?php echo Common::relativeUrlToAbsolute( $url . '.txt' ); ?>">TXT</a></p> |
61 |
| - </section> |
62 |
| -<?php } else { ?> |
63 |
| - <header class="red"><?php echo filter_var($title, FILTER_SANITIZE_FULL_SPECIAL_CHARS); ?></header> |
64 |
| - <section class="red"><?php echo filter_var($description, FILTER_SANITIZE_FULL_SPECIAL_CHARS); ?></section> |
65 |
| -<?php } ?> |
66 |
| - </article> |
67 |
| -<?php require("./footer.inc.phtml"); ?> |
| 53 | +$this->opengraph->attach(new Pair('type', 'article')); |
| 54 | +$this->opengraph->attach(new Pair('url', $url)); |
| 55 | +require('./header.inc.phtml'); ?> |
| 56 | +<div class="container"> |
| 57 | +<? if (!$server) { ?> |
| 58 | + <div class="alert alert-danger"> |
| 59 | + <h1><?=$title?></h1> |
| 60 | + <p class="mb-0"><?=$description?></p> |
| 61 | + </div> |
| 62 | +<? } else { ?> |
| 63 | + <span class="float-right"> |
| 64 | + <a class="btn btn-sm btn-primary" href="<?=$url_json?>">JSON</a> |
| 65 | + <a class="btn btn-sm btn-primary" href="<?=$url_txt?>">TXT</a> |
| 66 | + <a class="btn btn-sm btn-primary" href="https://twitter.com/share?text=<?=urlencode($title)?>&url=<?=urlencode($url)?>" rel="external" data-popup="1"><img src="<?=Common::relativeUrlToAbsolute('/a/social-twitter-24px.png')?>"/></a> |
| 67 | + <a class="btn btn-sm btn-primary" href="https://facebook.com/sharer/sharer.php?u=<?=urlencode($url)?>" rel="external" data-popup="1"><img src="<?=Common::relativeUrlToAbsolute('/a/social-facebook-24px.png')?>"/></a> |
| 68 | + </span> |
| 69 | + <h1><?=$title?></h1> |
| 70 | + <table class="table table-hover table-sm table-striped"><thead></thead><tbody> |
| 71 | + <tr><th class="text-right">Label</th><td><?=$server_name?></td></tr> |
| 72 | + <tr><th class="text-right">Address</th><td onclick="bnetdocs.fSelectText(this);"><code><?=$server_address?></td></tr> |
| 73 | + <tr><th class="text-right">Owner</th><td><?=$server_user_string?></td></tr> |
| 74 | + <tr><th class="text-right">Type</th><td><?=$server_type_label?></td></tr> |
| 75 | + <tr><th class="text-right">Current Status</th><td><?=$server_status?></td></tr> |
| 76 | + </tbody></table> |
| 77 | +<? } ?> |
| 78 | +</div> |
| 79 | +<? require('./footer.inc.phtml'); ?> |
0 commit comments