Guest User

Untitled

a guest
Oct 10th, 2017
602
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 93.50 KB | None | 0 0
  1. <?php
  2.  
  3. /********************************************************************************************************************************
  4. *
  5. * Servers board (/inc/plugins/serversboard.php)
  6. * Author: Krzysztof "Supryk" Supryczyński
  7. * Copyright: © 2013 - 2016 @ Krzysztof "Supryk" Supryczyński @ All rights reserved
  8. *
  9. * Website:
  10. * Description: Show information about games online servers on index page and details about servers on subpage.
  11. *
  12. ********************************************************************************************************************************/
  13. /********************************************************************************************************************************
  14. *
  15. * This file is part of "Servers board" plugin for MyBB.
  16. * Copyright © 2013 - 2016 @ Krzysztof "Supryk" Supryczyński @ All rights reserved
  17. *
  18. * This program is free software: you can redistribute it and/or modify
  19. * it under the terms of the GNU Lesser General Public License as published by
  20. * the Free Software Foundation, either version 3 of the License, or
  21. * (at your option) any later version.
  22. *
  23. * This program is distributed in the hope that it will be useful,
  24. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  25. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  26. * GNU Lesser General Public License for more details.
  27. *
  28. * You should have received a copy of the GNU Lesser General Public License
  29. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  30. *
  31. ********************************************************************************************************************************/
  32.  
  33. if(!defined("IN_MYBB"))
  34. {
  35. die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
  36. }
  37.  
  38. define("SERVERSBOARD_CORE_PATH", MYBB_ROOT."inc/serversboard/");
  39. define("SERVERSBOARD_IMAGES_PATH", "./images/serversboard/");
  40. define("PLUGIN_WEBSITE", "");
  41. define("PLUGIN_AUTHOR", "Krzysztof \"Supryk\" Supryczyński");
  42. define("PLUGIN_AUTHORNAME", "Supryk");
  43. define("PLUGIN_AUTHORSITE", "");
  44. define("PLUGIN_VERSION", "3.4");
  45. define("COMPATIBILITY", "18*");
  46. define("CODENAME", "servers_board");
  47.  
  48. $plugins->add_hook("admin_config_settings_manage", "serversboard_admin_lang_load");
  49. $plugins->add_hook("admin_config_settings_change", "serversboard_admin_lang_load");
  50. $plugins->add_hook("admin_config_settings_start", "serversboard_admin_lang_load");
  51. $plugins->add_hook("admin_style_templates_set", "serversboard_admin_lang_load");
  52. $plugins->add_hook("admin_config_menu", "serversboard_admin_config_menu");
  53. $plugins->add_hook("admin_config_action_handler", "serversboard_admin_config_action_handler");
  54. $plugins->add_hook("admin_home_menu_quick_access", "serversboard_admin_home_menu_quick_access");
  55. $plugins->add_hook("admin_config_permissions", "serversboard_admin_config_permissions");
  56. $plugins->add_hook("index_start", "serversboard");
  57. $plugins->add_hook("portal_start", "serversboard");
  58. $plugins->add_hook("serversboard_start", "serversboard_subpage");
  59. $plugins->add_hook("serversboard_start", "serversboard");
  60. $plugins->add_hook("build_friendly_wol_location_end", "serversboard_build_friendly_wol_location_end");
  61. $plugins->add_hook("fetch_wol_activity_end", "serversboard_fetch_wol_activity_end");
  62. $plugins->add_hook("global_start", "serversboard_global_start");
  63. $plugins->add_hook("pre_output_page", "serversboard_thanks");
  64.  
  65. function serversboard_info()
  66. {
  67. global $lang;
  68. $lang->load("config_serversboard");
  69.  
  70. return array(
  71. "name" => $lang->serversboard,
  72. "description" => $lang->serversboard_desc,
  73. "website" => PLUGIN_WEBSITE,
  74. "author" => PLUGIN_AUTHOR,
  75. "authorsite" => PLUGIN_AUTHORSITE,
  76. "version" => PLUGIN_VERSION,
  77. "compatibility" => COMPATIBILITY,
  78. "codename" => CODENAME,
  79. );
  80. }
  81.  
  82. function serversboard_is_installed()
  83. {
  84. global $db;
  85.  
  86. return $db->num_rows($db->simple_select("settinggroups", "*", "name=\"serversboard\""));
  87. }
  88.  
  89. function serversboard_install()
  90. {
  91. global $db, $lang, $mybb;
  92. $lang->load("config_serversboard");
  93.  
  94. if(!file_exists(MYBB_ROOT."serversboard.php"))
  95. {
  96. flash_message($lang->serversboard_upload_all_files, 'error');
  97. admin_redirect("index.php?module=config-plugins");
  98. }
  99.  
  100. if(!file_exists(SERVERSBOARD_CORE_PATH."gameq.php"))
  101. {
  102. flash_message($lang->serversboard_upload_all_files, 'error');
  103. admin_redirect("index.php?module=config-plugins");
  104. }
  105.  
  106. if(!$db->table_exists("serversboard"))
  107. {
  108. $db->write_query("CREATE TABLE ".TABLE_PREFIX."serversboard (
  109. `sid` int(10) unsigned NOT NULL AUTO_INCREMENT,
  110. `ip` varchar(35) NOT NULL DEFAULT '0',
  111. `arma2qport` varchar(30) NOT NULL DEFAULT '',
  112. `arma3qport` varchar(30) NOT NULL DEFAULT '',
  113. `bf3qport` varchar(30) NOT NULL DEFAULT '',
  114. `bf4qport` varchar(30) NOT NULL DEFAULT '',
  115. `dayzqport` varchar(30) NOT NULL DEFAULT '',
  116. `dayzmodqport` varchar(30) NOT NULL DEFAULT '',
  117. `minecraftqport` varchar(30) NOT NULL DEFAULT '',
  118. `mtaqport` varchar(30) NOT NULL DEFAULT '',
  119. `mumbleqport` varchar(30) NOT NULL DEFAULT '',
  120. `rustqport` varchar(30) NOT NULL DEFAULT '',
  121. `terrariaqport` varchar(30) NOT NULL DEFAULT '',
  122. `ts3qport` varchar(30) NOT NULL DEFAULT '10011',
  123. `type` varchar(20) NOT NULL DEFAULT '0',
  124. `offlinehostname` varchar(100) NOT NULL DEFAULT '',
  125. `cuthostname` varchar(3) NOT NULL DEFAULT '',
  126. `disporder` int(10) NOT NULL DEFAULT '0',
  127. `field` int(1) NOT NULL default '0',
  128. `field_link` varchar(100) NOT NULL DEFAULT '',
  129. `field_icon` varchar(100) NOT NULL DEFAULT '',
  130. `visible` int(1) NOT NULL default '1',
  131. `new` int(1) NOT NULL default '0',
  132. `new_color` varchar(20) NOT NULL DEFAULT '',
  133. `new_text` varchar(20) NOT NULL DEFAULT '',
  134. `forumid` varchar(20) NOT NULL DEFAULT '',
  135. `buddylist` TEXT NOT NULL DEFAULT '',
  136. `cache` LONGTEXT NOT NULL DEFAULT '',
  137. `lastupdate` bigint(30) NOT NULL DEFAULT '0',
  138. `recordplayers` int(10) NOT NULL DEFAULT '0',
  139. `owner` varchar(100) NOT NULL DEFAULT '',
  140. `administrators` varchar(100) NOT NULL DEFAULT '',
  141. PRIMARY KEY (`sid`)
  142. ) ENGINE = MYISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  143. ");
  144. // ) ENGINE=MyISAM ".$db->build_create_table_collation().";");
  145. }
  146.  
  147. $max_disporder = $db->fetch_field($db->simple_select("settinggroups", "MAX(disporder) AS max_disporder"), "max_disporder");
  148.  
  149. $settinggroup = array(
  150. // "gid" => "",
  151. "name" => "serversboard",
  152. "title" => $db->escape_string($lang->setting_group_serversboard),
  153. "description" => $db->escape_string($lang->setting_group_serversboard_desc),
  154. "disporder" => $max_disporder + 1,
  155. "isdefault" => "0",
  156. );
  157.  
  158. $gid = $db->insert_query("settinggroups", $settinggroup);
  159.  
  160. $settings = array();
  161.  
  162. $settings[] = array(
  163. // "sid" => "",
  164. "name" => "serversboard_onoff",
  165. "title" => $db->escape_string($lang->setting_serversboard_onoff),
  166. "description" => $db->escape_string($lang->setting_serversboard_onoff_desc),
  167. "optionscode" => "onoff",
  168. "value" => "1",
  169. "disporder" => "1",
  170. "gid" => $gid,
  171. "isdefault" => "0",
  172. );
  173.  
  174. $settings[] = array(
  175. // "sid" => "",
  176. "name" => "serversboard_index_onoff",
  177. "title" => $db->escape_string($lang->setting_serversboard_index_onoff),
  178. "description" => $db->escape_string($lang->setting_serversboard_index_onoff_desc),
  179. "optionscode" => "onoff",
  180. "value" => "1",
  181. "disporder" => "2",
  182. "gid" => $gid,
  183. "isdefault" => "0",
  184. );
  185.  
  186. $settings[] = array(
  187. // "sid" => "",
  188. "name" => "serversboard_portal_onoff",
  189. "title" => $db->escape_string($lang->setting_serversboard_portal_onoff),
  190. "description" => $db->escape_string($lang->setting_serversboard_portal_onoff_desc),
  191. "optionscode" => "onoff",
  192. "value" => "1",
  193. "disporder" => "3",
  194. "gid" => $gid,
  195. "isdefault" => "0",
  196. );
  197.  
  198. $settings[] = array(
  199. // "sid" => "",
  200. "name" => "serversboard_show_barsplayersnum_onoff",
  201. "title" => $db->escape_string($lang->setting_serversboard_show_barsplayersnum_onoff),
  202. "description" => $db->escape_string($lang->setting_serversboard_show_barsplayersnum_onoff_desc),
  203. "optionscode" => "onoff",
  204. "value" => "0",
  205. "disporder" => "4",
  206. "gid" => $gid,
  207. "isdefault" => "0",
  208. );
  209.  
  210. $settings[] = array(
  211. // "sid" => "",
  212. "name" => "serversboard_remove_host",
  213. "title" => $db->escape_string($lang->setting_serversboard_remove_host),
  214. "description" => $db->escape_string($lang->setting_serversboard_remove_hostdesc),
  215. "optionscode" => "text",
  216. "value" => "@hoting.pl,@ hosting.pl",
  217. "disporder" => "5",
  218. "gid" => $gid,
  219. "isdefault" => "0",
  220. );
  221.  
  222. $settings[] = array(
  223. // "sid" => "",
  224. "name" => "serversboard_summation_onoff",
  225. "title" => $db->escape_string($lang->setting_serversboard_summation_onoff),
  226. "description" => $db->escape_string($lang->setting_serversboard_summation_onoff_desc),
  227. "optionscode" => "onoff",
  228. "value" => "1",
  229. "disporder" => "6",
  230. "gid" => $gid,
  231. "isdefault" => "0",
  232. );
  233.  
  234. $settings[] = array(
  235. // "sid" => "",
  236. "name" => "serversboard_cache_time",
  237. "title" => $db->escape_string($lang->setting_serversboard_cache_time),
  238. "description" => $db->escape_string($lang->setting_serversboard_cache_time_desc),
  239. "optionscode" => "numeric",
  240. "value" => "5",
  241. "disporder" => "7",
  242. "gid" => $gid,
  243. "isdefault" => "0",
  244. );
  245.  
  246. $db->insert_query_multiple("settings", $settings);
  247.  
  248. rebuild_settings();
  249.  
  250. $templategroup = array(
  251. // "gid" => "",
  252. "prefix" => "serversboard",
  253. "title" => $db->escape_string("<lang:serversboard_templates>"),
  254. );
  255.  
  256. $db->insert_query("templategroups", $templategroup);
  257.  
  258. $templates = array();
  259.  
  260. $templates[] = array(
  261. // "tid" => "",
  262. "title" => "serversboard",
  263. "template" => $db->escape_string('<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
  264. <thead>
  265. <tr>
  266. <td class="thead{$collapsedthead[\'serversboard\']}" colspan="8">
  267. <div><strong>{$lang->serversboard} - {$mybb->settings[\'bbname\']}</strong></div>
  268. </td>
  269. </tr>
  270. </thead>
  271. <tbody style="{$collapsed[\'serversboard_e\']}" id="serversboard_e">
  272. <td class="tcat" align="center"><span class="smalltext"><strong>{$lang->number}</strong></span></td>
  273. <td class="tcat" align="center"><span class="smalltext"><strong>{$lang->status}</strong></span></td>
  274. <td class="tcat" align="center"><span class="smalltext"><strong>{$lang->type}</strong></span></td>
  275. <td class="tcat" align="center"><span class="smalltext"><strong>{$lang->hostname}</strong></span></td>
  276. <td class="tcat" align="center"><span class="smalltext"><center><strong>{$lang->ip}</strong></span></td>
  277. <td class="tcat" align="center"><span class="smalltext"><center><strong>{$lang->players_slots}</strong></span></td>
  278. <td class="tcat" align="center"><span class="smalltext"><center><strong>{$lang->map}</strong></span></td>
  279. <td class="tcat" align="center"><span class="smalltext"><center><strong>{$lang->more}</strong></span></td>
  280. {$serversboard_row}
  281. {$serversboard_summation}
  282. </tbody>
  283. </table>
  284. <br />'),
  285. "sid" => "-2",
  286. "version" => "1800",
  287. "status" => "0",
  288. "dateline" => TIME_NOW,
  289. );
  290.  
  291. $templates[] = array(
  292. // "tid" => "",
  293. "title" => "serversboard_row",
  294. "template" => $db->escape_string('<tr>
  295. <td class="{$altbg}" align="center"><span class="smalltext">{$data[\'gq_number\']}</span></td>
  296. <td class="{$altbg}" align="center"><span class="smalltext">{$data[\'gq_status\']}{$data[\'gq_new\']}</span></td>
  297. <td class="{$altbg}" align="center"><span class="smalltext" title="{$data[\'gq_desc\']}">{$data[\'gq_icon\']}</span></td>
  298. <td class="{$altbg}" align="center"><span class="smalltext">{$data[\'gq_hostname\']}</span></td>
  299. <td class="{$altbg}" align="center"><span class="smalltext">{$data[\'gq_ip\']}</span></td>
  300. <td class="{$altbg}" align="center"><span class="smalltext">{$data[\'gq_playersslots\']}</span></td>
  301. <td class="{$altbg}" align="center"><span class="smalltext">{$data[\'gq_mapname\']}</span></td>
  302. <td class="{$altbg}" align="center"><span class="smalltext">{$data[\'gq_gt\']} {$data[\'gq_join\']} {$data[\'gq_field\']}{$data[\'gq_general\']} {$data[\'gq_page\']}</span></td>
  303. </tr>'),
  304. "sid" => "-2",
  305. "version" => "1800",
  306. "status" => "0",
  307. "dateline" => TIME_NOW,
  308. );
  309.  
  310. $templates[] = array(
  311. // "tid" => "",
  312. "title" => "serversboard_row_empty",
  313. "template" => $db->escape_string('<tr>
  314. <td class="{$altbg}" align="center" colspan="8">
  315. <span class="smalltext">{$lang->no_servers}</span>
  316. </td>
  317. </tr>'),
  318. "sid" => "-2",
  319. "version" => "1800",
  320. "status" => "0",
  321. "dateline" => TIME_NOW,
  322. );
  323.  
  324. $templates[] = array(
  325. // "tid" => "",
  326. "title" => "serversboard_summation",
  327. "template" => $db->escape_string('<tr>
  328. <td class="trow1" align="center" colspan="8">
  329. &nbsp;&nbsp;&nbsp;&nbsp;{$lang->together_servers}<span class="server serverssummation">{$servers}</span>
  330. &nbsp;&nbsp;&nbsp;&nbsp;{$lang->together_players}<span class="server serverssummation">{$gamers}</span>
  331. &nbsp;&nbsp;&nbsp;&nbsp;{$lang->together_slots}<span class="server serverssummation">{$slots}</span>
  332. &nbsp;&nbsp;&nbsp;&nbsp;{$lang->together_empty_slots}<span class="server serverssummation">{$emptyslots}</span>
  333. &nbsp;&nbsp;&nbsp;&nbsp;{$lang->procent_players}<span class="server serverssummation">{$procentgamers}</span>
  334. &nbsp;&nbsp;&nbsp;&nbsp;{$lang->record_players}<span class="server serverssummation">{$recordgamers}</span>
  335. </td>
  336. </tr>'),
  337. "sid" => "-2",
  338. "version" => "1800",
  339. "status" => "0",
  340. "dateline" => TIME_NOW,
  341. );
  342.  
  343. $templates[] = array(
  344. // "tid" => "",
  345. "title" => "serversboard_subpage",
  346. "template" => $db->escape_string('<html>
  347. <head>
  348. {$headerinclude}
  349. <title>{$mybb->settings[\'bbname\']} - {$lang->serversboard}</title>
  350. </head>
  351. <body>
  352. {$header}
  353. {$serversboard}
  354. {$footer}
  355. </body>
  356. </html> '),
  357. "sid" => "-2",
  358. "version" => "1800",
  359. "status" => "0",
  360. "dateline" => TIME_NOW,
  361. );
  362.  
  363. $templates[] = array(
  364. // "tid" => "",
  365. "title" => "serversboard_more",
  366. "template" => $db->escape_string('<html>
  367. <head>
  368. {$headerinclude}
  369. <title>{$mybb->settings[\'bbname\']} - {$data[\'gq_hostname\']}</title>
  370. </head>
  371. <body>
  372. {$header}
  373. {$serversboard}
  374. <div class="side" style="float: right;width: 24%;">
  375. {$field}
  376. {$map}
  377. {$owner}
  378. {$buddylist}
  379. </div>
  380. <div class="general" style="float: left;width: 75%;">
  381. {$general}
  382. {$players}
  383. </div>
  384. <br class="clear" />
  385. {$footer}
  386. </body>
  387. </html>'),
  388. "sid" => "-2",
  389. "version" => "1800",
  390. "status" => "0",
  391. "dateline" => TIME_NOW,
  392. );
  393.  
  394. $templates[] = array(
  395. // "tid" => "",
  396. "title" => "serversboard_more_general",
  397. "template" => $db->escape_string('<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
  398. <tr>
  399. <td class="thead" colspan="2"><strong>{$lang->general_informations}</strong></td>
  400. </tr>
  401. <tr>
  402. <td class="trow1" align="left" width="30%" valign="top"><strong>{$lang->hostname}</strong></td>
  403. <td class="trow1" align="left" width="70%" valign="top"> {$data[\'gq_hostname\']} </td>
  404. </tr>
  405. <tr>
  406. <td class="trow1" align="left" width="30%" valign="top"><strong>{$lang->status}</strong></td>
  407. <td class="trow1" align="left" width="70%" valign="top"> {$data[\'gq_status\']}{$data[\'gq_new\']}</td>
  408. </tr>
  409. <tr>
  410. <td class="trow1" align="left" width="30%" valign="top"><strong>{$lang->ip}</strong></td>
  411. <td class="trow1" align="left" width="70%" valign="top"> {$data[\'gq_ip\']}</td>
  412. </tr>
  413. <tr>
  414. <td class="trow1" align="left" width="30%" valign="top"><strong>{$lang->type}</strong></td>
  415. <td class="trow1" align="left" width="70%" valign="top">{$data[\'gq_desc\']}</td>
  416. </tr>
  417. <tr>
  418. <td class="trow1" align="left" width="30%" valign="top"><strong>{$lang->players}</strong></td>
  419. <td class="trow1" align="left" width="70%" valign="top">{$data[\'gq_bots\']} {$data[\'gq_numplayers\']}</td>
  420. </tr>
  421. <tr>
  422. <td class="trow1" align="left" width="30%" valign="top"><strong>{$lang->slots}</strong> </td>
  423. <td class="trow1" align="left" width="70%" valign="top">{$data[\'gq_maxplayers\']}</td>
  424. </tr>
  425. <tr>
  426. <td class="trow1" align="left" width="30%" valign="top"><strong>{$lang->procent_players}</strong></td>
  427. <td class="trow1" align="left" width="70%" valign="top">{$data[\'gq_procents\']}</td>
  428. </tr>
  429. <tr>
  430. <td class="trow1" align="left" width="30%" valign="top"><strong>{$lang->map}</strong></td>
  431. <td class="trow1" align="left" width="70%" valign="top">{$data[\'gq_mapname\']}</td>
  432. </tr>
  433. <tr>
  434. <td class="trow1" align="left" width="30%" valign="top"><strong>{$lang->record_players}</strong></td>
  435. <td class="trow1" align="left" width="70%" valign="top">{$data[\'gq_recordplayers\']}</td>
  436. </tr>
  437. <tr>
  438. <td class="trow1" align="center" width="100%" valign="top" colspan="8"><strong>{$lang->lastupdate} {$data[\'gq_lastupdate\']}. {$lang->nextupdate} {$data[\'gq_nextupdate\']}.</strong></td>
  439. </tr>
  440. </table>
  441. <br />'),
  442. "sid" => "-2",
  443. "version" => "1800",
  444. "status" => "0",
  445. "dateline" => TIME_NOW,
  446. );
  447.  
  448. $templates[] = array(
  449. // "tid" => "",
  450. "title" => "serversboard_more_field",
  451. "template" => $db->escape_string('<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
  452. <tr>
  453. <td class="thead" colspan="2"><strong>{$lang->more}</strong></td>
  454. </tr>
  455. <tr>
  456. <td class="trow2 post_content "><center>{$data[\'gq_gt\']} {$data[\'gq_join\']} {$data[\'gq_field\']}</center></td>
  457. </tr>
  458. </table>
  459. <br />'),
  460. "sid" => "-2",
  461. "version" => "1800",
  462. "status" => "0",
  463. "dateline" => TIME_NOW,
  464. );
  465.  
  466. $templates[] = array(
  467. // "tid" => "",
  468. "title" => "serversboard_more_map",
  469. "template" => $db->escape_string('<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
  470. <tr>
  471. <td class="thead" colspan="2"><strong>{$lang->map} {$data[\'gq_mapname\']}</strong></td>
  472. </tr>
  473. <tr>
  474. <td class="trow2 post_content "><center>{$data[\'gq_mapscreen\']}</center></td>
  475. </tr>
  476. </table>
  477. <br />'),
  478. "sid" => "-2",
  479. "version" => "1800",
  480. "status" => "0",
  481. "dateline" => TIME_NOW,
  482. );
  483.  
  484.  
  485. $templates[] = array(
  486. // "tid" => "",
  487. "title" => "serversboard_more_players",
  488. "template" => $db->escape_string('<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
  489. <tr>
  490. <td class="thead" colspan="2"><strong>{$lang->players_online}</strong></td>
  491. </tr>
  492. <td class="tcat" colspan="0"><span class="smalltext"><strong>{$lang->player_name}</strong></span></td>
  493. <td class="tcat" colspan="0"><span class="smalltext"><strong>{$lang->player_time_online}</strong></span></td>
  494. {$players_row}
  495. {$serversboard_more_players_multipage}
  496. </table><br />'),
  497. "sid" => "-2",
  498. "version" => "1800",
  499. "status" => "0",
  500. "dateline" => TIME_NOW,
  501. );
  502.  
  503. $templates[] = array(
  504. // "tid" => "",
  505. "title" => "serversboard_more_players_row",
  506. "template" => $db->escape_string('<tr><td class="trow2" align="left" width="30%" valign="top"><span class="smalltext">{$gracz}</span></td>
  507. <td class="trow2" align="left" width="70%" valign="top"><span class="smalltext" title="">{$czas}</span></td></tr>'),
  508. "sid" => "-2",
  509. "version" => "1800",
  510. "status" => "0",
  511. "dateline" => TIME_NOW,
  512. );
  513.  
  514. $templates[] = array(
  515. // "tid" => "",
  516. "title" => "serversboard_more_players_row_empty",
  517. "template" => $db->escape_string('<tr><td class="trow2" align="left" colspan="8"><span class="smalltext">{$lang->players_empty}</span></td></tr>'),
  518. "sid" => "-2",
  519. "version" => "1800",
  520. "status" => "0",
  521. "dateline" => TIME_NOW,
  522. );
  523.  
  524. $templates[] = array(
  525. // "tid" => "",
  526. "title" => "serversboard_more_players_multipage",
  527. "template" => $db->escape_string('<tr>
  528. <td class="trow1" align="left" colspan="2"><span class="smalltext">{$multipage}</span></td>
  529. </tr>'),
  530. "sid" => "-2",
  531. "version" => "1800",
  532. "status" => "0",
  533. "dateline" => TIME_NOW,
  534. );
  535.  
  536. $templates[] = array(
  537. // "tid" => "",
  538. "title" => "serversboard_more_owner",
  539. "template" => $db->escape_string('<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
  540. <tr>
  541. <td class="thead" colspan="2"><strong>{$lang->owner}</strong></td>
  542. </tr>
  543. <tr><td class="trow1">
  544. <img src="{$owneravatar[\'image\']}" alt="" style="float: left;margin-right: 5px;" width="32 height="32" />
  545. {$owner[\'profilelink\']}<br /><span>{$ownergroup[\'title\'] }</span>
  546. </td></tr>
  547. </table>
  548. <br />'),
  549. "sid" => "-2",
  550. "version" => "1800",
  551. "status" => "0",
  552. "dateline" => TIME_NOW,
  553. );
  554.  
  555. $templates[] = array(
  556. // "tid" => "",
  557. "title" => "serversboard_more_buddylist",
  558. "template" => $db->escape_string('<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
  559. <tr>
  560. <td class="thead"><strong>{$lang->buddylist}</strong></td>
  561. </tr>
  562. <tr>
  563. <td class="trow1">
  564. <span class="smalltext">
  565. <center>{$buddylist_row}</center>
  566. </span>
  567. </td>
  568. </tr>
  569. {$buddylist_button}
  570. </table>
  571. <br />'),
  572. "sid" => "-2",
  573. "version" => "1800",
  574. "status" => "0",
  575. "dateline" => TIME_NOW,
  576. );
  577.  
  578. $templates[] = array(
  579. // "tid" => "",
  580. "title" => "serversboard_more_buddylist_row",
  581. "template" => $db->escape_string('<span>{$buddy[\'profilelink\']}</span>'),
  582. "sid" => "-2",
  583. "version" => "1800",
  584. "status" => "0",
  585. "dateline" => TIME_NOW,
  586. );
  587.  
  588. $templates[] = array(
  589. // "tid" => "",
  590. "title" => "serversboard_more_buddylist_row_empty",
  591. "template" => $db->escape_string('<span>{$lang->buddylist_empty}</span>'),
  592. "sid" => "-2",
  593. "version" => "1800",
  594. "status" => "0",
  595. "dateline" => TIME_NOW,
  596. );
  597.  
  598. $templates[] = array(
  599. // "tid" => "",
  600. "title" => "serversboard_more_buddylist_button_joinbuddylist",
  601. "template" => $db->escape_string('<form action="serversboard.php" method="post">
  602. <input type="hidden" name="my_post_key" value="{$mybb->post_code}" />
  603. <input type="hidden" name="sid" value="{$server[\'sid\']}" />
  604. <tr>
  605. <td class="trow1">
  606. <div align="center">
  607. <input type="hidden" name="action" value="joinbuddylist" />
  608. <input type="submit" class="server serverbutton" name="submit" value="{$lang->joinbuddylist}" />
  609. </div>
  610. </form>
  611. </td>
  612. </tr>'),
  613. "sid" => "-2",
  614. "version" => "1800",
  615. "status" => "0",
  616. "dateline" => TIME_NOW,
  617. );
  618.  
  619. $templates[] = array(
  620. // "tid" => "",
  621. "title" => "serversboard_more_buddylist_button_lowerbuddylist",
  622. "template" => $db->escape_string('<form action="serversboard.php" method="post">
  623. <input type="hidden" name="my_post_key" value="{$mybb->post_code}" />
  624. <input type="hidden" name="sid" value="{$server[\'sid\']}" />
  625. <tr>
  626. <td class="trow1">
  627. <div align="center">
  628. <input type="hidden" name="action" value="lowerbuddylist" />
  629. <input type="submit" class="server serverbutton" name="submit" value="{$lang->lowerbuddylist}" />
  630. </div>
  631. </form>
  632. </td>
  633. </tr>'),
  634. "sid" => "-2",
  635. "version" => "1800",
  636. "status" => "0",
  637. "dateline" => TIME_NOW,
  638. );
  639.  
  640. $db->insert_query_multiple("templates", $templates);
  641.  
  642. $style = ".server {
  643. display: inline-block;
  644. height: 16px;
  645. line-height: 16px;
  646. padding: 0 5px;
  647. font-size: 9px;
  648. font-weight: bold;
  649. text-transform: uppercase;
  650. color: white;
  651. text-shadow: rgba(0, 0, 0, 0.2) 0px -1px 0px;
  652. -moz-border-radius: 3px;
  653. -webkit-border-radius: 3px;
  654. border-radius: 3px;
  655. background-image: url(images/serversboard/highlight.png);
  656. background-repeat: repeat-x;
  657. background-position: 0 -1px;
  658. }
  659.  
  660. .serveronline {
  661. background:green;
  662. }
  663.  
  664. .serveroffline {
  665. background:red;
  666. }
  667.  
  668. .servernumber {
  669. background:#0f0f0f;
  670. }
  671.  
  672. .serverssummation {
  673. background:#0f0f0f;
  674. }
  675.  
  676. .serverbutton {
  677. background:#0f0f0f;
  678. }
  679.  
  680. .progress {
  681. height: 16px;
  682. overflow: hidden;
  683. background-color: #f7f7f7;
  684. background-image: -moz-linear-gradient(top,#f5f5f5,#f9f9f9);
  685. background-image: -webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));
  686. background-image: -webkit-linear-gradient(top,#f5f5f5,#f9f9f9);
  687. background-image: -o-linear-gradient(top,#f5f5f5,#f9f9f9);
  688. background-image: linear-gradient(to bottom,#f5f5f5,#f9f9f9);
  689. background-repeat: repeat-x;
  690. -webkit-border-radius: 4px;
  691. -moz-border-radius: 4px;
  692. border-radius: 4px;
  693. filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=\'#fff5f5f5\',endColorstr=\'#fff9f9f9\',GradientType=0);
  694. -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
  695. -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
  696. box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
  697. }
  698.  
  699. .progress .bar {
  700. float: left;
  701. width: 0;
  702. height: 100%;
  703. font-size: 12px;
  704. color: #fff;
  705. text-align: center;
  706. text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
  707. background-color: #0e90d2;
  708. background-image: -moz-linear-gradient(top,#149bdf,#0480be);
  709. background-image: -webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));
  710. background-image: -webkit-linear-gradient(top,#149bdf,#0480be);
  711. background-image: -o-linear-gradient(top,#149bdf,#0480be);
  712. background-image: linear-gradient(to bottom,#149bdf,#0480be);
  713. background-repeat: repeat-x;
  714. filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\'#ff149bdf\',endColorstr=\'#ff0480be\',GradientType=0);
  715. -webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,0.15);
  716. -moz-box-shadow: inset 0 -1px 0 rgba(0,0,0,0.15);
  717. box-shadow: inset 0 -1px 0 rgba(0,0,0,0.15);
  718. -webkit-box-sizing: border-box;
  719. -moz-box-sizing: border-box;
  720. box-sizing: border-box;
  721. -webkit-transition: width .6s ease;
  722. -moz-transition: width .6s ease;
  723. -o-transition: width .6s ease;
  724. transition: width .6s ease
  725. }
  726.  
  727. .progress .bar+.bar {
  728. -webkit-box-shadow: inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);
  729. -moz-box-shadow: inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);
  730. box-shadow: inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)
  731. }
  732.  
  733. .progress-striped .bar {
  734. background-color: #149bdf;
  735. background-image: -webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba
  736.  
  737. (255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));
  738. background-image: -webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
  739. background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
  740. background-image: -o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
  741. background-image: linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size: 40px 40px;
  742. -moz-background-size: 40px 40px;
  743. -o-background-size: 40px 40px;
  744. background-size: 40px 40px
  745. }
  746.  
  747. .progress-danger .bar,.progress .bar-danger {
  748. background-color: #dd514c;
  749. background-image: -moz-linear-gradient(top,#ee5f5b,#c43c35);
  750. background-image: -webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));
  751. background-image: -webkit-linear-gradient(top,#ee5f5b,#c43c35);
  752. background-image: -o-linear-gradient(top,#ee5f5b,#c43c35);
  753. background-image: linear-gradient(to bottom,#ee5f5b,#c43c35);
  754. background-repeat: repeat-x;
  755. filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=\'#ffee5f5b\',endColorstr=\'#ffc43c35\',GradientType=0)
  756. }
  757.  
  758. .progress-danger.progress-striped .bar,.progress-striped .bar-danger {
  759. background-color: #ee5f5b;
  760. background-image: -webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba
  761.  
  762. (255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));
  763. background-image: -webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
  764. background-image: -moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
  765. background-image: -o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
  766. background-image: linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)
  767. }
  768.  
  769. .progress-success .bar,.progress .bar-success {
  770. background-color: #5eb95e;
  771. background-image: -moz-linear-gradient(top,#62c462,#57a957);
  772. background-image: -webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));
  773. background-image: -webkit-linear-gradient(top,#62c462,#57a957);
  774. background-image: -o-linear-gradient(top,#62c462,#57a957);
  775. background-image: linear-gradient(to bottom,#62c462,#57a957);
  776. background-repeat: repeat-x;
  777. filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=\'#ff62c462\',endColorstr=\'#ff57a957\',GradientType=0)
  778. }
  779.  
  780. .progress-success.progress-striped .bar,.progress-striped .bar-success {
  781. background-color: #62c462;
  782. background-image: -webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba
  783.  
  784. (255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));
  785. background-image: -webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
  786. background-image: -moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
  787. background-image: -o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
  788. background-image: linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)
  789. }
  790.  
  791.  
  792. .progress-warning .bar,.progress .bar-warning {
  793. background-color: #faa732;
  794. background-image: -moz-linear-gradient(top,#fbb450,#f89406);
  795. background-image: -webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));
  796. background-image: -webkit-linear-gradient(top,#fbb450,#f89406);
  797. background-image: -o-linear-gradient(top,#fbb450,#f89406);
  798. background-image: linear-gradient(to bottom,#fbb450,#f89406);
  799. background-repeat: repeat-x;
  800. filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=\'#fffbb450\',endColorstr=\'#fff89406\',GradientType=0)
  801. }
  802.  
  803. .progress-warning.progress-striped .bar,.progress-striped .bar-warning {
  804. background-color: #fbb450;
  805. background-image: -webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba
  806.  
  807. (255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));
  808. background-image: -webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
  809. background-image: -moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
  810. background-image: -o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
  811. background-image: linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)
  812. }";
  813.  
  814. $stylesheet = array(
  815. // "sid" => "",
  816. "name" => "serversboard.css",
  817. "cachefile" => "serversboard.css",
  818. "tid" => "1",
  819. "attachedto" => "index.php|portal.php|serversboard.php",
  820. "stylesheet" => $db->escape_string($style),
  821. 'lastmodified' => TIME_NOW
  822. );
  823.  
  824. $db->insert_query("themestylesheets", $stylesheet);
  825.  
  826. require_once MYBB_ADMIN_DIR."inc/functions_themes.php";
  827.  
  828. cache_stylesheet(1, "serversboard.css", $style);
  829. update_theme_stylesheet_list(1, false, true);
  830. }
  831.  
  832. function serversboard_uninstall()
  833. {
  834. global $db, $mybb, $cache, $page, $lang;
  835. $lang->load("config_serversboard");
  836.  
  837. if($mybb->request_method != 'post')
  838. {
  839. $page->output_confirm_action("index.php?module=config-plugins&action=deactivate&uninstall=1&plugin=serversboard", $lang->serversboard_uninstall_message, $lang->serversboard_uninstall);
  840. }
  841.  
  842. if($db->table_exists("serversboard") && !isset($mybb->input['no']))
  843. {
  844. $db->drop_table("serversboard");
  845. }
  846.  
  847. $db->delete_query("settinggroups", "name = \"serversboard\"");
  848. $db->delete_query("settings", "name LIKE \"serversboard%\"");
  849. rebuild_settings();
  850. $db->delete_query("templategroups", "prefix = \"serversboard\"");
  851. $db->delete_query("templates", "title LIKE \"serversboard%\"");
  852. $db->delete_query("themestylesheets", "name= \"serversboard.css\"");
  853.  
  854. require_once MYBB_ADMIN_DIR."inc/functions_themes.php";
  855.  
  856. $query = $db->simple_select("themes", "tid");
  857. while($theme = $db->fetch_array($query))
  858. {
  859. @unlink(MYBB_ROOT."cache/themes/theme{$theme['tid']}/serversboard.css");
  860. @unlink(MYBB_ROOT."cache/themes/theme{$theme['tid']}/serversboard.min.css");
  861. update_theme_stylesheet_list($theme['tid'], false, true);
  862. }
  863. }
  864.  
  865. function serversboard_activate()
  866. {
  867. serversboard_deactivate();
  868.  
  869. find_replace_templatesets("index", '#'.preg_quote('{$header}').'#', '{$header}'."\n".'{$serversboard}');
  870. find_replace_templatesets("portal", '#'.preg_quote('{$header}').'#', '{$header}'."\n".'{$serversboard}');
  871. change_admin_permission('config', 'serversboard', 1);
  872. }
  873.  
  874. function serversboard_deactivate()
  875. {
  876. include MYBB_ROOT."/inc/adminfunctions_templates.php";
  877.  
  878. find_replace_templatesets('index', '#' . preg_quote("\n".'{$serversboard}') . '#', '', 0);
  879. find_replace_templatesets('portal', '#' . preg_quote("\n".'{$serversboard}') . '#', '', 0);
  880. change_admin_permission('config', 'serversboard', 0);
  881. }
  882.  
  883. function serversboard_admin_lang_load()
  884. {
  885. global $lang;
  886. $lang->load("config_serversboard");
  887. }
  888.  
  889. function serversboard_admin_config_menu(&$sub_menu)
  890. {
  891. global $lang;
  892. $lang->load("config_serversboard");
  893.  
  894. $sub_menu[] = array("id" => "serversboard", "title" => "$lang->serversboard", "link" => "index.php?module=config-serversboard");
  895. }
  896.  
  897. function serversboard_admin_config_action_handler(&$actions)
  898. {
  899. $actions['serversboard'] = array("active" => "serversboard", "file" => "serversboard.php");
  900. }
  901.  
  902. function serversboard_admin_home_menu_quick_access(&$actions)
  903. {
  904. global $lang;
  905. $lang->load("config_serversboard");
  906.  
  907. $actions['serversboard'] = array("id" => "serversboard", "title" => $lang->serversboard, "link" => "index.php?module=config-serversboard");
  908. }
  909.  
  910. function serversboard_admin_config_permissions(&$admin_permissions)
  911. {
  912. global $lang;
  913. $lang->load("config_serversboard");
  914.  
  915. $admin_permissions['serversboard'] = $lang->serversboard_admin_permissions;
  916. }
  917.  
  918. function serversboard()
  919. {
  920. global $db, $lang, $mybb, $templates, $theme, $serversboard;
  921. $lang->load("serversboard");
  922.  
  923. if($mybb->settings['serversboard_onoff'] != "1")
  924. {
  925. return;
  926. }
  927.  
  928. if($mybb->settings['serversboard_index_onoff'] != "1" && THIS_SCRIPT == "index.php")
  929. {
  930. return;
  931. }
  932.  
  933. if($mybb->settings['serversboard_portal_onoff'] != "1" && THIS_SCRIPT == "portal.php")
  934. {
  935. return;
  936. }
  937.  
  938. $altbg = alt_trow();
  939. $serversboard_index_row = "";
  940.  
  941. $query = $db->simple_select("serversboard", "*", "visible=1", array('order_by' => 'disporder'));
  942. if(!$db->num_rows($query))
  943. {
  944. $servers = "0";
  945. $slots = "0";
  946. $gamers = "0";
  947. $emptyslots = "0";
  948. $procentgamers = "0 %";
  949. $recordgamers = "0";
  950. eval('$serversboard_row .= "'.$templates->get("serversboard_row_empty").'";');
  951. }
  952. else
  953. {
  954. require_once SERVERSBOARD_CORE_PATH."gameq.php";
  955.  
  956. while($server = $db->fetch_array($query))
  957. {
  958. $servernumber++;
  959.  
  960. switch($server['type'])
  961. {
  962. case "arma2":
  963. $ip = explode(":", $server['ip']);
  964. $joinport = $ip[1];
  965. $server['ip'] = $ip[0].":".$server['arma2qport'];
  966. break;
  967. case "arma3":
  968. $ip = explode(":", $server['ip']);
  969. $joinport = $ip[1];
  970. $server['ip'] = $ip[0].":".$server['arma3qport'];
  971. break;
  972. case "bf3":
  973. $ip = explode(":", $server['ip']);
  974. $joinport = $ip[1];
  975. $server['ip'] = $ip[0].":".$server['bf3qport'];
  976. break;
  977. case "bf4":
  978. $ip = explode(":", $server['ip']);
  979. $joinport = $ip[1];
  980. $server['ip'] = $ip[0].":".$server['bf4qport'];
  981. break;
  982. case "dayz":
  983. $ip = explode(":", $server['ip']);
  984. $joinport = $ip[1];
  985. $server['ip'] = $ip[0].":".$server['dayzqport'];
  986. break;
  987. case "dayzmod":
  988. $ip = explode(":", $server['ip']);
  989. $joinport = $ip[1];
  990. $server['ip'] = $ip[0].":".$server['dayzmodqport'];
  991. break;
  992. case "minecraft":
  993. $ip = explode(":", $server['ip']);
  994. $joinport = $ip[1];
  995. $server['ip'] = $ip[0].":".$server['minecraftqport'];
  996. break;
  997. case "mta":
  998. $ip = explode(":", $server['ip']);
  999. $joinport = $ip[1];
  1000. $server['ip'] = $ip[0].":".$server['mtaqport'];
  1001. break;
  1002. case "mumble":
  1003. $ip = explode(":", $server['ip']);
  1004. $joinport = $ip[1];
  1005. $server['ip'] = $ip[0].":".$server['mumbleqport'];
  1006. break;
  1007. case "rust":
  1008. $ip = explode(":", $server['ip']);
  1009. $joinport = $ip[1];
  1010. $server['ip'] = $ip[0].":".$server['rustqport'];
  1011. break;
  1012. case "terraria":
  1013. $ip = explode(":", $server['ip']);
  1014. $joinport = $ip[1];
  1015. $server['ip'] = $ip[0].":".$server['terrariaqport'];
  1016. break;
  1017. }
  1018.  
  1019. if($server['type'] == "teamspeak3")
  1020. {
  1021. $servers = array(
  1022. array(
  1023. "id" => $server['sid'],
  1024. "type" => $server['type'],
  1025. "host" => $server['ip'],
  1026. "options" => array(
  1027. "master_server_port" => $server['ts3qport'],
  1028. ),
  1029. ),
  1030. );
  1031. }
  1032. else
  1033. {
  1034. $servers = array(
  1035. array(
  1036. "id" => $server['sid'],
  1037. "type" => $server['type'],
  1038. "host" => $server['ip'],
  1039. ),
  1040. );
  1041. }
  1042.  
  1043. $results = array();
  1044.  
  1045. if(TIME_NOW - ($mybb->settings['serversboard_cache_time'] * 60) < $server['lastupdate'])
  1046. {
  1047. $results = @unserialize($server['cache']);
  1048. }
  1049. else
  1050. {
  1051. $gq = new GameQ();
  1052. $gq->addServers($servers);
  1053. $gq->setOption('timeout', 5);
  1054. $gq->setFilter('normalise');
  1055. $gq->setFilter('stripcolor');
  1056. $results = $gq->requestData();
  1057.  
  1058. $update_query = array(
  1059. "cache" => $db->escape_string(serialize($results)),
  1060. "lastupdate" => TIME_NOW,
  1061. );
  1062. $db->update_query("serversboard", $update_query, "sid='".$server['sid']."'");
  1063. }
  1064.  
  1065. foreach((array)$results as $data)
  1066. {
  1067. if($data['gq_type'] == 'arma2')
  1068. {
  1069. $ip= explode(":", $server['ip']);
  1070. $server['ip'] = $ip[0].":".$joinport;
  1071. }
  1072. elseif($data['gq_type'] == 'arma3')
  1073. {
  1074. $ip= explode(":", $server['ip']);
  1075. $server['ip'] = $ip[0].":".$joinport;
  1076. }
  1077. elseif($data['gq_type'] == 'bf3')
  1078. {
  1079. $ip= explode(":", $server['ip']);
  1080. $server['ip'] = $ip[0].":".$joinport;
  1081. }
  1082. elseif($data['gq_type'] == 'bf4')
  1083. {
  1084. $ip= explode(":", $server['ip']);
  1085. $server['ip'] = $ip[0].":".$joinport;
  1086. }
  1087. elseif($data['gq_type'] == 'dayz')
  1088. {
  1089. $ip= explode(":", $server['ip']);
  1090. $server['ip'] = $ip[0].":".$joinport;
  1091. }
  1092. elseif($data['gq_type'] == 'dayzmod')
  1093. {
  1094. $ip= explode(":", $server['ip']);
  1095. $server['ip'] = $ip[0].":".$joinport;
  1096. }
  1097. elseif($data['gq_type'] == 'minecraft')
  1098. {
  1099. $ip= explode(":", $server['ip']);
  1100. $server['ip'] = $ip[0].":".$joinport;
  1101. }
  1102. elseif($data['gq_type'] == 'mta')
  1103. {
  1104. $ip= explode(":", $server['ip']);
  1105. $server['ip'] = $ip[0].":".$joinport;
  1106. }
  1107. elseif($data['gq_type'] == 'mumble')
  1108. {
  1109. $ip= explode(":", $server['ip']);
  1110. $server['ip'] = $ip[0].":".$joinport;
  1111. }
  1112. elseif($data['gq_type'] == 'rust')
  1113. {
  1114. $ip= explode(":", $server['ip']);
  1115. $server['ip'] = $ip[0].":".$joinport;
  1116. }
  1117. elseif($data['gq_type'] == 'terraria')
  1118. {
  1119. $ip= explode(":", $server['ip']);
  1120. $server['ip'] = $ip[0].":".$joinport;
  1121. }
  1122.  
  1123. $data['gq_sid'] = $server['sid'];
  1124. $data['gq_number'] = "<span class=\"server servernumber\">".$server['disporder']."</span>";
  1125. $data['gq_icon'] = "<img src=\"".SERVERSBOARD_IMAGES_PATH."icons/".$data['gq_type'].".png\" style=\"vertical-align: middle;\"/>";
  1126. $data['gq_ip'] = $server['ip'];
  1127.  
  1128. if($data['gq_hostname'] == "")
  1129. {
  1130. $data['gq_status'] = "<span class=\"server serveroffline\">".$lang->server_offline."</span>";
  1131. $data['gq_hostname'] = $server['offlinehostname'];
  1132. $data['gq_recordplayers'] = $server['recordplayers'];
  1133. $data['gq_numplayers'] = 0;
  1134. $data['gq_maxplayers'] = 0;
  1135. $data['gq_procents'] = "0 %";
  1136. }
  1137. elseif($data['gq_hostname'] != "")
  1138. {
  1139. $data['gq_status'] = "<span class=\"server serveronline\">".$lang->server_online."</span>";
  1140. $data['gq_online'] = '1';
  1141. $data['gq_hostname'] = $data['gq_hostname'];
  1142.  
  1143. if(($data['gq_numplayers'] > $server['recordplayers']) || ($server['recordplayers'] > $data['gq_maxplayers']))
  1144. {
  1145. $updated_server = array(
  1146. "recordplayers" => $db->escape_string($data['gq_numplayers']),
  1147. );
  1148.  
  1149. $upid = $db->update_query("serversboard", $updated_server, "sid = '".$server['sid']."'");
  1150. }
  1151.  
  1152. $data['gq_numplayers'] = $data['gq_numplayers'];
  1153. $data['gq_maxplayers'] = $data['gq_maxplayers'];
  1154. $data['gq_procents'] = round($data['gq_numplayers'] / $data['gq_maxplayers'] * 100)." %";
  1155.  
  1156. if($data['gq_type'] == 'teamspeak3')
  1157. {
  1158. for($d=0;$d<$data['gq_numplayers']; $d++)
  1159. {
  1160. if($data['players'][$d]['gq_name'] == "")
  1161. {
  1162. $data['gq_numplayers'] = '0';
  1163. $data['gq_maxplayers'] = $data['gq_maxplayers'];
  1164. $data['gq_procents'] = "0 %";
  1165. }
  1166. }
  1167. }
  1168.  
  1169. if($data['gq_numplayers'] > $data['gq_maxplayers'])
  1170. {
  1171. $data['gq_numplayers'] = $data['gq_maxplayers'];
  1172. $data['gq_procents'] = "100 %";
  1173. }
  1174.  
  1175. if($data['num_bots'] > 0)
  1176. {
  1177. $data['gq_bots'] = "(".$data['num_bots'].")";
  1178. }
  1179. }
  1180.  
  1181. if($upid)
  1182. {
  1183. $data['gq_recordplayers'] = $updated_server['recordplayers'];
  1184. }
  1185. else
  1186. {
  1187. $data['gq_recordplayers'] = $server['recordplayers'];
  1188. }
  1189.  
  1190. $data['gq_hostname'] = str_replace(explode(",",$mybb->settings['serversboard_remove_host']), "", $data['gq_hostname']);
  1191.  
  1192. if($server['cuthostname'] > "5")
  1193. {
  1194. if(my_strlen($data['gq_hostname']) > $server['cuthostname'])
  1195. {
  1196. $data['gq_hostname'] = my_substr($data['gq_hostname'], 0, $server['cuthostname']) . "...";
  1197. }
  1198. }
  1199.  
  1200. if($data['gq_mapname'] == "")
  1201. {
  1202. $data['gq_mapname'] = "- - -";
  1203. }
  1204.  
  1205. if($server['new'] == "1")
  1206. {
  1207. $data['gq_new'] = "&nbsp;<span class=\"server\" style=\"background:".$server['new_color'].";\">".$server['new_text']."</span>";
  1208. }
  1209.  
  1210. if($mybb->settings['serversboard_show_barsplayersnum_onoff'] == '1')
  1211. {
  1212. if($data['gq_maxplayers'] > 0)
  1213. {
  1214. $procentpasek = round(($data['gq_numplayers'] / $data['gq_maxplayers'])*100);
  1215. }
  1216. else
  1217. {
  1218. $procentpasek = 0;
  1219. }
  1220.  
  1221. switch($procentpasek)
  1222. {
  1223. case $procentpasek <= 40:
  1224. $full_off_color = 'success';
  1225. break;
  1226. case $procentpasek <= 80:
  1227. $full_off_color = 'warning';
  1228. break;
  1229. case $procentpasek <= 100:
  1230. $full_off_color = 'danger';
  1231. break;
  1232. case $procentpasek > 100:
  1233. $full_off_color = 'danger';
  1234. break;
  1235. default:
  1236. $full_off_color = 'success';
  1237. break;
  1238. }
  1239.  
  1240. /* $data['gq_playersslots'] = "<div style=\"position: relative;\"><div class=\"progress progress-".$full_off_color." progress-striped\" style=\"margin-bottom: 0px;\"><div class=\"bar\" style=\"width:
  1241.  
  1242. ".$procentpasek."%;\"></div><div style=\"position: absolute;width: 100%;\"><center>".$data['gq_bots']." ".$data['gq_numplayers']."/".$data['gq_maxplayers']." - ".$data['gq_procents']."</center></div></div></div>"; */
  1243. $data['gq_playersslots'] = sprintf('<div style="position:relative"><div class="progress progress-%s progress-striped" style="margin-bottom:0"><div class="bar" style="width:%d%%"></div><div style="position:absolute;text-
  1244.  
  1245. align:center;width:100%">%d / %d</div></div></div>', $full_off_color, $procentpasek, $data['gq_numplayers'], $data['gq_maxplayers']);
  1246.  
  1247. }
  1248. else
  1249. {
  1250. /* $data['gq_playersslots'] = $data['gq_bots']." ".$data['gq_numplayers']."/".$data['gq_maxplayers']." - ".$data['gq_procents']; */
  1251. $data['gq_playersslots'] = sprintf('%d / %d', $data['gq_numplayers'], $data['gq_maxplayers']);
  1252. }
  1253.  
  1254. if($server['field_link'] != '' && $server['field_icon'] != '' && $server['field'] != '0')
  1255. {
  1256. $data['gq_field'] = '<a href="'.$server['field_link'].'" target="_blank"><img src="'.$server['field_icon'].'" style="vertical-align: middle;"/></a>';
  1257. }
  1258.  
  1259. $data['gq_page'] = '<a href="serversboard.php?action=more_information&sid='.$server['sid'].'"><img src="'.SERVERSBOARD_IMAGES_PATH.'page.png" style="vertical-align: middle;"/></a>';
  1260.  
  1261. if($server['forumid'] && $server['forumid'] != "-1")
  1262. {
  1263. $data['gq_hostname'] = '<a href="forumdisplay.php?fid='.$server['forumid'].'">'.$data['gq_hostname'].'</a>';
  1264. }
  1265.  
  1266. if($data['gq_type'] == 'arma2')
  1267. {
  1268. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1269.  
  1270. middle;"/></a>';
  1271. if($data['gq_online'] == '1')
  1272. {
  1273. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1274. }
  1275. $data['gq_desc'] = 'Arma 2';
  1276. }
  1277. elseif($data['gq_type'] == 'arma3')
  1278. {
  1279. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1280.  
  1281. middle;"/></a>';
  1282. if($data['gq_online'] == '1')
  1283. {
  1284. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1285. }
  1286. $data['gq_desc'] = 'Arma 3';
  1287. }
  1288. elseif($data['gq_type'] == 'bf3')
  1289. {
  1290. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1291.  
  1292. middle;"/></a>';
  1293. $data['gq_desc'] = 'Battlefield 3';
  1294. }
  1295. elseif($data['gq_type'] == 'bf4')
  1296. {
  1297. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1298.  
  1299. middle;"/></a>';
  1300. $data['gq_desc'] = 'Battlefield 4';
  1301. }
  1302. elseif($data['gq_type'] == 'cod4')
  1303. {
  1304. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1305.  
  1306. middle;"/></a>';
  1307. if($data['gq_online'] == '1')
  1308. {
  1309. $data['gq_join'] = '<a href="xfire:join?game=cod4mp&server='.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align:
  1310.  
  1311. middle;"/></a>';
  1312. }
  1313. $data['gq_desc'] = 'Call of Duty 4';
  1314. }
  1315. elseif($data['gq_type'] == 'cs16')
  1316. {
  1317. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1318.  
  1319. middle;"/></a>';
  1320. if($data['gq_online'] == '1')
  1321. {
  1322. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1323. }
  1324. $data['gq_desc'] = 'Counter-Strike 1.6';
  1325. }
  1326. elseif($data['gq_type'] == 'cscz')
  1327. {
  1328. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1329.  
  1330. middle;"/></a>';
  1331. if($data['gq_online'] == '1')
  1332. {
  1333. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1334. }
  1335. $data['gq_desc'] = 'Counter-Strike Condition Zero';
  1336. }
  1337. elseif($data['gq_type'] == 'css')
  1338. {
  1339. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1340.  
  1341. middle;"/></a>';
  1342. if($data['gq_online'] == '1')
  1343. {
  1344. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1345. }
  1346. $data['gq_desc'] = 'Counter-Strike Source';
  1347. }
  1348. elseif($data['gq_type'] == 'csgo')
  1349. {
  1350. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1351.  
  1352. middle;"/></a>';
  1353. if($data['gq_online'] == '1')
  1354. {
  1355. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1356. }
  1357. $data['gq_desc'] = 'Counter-Strike Global Offensive';
  1358. }
  1359. elseif($data['gq_type'] == 'dayz')
  1360. {
  1361. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1362.  
  1363. middle;"/></a>';
  1364. $data['gq_desc'] = 'DayZ';
  1365. }
  1366. elseif($data['gq_type'] == 'dayzmod')
  1367. {
  1368. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1369.  
  1370. middle;"/></a>';
  1371. $data['gq_desc'] = 'DayZ Mod';
  1372. }
  1373. elseif($data['gq_type'] == 'gmod')
  1374. {
  1375. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1376.  
  1377. middle;"/></a>';
  1378. if($data['gq_online'] == '1')
  1379. {
  1380. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1381. }
  1382. $data['gq_desc'] = "Garry's Mod";
  1383. }
  1384. elseif($data['gq_type'] == 'l4d')
  1385. {
  1386. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1387.  
  1388. middle;"/></a>';
  1389. if($data['gq_online'] == '1')
  1390. {
  1391. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1392. }
  1393. $data['gq_desc'] = 'Left 4 Dead';
  1394. }
  1395. elseif($data['gq_type'] == 'l4d2')
  1396. {
  1397. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1398.  
  1399. middle;"/></a>';
  1400. if($data['gq_online'] == '1')
  1401. {
  1402. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1403. }
  1404. $data['gq_desc'] = 'Left 4 Dead 2';
  1405. }
  1406. elseif($data['gq_type'] == 'minecraft')
  1407. {
  1408. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1409.  
  1410. middle;"/></a>';
  1411. $data['gq_desc'] = 'MineCraft';
  1412. }
  1413. elseif($data['gq_type'] == 'minequery')
  1414. {
  1415. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1416.  
  1417. middle;"/></a>';
  1418. $data['gq_desc'] = 'MineCraft';
  1419. }
  1420. elseif($data['gq_type'] == 'mta')
  1421. {
  1422. if($data['gq_online'] == '1')
  1423. {
  1424. $data['gq_join'] = '<a href="mtasa://'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'mta.png" style="vertical-align: middle;"/></a>';
  1425. }
  1426. $data['gq_desc'] = 'Multi Theft Auto';
  1427. }
  1428. elseif($data['gq_type'] == 'mumble')
  1429. {
  1430. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1431.  
  1432. middle;"/></a>';
  1433. if($data['gq_online'] == '1')
  1434. {
  1435. $data['gq_join'] = '<a href="mumble://'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'mumble.png" style="vertical-align: middle;"/></a>';
  1436. }
  1437. $data['gq_desc'] = 'Mumble';
  1438. }
  1439. elseif($data['gq_type'] == 'samp')
  1440. {
  1441. if($data['gq_online'] == '1')
  1442. {
  1443. $data['gq_join'] = '<a href="samp://'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'samp.png" style="vertical-align: middle;"/></a>';
  1444. }
  1445. $data['gq_desc'] = 'San Andreas Multi Player';
  1446. }
  1447. elseif($data['gq_type'] == 'rust')
  1448. {
  1449. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1450.  
  1451. middle;"/></a>';
  1452. if($data['gq_online'] == '1')
  1453. {
  1454. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1455. }
  1456. $data['gq_desc'] = 'Rust';
  1457. }
  1458. elseif($data['gq_type'] == 'terraria')
  1459. {
  1460. if($data['gq_online'] == '1')
  1461. {
  1462. $ip = explode(":", $server['ip']);
  1463. $data['gq_join'] = '<a href="steam://rungameid/105600// -j '.$ip[0].' -p '.$ip[1].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align:
  1464.  
  1465. middle;"/></a>';
  1466. }
  1467. $data['gq_desc'] = 'Terraria';
  1468. }
  1469. elseif($data['gq_type'] == 'tf2')
  1470. {
  1471. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1472.  
  1473. middle;"/></a>';
  1474. if($data['gq_online'] == '1')
  1475. {
  1476. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1477. }
  1478. $data['gq_desc'] = 'Team Fortress 2';
  1479. }
  1480. elseif($data['gq_type'] == 'tfc')
  1481. {
  1482. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1483.  
  1484. middle;"/></a>';
  1485. if($data['gq_online'] == '1')
  1486. {
  1487. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1488. }
  1489. $data['gq_desc'] = 'Team Fortress Classic';
  1490. }
  1491. elseif($data['gq_type'] == 'teamspeak3')
  1492. {
  1493. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1494.  
  1495. middle;"/></a>';
  1496. if($data['gq_online'] == '1')
  1497. {
  1498. $data['gq_join'] = '<a href="ts3server://'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'teamspeak3.png" style="vertical-align: middle;"/></a>';
  1499. }
  1500. $data['gq_desc'] = 'TeamSpeak 3';
  1501. }
  1502. elseif($data['gq_type'] == 'ventrilo')
  1503. {
  1504. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1505.  
  1506. middle;"/></a>';
  1507. if($data['gq_online'] == '1')
  1508. {
  1509. $data['gq_join'] = '<a href="ventrilo://'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'ventrilo.png" style="vertical-align: middle;"/></a>';
  1510. }
  1511. $data['gq_desc'] = 'Ventrilo';
  1512. }
  1513. elseif($data['gq_type'] == 'wet')
  1514. {
  1515. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1516.  
  1517. middle;"/></a>';
  1518. if($data['gq_online'] == '1')
  1519. {
  1520. // $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1521. }
  1522. $data['gq_desc'] = 'Wolfenstein Enemy Territory';
  1523. }
  1524.  
  1525. eval('$serversboard_row .= "'.$templates->get("serversboard_row").'";');
  1526. $altbg = alt_trow();
  1527.  
  1528. $servers = $servernumber;
  1529. $slots = $slots + $data['gq_maxplayers'];
  1530. $gamers = $gamers + $data['gq_numplayers'];
  1531. $emptyslots = $slots - $gamers;
  1532. $recordgamers = $recordgamers + $data['gq_recordplayers'];
  1533.  
  1534. if($slots == '0')
  1535. {
  1536. $procentgamers = "0 %";
  1537. }
  1538. else
  1539. {
  1540. $procentgamers = round(($gamers / $slots) * 100);
  1541. $procentgamers = $procentgamers." %";
  1542. }
  1543. }
  1544. }
  1545. }
  1546.  
  1547. if($mybb->settings['serversboard_summation_onoff'] == '1')
  1548. {
  1549. eval('$serversboard_summation = "'.$templates->get('serversboard_summation').'";');
  1550. }
  1551.  
  1552. eval('$serversboard = "'.$templates->get('serversboard').'";');
  1553. }
  1554.  
  1555. function serversboard_subpage()
  1556. {
  1557. global $db, $lang, $mybb, $theme, $templates, $header, $footer, $headerinclude, $serversboard, $server, $cache;
  1558. $lang->load("serversboard");
  1559.  
  1560. if(!$mybb->input['action'])
  1561. {
  1562. serversboard();
  1563. add_breadcrumb($lang->serversboard, "serversboard.php");
  1564. eval("\$page = \"".$templates->get("serversboard_subpage")."\";");
  1565. output_page($page);
  1566. }
  1567. elseif($mybb->input['action'] == "more_information")
  1568. {
  1569. $query = $db->simple_select("serversboard", "*", "sid='".$mybb->get_input('sid', 1)."' AND visible=1");
  1570. if(!$db->num_rows($query))
  1571. {
  1572. error($lang->no_that_server);
  1573. }
  1574. else
  1575. {
  1576. serversboard();
  1577. while($server = $db->fetch_array($query))
  1578. {
  1579. switch($server['type'])
  1580. {
  1581. case "arma2":
  1582. $ip = explode(":", $server['ip']);
  1583. $joinport = $ip[1];
  1584. $server['ip'] = $ip[0].":".$server['arma2qport'];
  1585. break;
  1586. case "arma3":
  1587. $ip = explode(":", $server['ip']);
  1588. $joinport = $ip[1];
  1589. $server['ip'] = $ip[0].":".$server['arma3qport'];
  1590. break;
  1591. case "bf3":
  1592. $ip = explode(":", $server['ip']);
  1593. $joinport = $ip[1];
  1594. $server['ip'] = $ip[0].":".$server['bf3qport'];
  1595. break;
  1596. case "bf4":
  1597. $ip = explode(":", $server['ip']);
  1598. $joinport = $ip[1];
  1599. $server['ip'] = $ip[0].":".$server['bf4qport'];
  1600. break;
  1601. case "dayz":
  1602. $ip = explode(":", $server['ip']);
  1603. $joinport = $ip[1];
  1604. $server['ip'] = $ip[0].":".$server['dayzqport'];
  1605. break;
  1606. case "dayzmod":
  1607. $ip = explode(":", $server['ip']);
  1608. $joinport = $ip[1];
  1609. $server['ip'] = $ip[0].":".$server['dayzmodqport'];
  1610. break;
  1611. case "minecraft":
  1612. $ip = explode(":", $server['ip']);
  1613. $joinport = $ip[1];
  1614. $server['ip'] = $ip[0].":".$server['minecraftqport'];
  1615. break;
  1616. case "mta":
  1617. $ip = explode(":", $server['ip']);
  1618. $joinport = $ip[1];
  1619. $server['ip'] = $ip[0].":".$server['mtaqport'];
  1620. break;
  1621. case "mumble":
  1622. $ip = explode(":", $server['ip']);
  1623. $joinport = $ip[1];
  1624. $server['ip'] = $ip[0].":".$server['mumbleqport'];
  1625. break;
  1626. case "rust":
  1627. $ip = explode(":", $server['ip']);
  1628. $joinport = $ip[1];
  1629. $server['ip'] = $ip[0].":".$server['rustqport'];
  1630. break;
  1631. case "terraria":
  1632. $ip = explode(":", $server['ip']);
  1633. $joinport = $ip[1];
  1634. $server['ip'] = $ip[0].":".$server['terrariaqport'];
  1635. break;
  1636. }
  1637.  
  1638. if($server['type'] == "teamspeak3")
  1639. {
  1640. $servers = array(
  1641. array(
  1642. "id" => $server['sid'],
  1643. "type" => $server['type'],
  1644. "host" => $server['ip'],
  1645. "options" => array(
  1646. "master_server_port" => $server['ts3qport'],
  1647. ),
  1648. ),
  1649. );
  1650. }
  1651. else
  1652. {
  1653. $servers = array(
  1654. array(
  1655. "id" => $server['sid'],
  1656. "type" => $server['type'],
  1657. "host" => $server['ip'],
  1658. ),
  1659. );
  1660. }
  1661.  
  1662. $results = array();
  1663.  
  1664. if(TIME_NOW - ($mybb->settings['serversboard_cache_time'] * 60) < $server['lastupdate'])
  1665. {
  1666. $results = @unserialize($server['cache']);
  1667. }
  1668. else
  1669. {
  1670. $gq = new GameQ();
  1671. $gq->addServers($servers);
  1672. $gq->setOption('timeout', 5);
  1673. $gq->setFilter('normalise');
  1674. $gq->setFilter('stripcolor');
  1675. $results = $gq->requestData();
  1676.  
  1677. $update_query = array(
  1678. "cache" => $db->escape_string(serialize($results)),
  1679. "lastupdate" => TIME_NOW,
  1680. );
  1681.  
  1682. $db->update_query("serversboard", $update_query, "sid='".$server['sid']."'");
  1683. }
  1684.  
  1685. foreach((array)$results as $data)
  1686. {
  1687. if($data['gq_type'] == 'arma2')
  1688. {
  1689. $ip= explode(":", $server['ip']);
  1690. $server['ip'] = $ip[0].":".$joinport;
  1691. }
  1692. elseif($data['gq_type'] == 'arma3')
  1693. {
  1694. $ip= explode(":", $server['ip']);
  1695. $server['ip'] = $ip[0].":".$joinport;
  1696. }
  1697. elseif($data['gq_type'] == 'bf3')
  1698. {
  1699. $ip= explode(":", $server['ip']);
  1700. $server['ip'] = $ip[0].":".$joinport;
  1701. }
  1702. elseif($data['gq_type'] == 'bf4')
  1703. {
  1704. $ip= explode(":", $server['ip']);
  1705. $server['ip'] = $ip[0].":".$joinport;
  1706. }
  1707. elseif($data['gq_type'] == 'dayz')
  1708. {
  1709. $ip= explode(":", $server['ip']);
  1710. $server['ip'] = $ip[0].":".$joinport;
  1711. }
  1712. elseif($data['gq_type'] == 'dayzmod')
  1713. {
  1714. $ip= explode(":", $server['ip']);
  1715. $server['ip'] = $ip[0].":".$joinport;
  1716. }
  1717. elseif($data['gq_type'] == 'minecraft')
  1718. {
  1719. $ip= explode(":", $server['ip']);
  1720. $server['ip'] = $ip[0].":".$joinport;
  1721. }
  1722. elseif($data['gq_type'] == 'mta')
  1723. {
  1724. $ip= explode(":", $server['ip']);
  1725. $server['ip'] = $ip[0].":".$joinport;
  1726. }
  1727. elseif($data['gq_type'] == 'mumble')
  1728. {
  1729. $ip= explode(":", $server['ip']);
  1730. $server['ip'] = $ip[0].":".$joinport;
  1731. }
  1732. elseif($data['gq_type'] == 'rust')
  1733. {
  1734. $ip= explode(":", $server['ip']);
  1735. $server['ip'] = $ip[0].":".$joinport;
  1736. }
  1737. elseif($data['gq_type'] == 'terraria')
  1738. {
  1739. $ip= explode(":", $server['ip']);
  1740. $server['ip'] = $ip[0].":".$joinport;
  1741. }
  1742.  
  1743. $data['gq_sid'] = $server['sid'];
  1744. $data['gq_number'] = "<span class=\"server servernumber\">".$server['disporder']."</span>";
  1745. $data['gq_icon'] = "<img src=\"".SERVERSBOARD_IMAGES_PATH."icons/".$data['gq_type'].".png\" style=\"vertical-align: middle;\"/>";
  1746. $data['gq_ip'] = $server['ip'];
  1747. $data['gq_nextupdate'] = nice_time(($mybb->settings['serversboard_cache_time'] * 60) - (TIME_NOW - $server['lastupdate']));
  1748. if($data['gq_nextupdate'] == '' || $data['gq_nextupdate'] == '0')
  1749. {
  1750. $data['gq_nextupdate'] = nice_time(($mybb->settings['serversboard_cache_time'] * 60));
  1751. }
  1752. $data['gq_lastupdate'] = my_date($mybb->settings['dateformat'] . " " . $mybb->settings['timeformat'], $server['lastupdate']);
  1753.  
  1754. if($data['gq_hostname'] == "")
  1755. {
  1756. $data['gq_status'] = "<span class=\"server serveroffline\">".$lang->server_offline."</span>";
  1757. $data['gq_hostname'] = $server['offlinehostname'];
  1758. $data['gq_recordplayers'] = $server['recordplayers'];
  1759. $data['gq_numplayers'] = 0;
  1760. $data['gq_maxplayers'] = 0;
  1761. $data['gq_procents'] = "0 %";
  1762. $data['gq_mapname'] = "- - -";
  1763. $data['gq_nextupdate'] = nice_time(($mybb->settings['serversboard_cache_time'] * 60) - (TIME_NOW - $server['lastupdate']));
  1764. eval('$players_row .= "'.$templates->get("serversboard_more_players_row_empty").'";');
  1765. eval('$players = "'.$templates->get("serversboard_more_players").'";');
  1766. }
  1767. elseif($data['gq_hostname'] != "")
  1768. {
  1769. $data['gq_status'] = "<span class=\"server serveronline\">".$lang->server_online."</span>";
  1770. $data['gq_online'] = '1';
  1771. $data['gq_hostname'] = $data['gq_hostname'];
  1772.  
  1773. if(($data['gq_numplayers'] > $server['recordplayers']) || ($server['recordplayers'] > $data['gq_maxplayers']))
  1774. {
  1775. $updated_server = array(
  1776. "recordplayers" => $db->escape_string($data['gq_numplayers']),
  1777. );
  1778.  
  1779. $upid = $db->update_query("serversboard", $updated_server, "sid = '".$server['sid']."'");
  1780. }
  1781.  
  1782. $data['gq_numplayers'] = $data['gq_numplayers'];
  1783. $data['gq_maxplayers'] = $data['gq_maxplayers'];
  1784. $data['gq_procents'] = round($data['gq_numplayers'] / $data['gq_maxplayers'] * 100)." %";
  1785.  
  1786. if($data['gq_type'] == 'teamspeak3')
  1787. {
  1788. for($d=0;$d<$data['gq_numplayers']; $d++)
  1789. {
  1790. if($data['players'][$d]['gq_name'] == "")
  1791. {
  1792. $data['gq_numplayers'] = '0';
  1793. $data['gq_maxplayers'] = $data['gq_maxplayers'];
  1794. $data['gq_procents'] = '0 %';
  1795. }
  1796. }
  1797. }
  1798.  
  1799. if($data['gq_numplayers'] > $data['gq_maxplayers'])
  1800. {
  1801. $data['gq_numplayers'] = $data['gq_maxplayers'];
  1802. $data['gq_procents'] = '100 %';
  1803. }
  1804.  
  1805. if($data['gq_numplayers'] > '0')
  1806. {
  1807. $statuscount = $data['gq_numplayers'];
  1808. $perpage = 10;
  1809. $page = $mybb->get_input('page', 1);
  1810. if($page > 0)
  1811. {
  1812. $start = ($page-1) * $perpage;
  1813. $pages = $statuscount / $perpage;
  1814. $pages = ceil($pages);
  1815. if($page > $pages || $page <= 0)
  1816. {
  1817. $start = 0;
  1818. $page = 1;
  1819. }
  1820. }
  1821. else
  1822. {
  1823. $start = 0;
  1824. $page = 1;
  1825. }
  1826. $end = $start + $perpage;
  1827. $lower = $start+1;
  1828. $upper = $end;
  1829. if($upper > $statuscount)
  1830. {
  1831. $upper = $statuscount;
  1832. }
  1833. $multipage = multipage($statuscount, $perpage, $page, "serversboard.php?action=more_information&sid={$data['gq_sid']}");
  1834. $data['players'] = array_slice($data['players'], $start, $perpage);
  1835.  
  1836. if($data['gq_numplayers'] > $perpage)
  1837. {
  1838. eval('$serversboard_more_players_multipage = "'.$templates->get("serversboard_more_players_multipage").'";');
  1839. }
  1840.  
  1841. for ($d=0;$d<count($data['players']); $d++)
  1842. {
  1843. $gracz = htmlspecialchars_uni($data['players'][$d]['gq_name']);
  1844. $czas = $data['players'][$d]['time'];
  1845. $czas = nice_time($czas);
  1846. eval('$players_row .= "'.$templates->get("serversboard_more_players_row").'";');
  1847. }
  1848. }
  1849. else
  1850. {
  1851. eval('$players_row .= "'.$templates->get("serversboard_more_players_row_empty").'";');
  1852. }
  1853.  
  1854. eval('$players = "'.$templates->get("serversboard_more_players").'";');
  1855.  
  1856. if($data['num_bots'] > 0)
  1857. {
  1858. $data['gq_bots'] = "(".$data['num_bots'].")";
  1859. }
  1860. }
  1861.  
  1862. if($upid)
  1863. {
  1864. $data['gq_recordplayers'] = $updated_server['recordplayers'];
  1865. }
  1866. else
  1867. {
  1868. $data['gq_recordplayers'] = $server['recordplayers'];
  1869. }
  1870.  
  1871. $data['gq_hostname'] = str_replace(explode(",",$mybb->settings['serversboard_remove_host']), "", $data['gq_hostname']);
  1872.  
  1873. if($server['cuthostname'] > "5")
  1874. {
  1875. if(my_strlen($data['gq_hostname']) > $server['cuthostname'])
  1876. {
  1877. $data['gq_hostname'] = my_substr($data['gq_hostname'], 0, $server['cuthostname']) . "...";
  1878. }
  1879. }
  1880.  
  1881. if($data['gq_mapname'] == "")
  1882. {
  1883. $data['gq_mapname'] = "- - -";
  1884. }
  1885.  
  1886. if($server['new'] == "1")
  1887. {
  1888. $data['gq_new'] = "&nbsp;<span class=\"server\" style=\"background:".$server['new_color'].";\">".$server['new_text']."</span>";
  1889. }
  1890.  
  1891. if($data['gq_type'] == 'arma2')
  1892. {
  1893. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1894.  
  1895. middle;"/></a>';
  1896. if($data['gq_online'] == '1')
  1897. {
  1898. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1899. }
  1900. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/arma2/".strtolower($data['gq_mapname']).".jpg' border='0' alt='".$data['gq_mapname']."'>";
  1901. $data['gq_desc'] = 'Arma 2';
  1902. }
  1903. elseif($data['gq_type'] == 'arma3')
  1904. {
  1905. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1906.  
  1907. middle;"/></a>';
  1908. if($data['gq_online'] == '1')
  1909. {
  1910. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1911. }
  1912. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/arma3/".strtolower($data['gq_mapname']).".jpg' border='0' alt='".$data['gq_mapname']."'>";
  1913. $data['gq_desc'] = 'Arma 3';
  1914. }
  1915. elseif($data['gq_type'] == 'bf3')
  1916. {
  1917. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1918.  
  1919. middle;"/></a>';
  1920. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/bf3/".strtolower($data['gq_mapname']).".jpg' border='0' alt='".$data['gq_mapname']."'>";
  1921. $data['gq_desc'] = 'Battlefield 3';
  1922. }
  1923. elseif($data['gq_type'] == 'bf4')
  1924. {
  1925. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1926.  
  1927. middle;"/></a>';
  1928. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/bf4/".strtolower($data['gq_mapname']).".jpg' border='0' alt='".$data['gq_mapname']."'>";
  1929. $data['gq_desc'] = 'Battlefield 4';
  1930. }
  1931. elseif($data['gq_type'] == 'cod4')
  1932. {
  1933. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1934.  
  1935. middle;"/></a>';
  1936. if($data['gq_online'] == '1')
  1937. {
  1938. $data['gq_join'] = '<a href="xfire:join?game=cod4mp&server='.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1939. }
  1940. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/cod4/".$data['gq_mapname'].".jpg' border='0' alt='".$data['gq_mapname']."'>";
  1941. $data['gq_desc'] = 'Call of Duty 4';
  1942. }
  1943. elseif($data['gq_type'] == 'cs16')
  1944. {
  1945. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1946.  
  1947. middle;"/></a>';
  1948. if($data['gq_online'] == '1')
  1949. {
  1950. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1951. }
  1952. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/cs/".$data['gq_mapname'].".jpg' border='0' alt='".$data['gq_mapname']."'>";
  1953. $data['gq_desc'] = 'Counter-Strike 1.6';
  1954. }
  1955. elseif($data['gq_type'] == 'cscz')
  1956. {
  1957. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1958.  
  1959. middle;"/></a>';
  1960. if($data['gq_online'] == '1')
  1961. {
  1962. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1963. }
  1964. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/czero/".$data['gq_mapname'].".jpg' border='0' alt='".$data['gq_mapname']."'>";
  1965. $data['gq_desc'] = 'Counter-Strike Condition Zero';
  1966. }
  1967. elseif($data['gq_type'] == 'css')
  1968. {
  1969. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1970.  
  1971. middle;"/></a>';
  1972. if($data['gq_online'] == '1')
  1973. {
  1974. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1975. }
  1976. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/css/".$data['gq_mapname'].".jpg' border='0' alt='".$data['gq_mapname']."'>";
  1977. $data['gq_desc'] = 'Counter-Strike Source';
  1978. }
  1979. elseif($data['gq_type'] == 'csgo')
  1980. {
  1981. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1982.  
  1983. middle;"/></a>';
  1984. if($data['gq_online'] == '1')
  1985. {
  1986. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  1987. }
  1988. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/csgo/".$data['gq_mapname'].".jpg' border='0' alt='".$data['gq_mapname']."'>";
  1989. $data['gq_desc'] = 'Counter-Strike Global Offensive';
  1990. }
  1991. elseif($data['gq_type'] == 'dayz')
  1992. {
  1993. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  1994.  
  1995. middle;"/></a>';
  1996. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/dayz/".strtolower($data['gq_mapname']).".jpg' border='0' alt='".$data['gq_mapname']."'>";
  1997. $data['gq_desc'] = 'DayZ';
  1998. }
  1999. elseif($data['gq_type'] == 'dayzmod')
  2000. {
  2001. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  2002.  
  2003. middle;"/></a>';
  2004. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/dayzmod/".strtolower($data['gq_mapname']).".jpg' border='0' alt='".$data['gq_mapname']."'>";
  2005. $data['gq_desc'] = 'DayZ Mod';
  2006. }
  2007. elseif($data['gq_type'] == 'gmod')
  2008. {
  2009. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  2010.  
  2011. middle;"/></a>';
  2012. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/garrysmod/".$data['gq_mapname'].".jpg' border='0' alt='".$data['gq_mapname']."'>";
  2013. if($data['gq_online'] == '1')
  2014. {
  2015. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  2016. }
  2017. $data['gq_desc'] = "Garry's Mod";
  2018. }
  2019. elseif($data['gq_type'] == 'l4d')
  2020. {
  2021. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  2022.  
  2023. middle;"/></a>';
  2024. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/l4d/".$data['gq_mapname'].".jpg' border='0' alt='".$data['gq_mapname']."'>";
  2025. if($data['gq_online'] == '1')
  2026. {
  2027. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  2028. }
  2029. $data['gq_desc'] = 'Left 4 Dead';
  2030. }
  2031. elseif($data['gq_type'] == 'l4d2')
  2032. {
  2033. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  2034.  
  2035. middle;"/></a>';
  2036. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/left4dead2/".$data['gq_mapname'].".jpg' border='0' alt='".$data['gq_mapname']."'>";
  2037. if($data['gq_online'] == '1')
  2038. {
  2039. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  2040. }
  2041. $data['gq_desc'] = 'Left 4 Dead 2';
  2042. }
  2043. elseif($data['gq_type'] == 'minecraft')
  2044. {
  2045. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  2046.  
  2047. middle;"/></a>';
  2048. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/minecraft/".$data['gq_mapname'].".jpg' border='0' alt='".$data['gq_mapname']."'>";
  2049. $data['gq_desc'] = 'MineCraft';
  2050. }
  2051. elseif($data['gq_type'] == 'minequery')
  2052. {
  2053. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  2054.  
  2055. middle;"/></a>';
  2056. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/minecraft/".$data['gq_mapname'].".jpg' border='0' alt='".$data['gq_mapname']."'>";
  2057. $data['gq_desc'] = 'MineCraft';
  2058. }
  2059. elseif($data['gq_type'] == 'mta')
  2060. {
  2061. if($data['gq_online'] == '1')
  2062. {
  2063. $data['gq_join'] = '<a href="mtasa://'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'mta.png" style="vertical-align: middle;"/></a>';
  2064. }
  2065. $data['gq_desc'] = 'Multi Theft Auto';
  2066. }
  2067. elseif($data['gq_type'] == 'mumble')
  2068. {
  2069. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  2070.  
  2071. middle;"/></a>';
  2072. if($data['gq_online'] == '1')
  2073. {
  2074. $data['gq_join'] = '<a href="mumble://'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'mumble.png" style="vertical-align: middle;"/></a>';
  2075. }
  2076. $data['gq_desc'] = 'Mumble';
  2077. }
  2078. elseif($data['gq_type'] == 'samp')
  2079. {
  2080. if($data['gq_online'] == '1')
  2081. {
  2082. $data['gq_join'] = '<a href="samp://'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'samp.png" style="vertical-align: middle;"/></a>';
  2083. }
  2084. $data['gq_desc'] = 'San Andreas Multi Player';
  2085. }
  2086. elseif($data['gq_type'] == 'rust')
  2087. {
  2088. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  2089.  
  2090. middle;"/></a>';
  2091. if($data['gq_online'] == '1')
  2092. {
  2093. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  2094. }
  2095. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/rust/".$data['gq_mapname'].".jpg' border='0' alt='".$data['gq_mapname']."'>";
  2096. $data['gq_desc'] = 'Rust';
  2097. }
  2098. elseif($data['gq_type'] == 'terraria')
  2099. {
  2100. if($data['gq_online'] == '1')
  2101. {
  2102. $ip= explode(":", $server['ip']);
  2103. $data['gq_join'] = '<a href="steam://rungameid/105600// -j '.$ip[0].' -p '.$ip[1].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  2104. }
  2105. $data['gq_desc'] = 'Terraria';
  2106. }
  2107. elseif($data['gq_type'] == 'tf2')
  2108. {
  2109. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  2110.  
  2111. middle;"/></a>';
  2112. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/tf2/".$data['gq_mapname'].".jpg' border='0' alt='".$data['gq_mapname']."'>";
  2113. if($data['gq_online'] == '1')
  2114. {
  2115. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  2116. }
  2117. $data['gq_desc'] = 'Team Fortress 2';
  2118. }
  2119. elseif($data['gq_type'] == 'tfc')
  2120. {
  2121. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  2122.  
  2123. middle;"/></a>';
  2124. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/tfc/".$data['gq_mapname'].".jpg' border='0' alt='".$data['gq_mapname']."'>";
  2125. if($data['gq_online'] == '1')
  2126. {
  2127. $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  2128. }
  2129. $data['gq_desc'] = 'Team Fortress Classic';
  2130. }
  2131. elseif($data['gq_type'] == 'teamspeak3')
  2132. {
  2133. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  2134.  
  2135. middle;"/></a>';
  2136. if($data['gq_online'] == '1')
  2137. {
  2138. $data['gq_join'] = '<a href="ts3server://'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'teamspeak3.png" style="vertical-align: middle;"/></a>';
  2139. }
  2140. $data['gq_desc'] = 'TeamSpeak 3';
  2141. }
  2142. elseif($data['gq_type'] == 'ventrilo')
  2143. {
  2144. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  2145.  
  2146. middle;"/></a>';
  2147. if($data['gq_online'] == '1')
  2148. {
  2149. $data['gq_join'] = '<a href="ventrilo://'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'ventrilo.png" style="vertical-align: middle;"/></a>';
  2150. }
  2151. $data['gq_desc'] = 'Ventrilo';
  2152. }
  2153. elseif($data['gq_type'] == 'wet')
  2154. {
  2155. $data['gq_gt'] = '<a href="http://www.gametracker.com/server_info/'.$data['gq_ip'].'/" target="_blank"><img src="'.SERVERSBOARD_IMAGES_PATH.'gt.png" style="vertical-align:
  2156.  
  2157. middle;"/></a>';
  2158. if($data['gq_online'] == '1')
  2159. {
  2160. // $data['gq_join'] = '<a href="steam://connect/'.$data['gq_ip'].'"/><img src="'.SERVERSBOARD_IMAGES_PATH.'steam.png" style="vertical-align: middle;"/></a>';
  2161. }
  2162. $data['gq_mapscreen'] = "<img src='http://image.www.gametracker.com/images/maps/160x120/et/".strtolower($data['gq_mapname']).".jpg' border='0' alt='".$data['gq_mapname']."'>";
  2163. $data['gq_desc'] = 'Wolfenstein Enemy Territory';
  2164. }
  2165.  
  2166. if($server['field_link'] != '' && $server['field_icon'] != '' && $server['field'] != '0')
  2167. {
  2168. $data['gq_field'] = '<a href="'.$server['field_link'].'" target="_blank"><img src="'.$server['field_icon'].'" style="vertical-align: middle;"/></a>';
  2169. }
  2170.  
  2171. if($data['gq_mapname'] != '- - -')
  2172. {
  2173. if($data['gq_mapscreen'] && $data['gq_online'] == '1')
  2174. {
  2175. $data['gq_mapscreen'] = $data['gq_mapscreen'];
  2176. eval("\$map = \"".$templates->get("serversboard_more_map")."\";");
  2177. }
  2178. }
  2179.  
  2180. if($data['gq_gt'] || $data['gq_join'] || $data['gq_field'])
  2181. {
  2182. eval("\$field = \"".$templates->get("serversboard_more_field")."\";");
  2183. }
  2184.  
  2185. if(!in_array($mybb->user['uid'], explode("," ,$server['buddylist'])) && $mybb->user['uid'] > "0")
  2186. {
  2187. eval("\$buddylist_button = \"".$templates->get("serversboard_more_buddylist_button_joinbuddylist")."\";");
  2188. }
  2189. elseif(in_array($mybb->user['uid'], explode("," ,$server['buddylist'])) && $mybb->user['uid'] > "0")
  2190. {
  2191. eval("\$buddylist_button = \"".$templates->get("serversboard_more_buddylist_button_lowerbuddylist")."\";");
  2192. }
  2193.  
  2194. if($server['owner'] != "")
  2195. {
  2196. if(!is_array($groupscache))
  2197. {
  2198. $groupscache = $cache->read("usergroups");
  2199. }
  2200.  
  2201. $ownerbyname = get_user_by_username(trim($server['owner']));
  2202. $owner = get_user($ownerbyname['uid']);
  2203. $owneravatar = format_avatar(htmlspecialchars_uni($owner['avatar']), $owner['avatardimensions']);
  2204. $ownergroup['title'] = $groupscache[$owner['usergroup']]['title'];
  2205.  
  2206. $owner['username'] = format_name($owner['username'], $owner['usergroup'], $owner['displaygroup']);
  2207. $owner['profilelink'] = build_profile_link($owner['username'], $owner['uid']);
  2208.  
  2209. eval("\$owner = \"".$templates->get("serversboard_more_owner")."\";");
  2210. }
  2211.  
  2212. if($server['buddylist'] != '')
  2213. {
  2214. $query = $db->simple_select('users','uid,username,avatar,usergroup,displaygroup','uid IN('.$server['buddylist'].')');
  2215. while($buddy = $db->fetch_array($query))
  2216. {
  2217. if($buddy['avatar'] == "") $buddy['avatar'] = "images/default_avatar.png";
  2218. $buddy['avatar'] = '<a href="member.php?action=profile&uid=' . $buddy['uid'] . '"><img src="' . $buddy['avatar'] . '" alt="' . $buddy['username'] . '" title="' . $buddy['username'] .
  2219.  
  2220. '" style="width: 40px;height:40px; border: 2px solid #a1a1a1;" /></a>';
  2221. $buddy['username'] = format_name($buddy['username'], $buddy['usergroup'], $buddy['displaygroup']);
  2222. $buddy['profilelink'] = build_profile_link($buddy['username'], $buddy['uid']);
  2223. $buddy['profilelink'] = $buddy['avatar'];
  2224. eval("\$buddylist_row .= \"" . $templates->get("serversboard_more_buddylist_row") . "\";");
  2225. }
  2226. }
  2227. else
  2228. {
  2229. eval("\$buddylist_row .= \"" . $templates->get("serversboard_more_buddylist_row_empty") . "\";");
  2230. }
  2231.  
  2232. eval("\$buddylist = \"".$templates->get("serversboard_more_buddylist")."\";");
  2233. }
  2234. }
  2235. }
  2236.  
  2237. add_breadcrumb($lang->serversboard, "serversboard.php");
  2238. add_breadcrumb($data['gq_hostname'], "serversboard.php?action=more_information&sid=".$server['sid']);
  2239. eval("\$general = \"".$templates->get("serversboard_more_general")."\";");
  2240. eval("\$page = \"".$templates->get("serversboard_more")."\";");
  2241. output_page($page);
  2242. exit;
  2243. }
  2244. elseif($mybb->input['action'] == "joinbuddylist")
  2245. {
  2246. $query = $db->simple_select("serversboard", "*", "sid='".$mybb->get_input('sid', 1)."' AND visible=1");
  2247. if(!$db->num_rows($query))
  2248. {
  2249. error($lang->no_that_server);
  2250. }
  2251.  
  2252. $server = $db->fetch_array($query);
  2253. $buddylist = explode(",", $server['buddylist']);
  2254. array_push($buddylist, $mybb->user['uid']);
  2255. $buddylist = implode(",", $buddylist);
  2256. $buddylist = trim($buddylist, ",");
  2257. $update_query = array(
  2258. "buddylist" => $db->escape_string(''.$buddylist.''),
  2259. );
  2260. $db->update_query("serversboard", $update_query, "sid='".$mybb->input['sid']."'");
  2261. redirect("serversboard.php?action=more_information&sid=".$mybb->input['sid'], $lang->joinbuddylist_success);
  2262. }
  2263. elseif($mybb->input['action'] == "lowerbuddylist")
  2264. {
  2265. $query = $db->simple_select("serversboard", "*", "sid='".$mybb->get_input('sid', 1)."' AND visible=1");
  2266. if(!$db->num_rows($query))
  2267. {
  2268. error($lang->no_that_server);
  2269. }
  2270.  
  2271. $server = $db->fetch_array($query);
  2272. $buddylist = explode(",", $server['buddylist']);
  2273. $key = array_search($mybb->user['uid'], $buddylist);
  2274. unset($buddylist[$key]);
  2275. $buddylist = implode(",", $buddylist);
  2276. $buddylist = trim($buddylist, ",");
  2277. $update_query = array(
  2278. "buddylist" => $db->escape_string(''.$buddylist.''),
  2279. );
  2280. $db->update_query("serversboard", $update_query, "sid='".$mybb->input['sid']."'");
  2281. redirect("serversboard.php?action=more_information&sid=".$mybb->input['sid'], $lang->lowerbuddylist_success);
  2282. }
  2283. }
  2284.  
  2285. function serversboard_fetch_wol_activity_end($user_activity)
  2286. {
  2287. global $db, $mybb, $parameters, $filename, $user, $location, $lang;
  2288. $lang->load("serversboard");
  2289.  
  2290. if(strpos($user_activity['location'], "serversboard.php"))
  2291. {
  2292. if(is_numeric($parameters['sid']))
  2293. {
  2294. $user_activity['activity'] = $lang->serversboard_online_location;
  2295. $user_activity['sid'] = $parameters['sid'];
  2296. }
  2297. else
  2298. {
  2299. $user_activity['activity'] = $lang->serversboard_online_location;
  2300. }
  2301. }
  2302. return $user_activity;
  2303. }
  2304.  
  2305. function serversboard_build_friendly_wol_location_end(&$plugin_array)
  2306. {
  2307. global $db, $mybb, $user_activity, $parameters, $gid_list, $location_name, $conid_list, $lang, $data;
  2308. $lang->load("serversboard");
  2309.  
  2310. require_once SERVERSBOARD_CORE_PATH."gameq.php";
  2311.  
  2312. if($plugin_array['user_activity']['activity'] == $lang->serversboard_online_location)
  2313. {
  2314. if($plugin_array['user_activity']['sid'])
  2315. {
  2316. $sid = $plugin_array['user_activity']['sid'];
  2317. $query = $db->simple_select("serversboard", "*", "sid='$sid'");
  2318. while($server = $db->fetch_array($query))
  2319. {
  2320. $results = @unserialize($server['cache']);
  2321.  
  2322. foreach((array)$results as $data)
  2323. {
  2324.  
  2325. if($data['gq_hostname'] == "")
  2326. {
  2327. $data['gq_hostname'] = $server['offlinehostname'];
  2328. if($mybb->settings['serversboard_remove_host_onoff'] == '1')
  2329. {
  2330. $data['gq_hostname'] = str_replace(explode(",",$mybb->settings['serversboard_remove_host']), "", $data['gq_hostname']);
  2331. }
  2332. if($server['cuthostname'] != "" && $server['cuthostname'] > 1)
  2333. {
  2334. $data['gq_hostname'] = (my_strlen($data['gq_hostname']) > $server['cuthostname']) ? my_substr($data['gq_hostname'], 0, $server['cuthostname']) . "..." : $data
  2335.  
  2336. ['gq_hostname'];
  2337. }
  2338. }
  2339. elseif($data['gq_hostname'] != "")
  2340. {
  2341. $data['gq_hostname'] = $data['gq_hostname'];
  2342. if($mybb->settings['serversboard_remove_host_onoff'] == '1')
  2343. {
  2344. $data['gq_hostname'] = str_replace(explode(",",$mybb->settings['serversboard_remove_host']), "", $data['gq_hostname']);
  2345. }
  2346. if($server['cuthostname'] != "" && $server['cuthostname'] > 1)
  2347. {
  2348. $data['gq_hostname'] = (my_strlen($data['gq_hostname']) > $server['cuthostname']) ? my_substr($data['gq_hostname'], 0, $server['cuthostname']) . "..." : $data
  2349.  
  2350. ['gq_hostname'];
  2351. }
  2352. }
  2353. }
  2354. }
  2355. $plugin_array['location_name'] = $lang->serversboard_online_location_viewing_serversboard_more." <a href=\"serversboard.php?action=more_information&sid=" . $plugin_array['user_activity']['sid'] . "\">".$data
  2356.  
  2357. ['gq_hostname']."</a>";
  2358. }
  2359. else
  2360. {
  2361. $plugin_array['location_name'] = $lang->serversboard_online_location_viewing_serversboard." <a href=\"serversboard.php\">".$lang->serversboard_online_location_serversboard."</a>";
  2362. }
  2363. }
  2364. return $plugin_array;
  2365. }
  2366.  
  2367. function serversboard_global_start()
  2368. {
  2369. global $mybb, $templatelist;
  2370.  
  2371. if($mybb->settings['serversboard_onoff'] != "1")
  2372. {
  2373. return;
  2374. }
  2375.  
  2376. if(in_array(THIS_SCRIPT, explode("," ,"index.php")))
  2377. {
  2378. if(isset($templatelist))
  2379. {
  2380. $templatelist .= ", ";
  2381. }
  2382.  
  2383. $templatelist .= "serversboard_row, serversboard_summation, serversboard,serversboard_index_row_empty";
  2384. }
  2385.  
  2386. if(in_array(THIS_SCRIPT, explode("," ,"serversboard.php")))
  2387. {
  2388. if(isset($templatelist))
  2389. {
  2390. $templatelist .= ", ";
  2391. }
  2392.  
  2393. $templatelist .= "serversboard_row, serversboard_summation, serversboard, serversboard_subpage,";
  2394. $templatelist .= "multipage_page_current, multipage_page, multipage_nextpage, multipage_jump_page, multipage, serversboard_more_players_multipage, serversboard_more_players_row, serversboard_more_players,
  2395.  
  2396. serversboard_more_map, serversboard_more_field, serversboard_more_buddylist_button_lowerbuddylist, serversboard_more_owner, serversboard_more_buddylist_row, serversboard_more_buddylist, serversboard_more_general,
  2397.  
  2398. serversboard_more, serversboard_more_buddylist_button_joinbuddylist, serversboard_more_buddylist_row_empty";
  2399. }
  2400. }
  2401.  
  2402. /********************************************************************************************************************************
  2403. *
  2404. * Say thanks to plugin author - paste link to author website.
  2405. * Please don't remove this code if you didn't make donate.
  2406. * It's the only way to say thanks without donate.
  2407. *
  2408. ********************************************************************************************************************************/
  2409. function serversboard_thanks(&$content)
  2410. {
  2411. global $session, $thanksSupryk, $lang;
  2412. $lang->load("serversboard");
  2413.  
  2414. if(!isset($thanksSupryk) && $session->is_spider)
  2415. {
  2416. $thx = '<div style="margin:auto; text-align:center;">'.$lang->serversboard_thanks.'</div></body>';
  2417. $content = str_replace('</body>', $thx, $content);
  2418. $thanksSupryk = true;
  2419. }
  2420. }
Add Comment
Please, Sign In to add comment