diff --git a/onlinelist.php b/onlinelist.php index d03369a..859a2ca 100644 --- a/onlinelist.php +++ b/onlinelist.php @@ -1,20 +1,19 @@ - +Who is online? - true, + "days" => 14, + "cache" => 300 +); // Returns a list of players online $array = false; $loadFlags = ($config['country_flags']['enabled'] && $config['country_flags']['onlinelist']) ? true : false; $loadOutfits = ($config['show_outfits']['onlinelist']) ? true : false; -if ($config['ServerEngine'] != 'OTHIRE') { - if ($config['client'] < 780) { - $outfitQuery = ($loadOutfits) ? ", `p`.`lookbody` AS `body`, `p`.`lookfeet` AS `feet`, `p`.`lookhead` AS `head`, `p`.`looklegs` AS `legs`, `p`.`looktype` AS `type`" : ""; - } else { - $outfitQuery = ($loadOutfits) ? ", `p`.`lookbody` AS `body`, `p`.`lookfeet` AS `feet`, `p`.`lookhead` AS `head`, `p`.`looklegs` AS `legs`, `p`.`looktype` AS `type`, `p`.`lookaddons` AS `addons`" : ""; - } -} else { +if ($config['client'] < 780) { $outfitQuery = ($loadOutfits) ? ", `p`.`lookbody` AS `body`, `p`.`lookfeet` AS `feet`, `p`.`lookhead` AS `head`, `p`.`looklegs` AS `legs`, `p`.`looktype` AS `type`" : ""; +} else { + $outfitQuery = ($loadOutfits) ? ", `p`.`lookbody` AS `body`, `p`.`lookfeet` AS `feet`, `p`.`lookhead` AS `head`, `p`.`looklegs` AS `legs`, `p`.`looktype` AS `type`, `p`.`lookaddons` AS `addons`" : ""; } // Small 30 seconds players_online cache. @@ -22,11 +21,7 @@ $cache = new Cache('engine/cache/onlinelist'); $cache->setExpiration(30); if ($cache->hasExpired()) { // Load online list data from SQL - if ($config['ServerEngine'] == 'TFS_10') { - $array = ($loadFlags === true) ? mysql_select_multi("SELECT `p`.`name` AS `name`, `p`.`level` AS `level`, `p`.`vocation` AS `vocation`, `g`.`name` AS `gname`, `za`.`flag` AS `flag` $outfitQuery FROM `players_online` AS `o` INNER JOIN `players` AS `p` ON `o`.`player_id` = `p`.`id` INNER JOIN `znote_accounts` AS `za` ON `p`.`account_id` = `za`.`account_id` LEFT JOIN `guild_membership` AS `gm` ON `o`.`player_id` = `gm`.`player_id` LEFT JOIN `guilds` AS `g` ON `gm`.`guild_id` = `g`.`id`;") : mysql_select_multi("SELECT `p`.`name` AS `name`, `p`.`level` AS `level`, `p`.`vocation` AS `vocation`, `g`.`name` AS `gname` $outfitQuery FROM `players_online` AS `o` INNER JOIN `players` AS `p` ON `o`.`player_id` = `p`.`id` LEFT JOIN `guild_membership` AS `gm` ON `o`.`player_id` = `gm`.`player_id` LEFT JOIN `guilds` AS `g` ON `gm`.`guild_id` = `g`.`id`;"); - } else { - $array = ($loadFlags === true) ? mysql_select_multi("SELECT `p`.`name` as `name`, `p`.`level` as `level`, `p`.`vocation` as `vocation`, `g`.`name` as `gname`, `za`.`flag` as `flag` $outfitQuery FROM `players` as `p` INNER JOIN `znote_accounts` as `za` ON `za`.`account_id` = `p`.`account_id` LEFT JOIN `guild_ranks` as `gr` ON `gr`.`id` = `p`.`rank_id` LEFT JOIN `guilds` as `g` ON `gr`.`guild_id` = `g`.`id` WHERE `p`.`online` = '1' ORDER BY `p`.`name` DESC;") : mysql_select_multi("SELECT `p`.`name` as `name`, `p`.`level` as `level`, `p`.`vocation` as `vocation`, `g`.`name` as `gname` $outfitQuery FROM `players` as `p` LEFT JOIN `guild_ranks` as `gr` ON `gr`.`id` = `p`.`rank_id` LEFT JOIN `guilds` as `g` ON `gr`.`guild_id` = `g`.`id` WHERE `p`.`online` = '1' ORDER BY `p`.`name` DESC;"); - } + $array = ($loadFlags === true) ? mysql_select_multi("SELECT `p`.`name` AS `name`, `p`.`level` AS `level`, `p`.`vocation` AS `vocation`, `g`.`name` AS `gname`, `za`.`flag` AS `flag` $outfitQuery FROM `players_online` AS `o` INNER JOIN `players` AS `p` ON `o`.`player_id` = `p`.`id` INNER JOIN `znote_accounts` AS `za` ON `p`.`account_id` = `za`.`account_id` LEFT JOIN `guild_membership` AS `gm` ON `o`.`player_id` = `gm`.`player_id` LEFT JOIN `guilds` AS `g` ON `gm`.`guild_id` = `g`.`id`;") : mysql_select_multi("SELECT `p`.`name` AS `name`, `p`.`level` AS `level`, `p`.`vocation` AS `vocation`, `g`.`name` AS `gname` $outfitQuery FROM `players_online` AS `o` INNER JOIN `players` AS `p` ON `o`.`player_id` = `p`.`id` LEFT JOIN `guild_membership` AS `gm` ON `o`.`player_id` = `gm`.`player_id` LEFT JOIN `guilds` AS `g` ON `gm`.`guild_id` = `g`.`id`;"); // End loading data from SQL $cache->setContent($array); $cache->save(); @@ -35,9 +30,63 @@ if ($cache->hasExpired()) { } // End cache -if (!empty($array) && $array !== false) { - ?> +// 5 minute logout history cache +if ($history["enabled"]) { + $time = time(); + $cache = new Cache('engine/cache/onlinelist_rec'); + $cache->setExpiration($history['cache']); + if ($cache->hasExpired()) { + // Load online list data from SQL + $recents = ($loadFlags === true) ? mysql_select_multi(" + SELECT + `p`.`name` AS `name`, + `p`.`level` AS `level`, + `p`.`vocation` AS `vocation`, + `p`.`lastlogout`, + `g`.`name` AS `gname`, + `za`.`flag` AS `flag` + $outfitQuery + FROM `players` AS `p` + INNER JOIN `znote_accounts` AS `za` + ON `p`.`account_id` = `za`.`account_id` + LEFT JOIN `guild_membership` AS `gm` + ON `p`.`id` = `gm`.`player_id` + LEFT JOIN `guilds` AS `g` + ON `gm`.`guild_id` = `g`.`id` + WHERE `p`.`lastlogout` >= $time - ({$history['days']} * 24 * 60 * 60) + ORDER BY `p`.`lastlogout` DESC; + ") : mysql_select_multi(" + SELECT + `p`.`name` AS `name`, + `p`.`level` AS `level`, + `p`.`vocation` AS `vocation`, + `p`.`lastlogout`, + `g`.`name` AS `gname` + $outfitQuery + FROM `players` AS `p` + LEFT JOIN `guild_membership` AS `gm` + ON `p`.`id` = `gm`.`player_id` + LEFT JOIN `guilds` AS `g` + ON `gm`.`guild_id` = `g`.`id` + WHERE `p`.`lastlogout` >= $time - ({$history['days']} * 24 * 60 * 60) + ORDER BY `p`.`lastlogout` DESC; + "); + // End loading data from SQL + $cache->setContent($recents); + $cache->save(); + } else { + $recents = $cache->load(); + } +} +// End cache +?> +

Who is online?

+ +

Currently online:

Outfit"; ?> @@ -47,12 +96,12 @@ if (!empty($array) && $array !== false) { 1) ? ' ' : ''; $guildname = (!empty($value['gname'])) ? ''. $value['gname'] .'' : ''; ?> - + @@ -62,13 +111,53 @@ if (!empty($array) && $array !== false) { + endforeach; ?>
Vocation:
img
- +

Nobody is online.

+ +

Online past days:

+ + + Outfit"; ?> + + + + + + 1) ? ' ' : ''; + $guildname = (!empty($value['gname'])) ? ''. $value['gname'] .'' : ''; + ?> + + + + + + + + + + +
Name:Guild:Level:Logout [days] - date
img
+ +

Nobody has logged in past days.

+ - + +include 'layout/overall/footer.php'; ?>