/** * @param template $template * @param string $query_where * @param int $query_limit */ function nws_render(&$template, $query_where = '', $query_limit = 20) { global $config, $user; $announce_list = doquery("SELECT a.*, UNIX_TIMESTAMP(`tsTimeStamp`) AS unix_time, u.authlevel, s.*\n FROM\n {{announce}} AS a\n LEFT JOIN {{survey}} AS s ON s.survey_announce_id = a.idAnnounce\n LEFT JOIN {{users}} AS u ON u.id = a.user_id\n {$query_where}\n ORDER BY `tsTimeStamp` DESC, idAnnounce" . ($query_limit ? " LIMIT {$query_limit}" : '')); $template->assign_var('NEWS_COUNT', db_num_rows($announce_list)); $users = array(); while ($announce = db_fetch($announce_list)) { if ($announce['user_id'] && !isset($users[$announce['user_id']])) { $users[$announce['user_id']] = db_user_by_id($announce['user_id']); } $survey_vote = array('survey_vote_id' => 1); $survey_complete = strtotime($announce['survey_until']) < SN_TIME_NOW; if ($announce['survey_id'] && !empty($user['id'])) { $survey_vote = !$survey_complete ? $survey_vote = doquery("SELECT `survey_vote_id` FROM `{{survey_votes}}` WHERE survey_parent_id = {$announce['survey_id']} AND survey_vote_user_id = {$user['id']} LIMIT 1;", true) : array(); } $announce_exploded = explode("<br /><br />", cht_message_parse($announce['strAnnounce'], false, intval($announce['authlevel']))); $template->assign_block_vars('announces', array('ID' => $announce['idAnnounce'], 'TIME' => date(FMT_DATE_TIME, $announce['unix_time'] + SN_CLIENT_TIME_DIFF), 'ANNOUNCE' => cht_message_parse($announce['strAnnounce'], false, intval($announce['authlevel'])), 'DETAIL_URL' => $announce['detail_url'], 'USER_NAME' => isset($users[$announce['user_id']]) && $users[$announce['user_id']] ? player_nick_render_to_html($users[$announce['user_id']], array('color' => true)) : js_safe_string($announce['user_name']), 'NEW' => $announce['unix_time'] + $config->game_news_actual >= SN_TIME_NOW, 'FUTURE' => $announce['unix_time'] > SN_TIME_NOW, 'SURVEY_ID' => $announce['survey_id'], 'SURVEY_TEXT' => $announce['survey_question'], 'SURVEY_CAN_VOTE' => empty($survey_vote) && !$survey_complete, 'SURVEY_COMPLETE' => $survey_complete, 'SURVEY_UNTIL' => $announce['survey_until'])); foreach ($announce_exploded as $announce_paragraph) { $template->assign_block_vars('announces.paragraph', array('TEXT' => $announce_paragraph)); } if ($announce['survey_id']) { $survey_query = doquery("SELECT survey_answer_text AS `TEXT`, count(DISTINCT survey_vote_id) AS `VOTES`\n FROM `{{survey_answers}}` AS sa\n LEFT JOIN `{{survey_votes}}` AS sv ON sv.survey_parent_answer_id = sa.survey_answer_id\n WHERE sa.survey_parent_id = {$announce['survey_id']}\n GROUP BY survey_answer_id\n ORDER BY survey_answer_id;"); $survey_vote_result = array(); $total_votes = 0; while ($row = db_fetch($survey_query)) { $survey_vote_result[] = $row; $total_votes += $row['VOTES']; } if (empty($survey_vote) && !$survey_complete) { // Can vote $survey_query = doquery("SELECT * FROM {{survey_answers}} WHERE survey_parent_id = {$announce['survey_id']} ORDER BY survey_answer_id;"); while ($row = db_fetch($survey_query)) { $template->assign_block_vars('announces.survey_answers', array('ID' => $row['survey_answer_id'], 'TEXT' => $row['survey_answer_text'])); } } else { // Show result foreach ($survey_vote_result as &$vote_result) { $vote_percent = $total_votes ? $vote_result['VOTES'] / $total_votes * 100 : 0; $vote_result['PERCENT'] = $vote_percent; $vote_result['PERCENT_TEXT'] = round($vote_percent, 1); $vote_result['VOTES'] = pretty_number($vote_result['VOTES']); $template->assign_block_vars('announces.survey_votes', $vote_result); } } // Dirty hack $template->assign_block_vars('announces.total_votes', array('TOTAL_VOTES' => $total_votes)); } } }
function sn_chat_msg_view($template = null) { global $config, $skip_fleet_update, $user, $lang; define('IN_AJAX', true); $skip_fleet_update = true; $history = sys_get_param_str('history'); if (!$history) { $config->array_set('users', $user['id'], 'chat_last_refresh', SN_TIME_MICRO); } $page = 0; $last_message = ''; $alliance = 0; $template_result['.']['chat'] = array(); if (!$history && $config->_MODE != CACHER_NO_CACHE && $config->chat_timeout && SN_TIME_MICRO - $config->array_get('users', $user['id'], 'chat_last_activity') > $config->chat_timeout) { $result['disable'] = true; $template_result['.']['chat'][] = array('TIME' => date(FMT_DATE_TIME, htmlentities(SN_CLIENT_TIME_LOCAL, ENT_QUOTES, 'utf-8')), 'DISABLE' => true); } else { $alliance = sys_get_param_str('ally') && $user['ally_id'] ? $user['ally_id'] : 0; $page_limit = 20; // Chat rows Limit $where_add = ''; $last_message = 0; if ($history) { $rows = doquery("SELECT count(1) AS CNT FROM {{chat}} WHERE ally_id = '{$alliance}';", true); $page_count = ceil($rows['CNT'] / $page_limit); for ($i = 0; $i < $page_count; $i++) { $template_result['.']['page'][] = array('NUMBER' => $i); } $page = min($page_count, max(0, sys_get_param_int('sheet'))); } else { $last_message = sys_get_param_id('last_message'); $where_add = $last_message ? "AND `messageid` > {$last_message}" : ''; } $start_row = $page * $page_limit; $query = doquery("SELECT c.*, u.authlevel\n FROM\n {{chat}} AS c\n LEFT JOIN {{users}} AS u ON u.id = c.chat_message_sender_id\n WHERE c.chat_message_recipient_id IS NULL AND c.ally_id = '{$alliance}' {$where_add} ORDER BY messageid DESC LIMIT {$start_row}, {$page_limit};"); while ($chat_row = db_fetch($query)) { // Little magik here - to retain HTML codes from DB and stripping HTML codes from nick $chat_row['user'] = player_nick_render_to_html($chat_row['user']); $nick_stripped = htmlentities(strip_tags($chat_row['user']), ENT_QUOTES, 'utf-8'); $nick = str_replace(strip_tags($chat_row['user']), $nick_stripped, $chat_row['user']); if (!$history) { $nick = "<span style=\"cursor: pointer;\" onclick=\"addSmiley('({$nick_stripped})');\">{$nick}</span>"; } $template_result['.']['chat'][] = array('TIME' => cht_message_parse(date(FMT_DATE_TIME, $chat_row['timestamp'] + SN_CLIENT_TIME_DIFF)), 'NICK' => $nick, 'TEXT' => cht_message_parse($chat_row['message'], false, intval($chat_row['authlevel']))); $last_message = max($last_message, $chat_row['messageid']); } } $template_result['.']['chat'] = array_reverse($template_result['.']['chat']); $template_result += array('PAGE' => $page, 'ALLY' => $alliance, 'HISTORY' => $history); $template = gettemplate('chat_messages', $template); $template->assign_recursive($template_result); if ($history) { display($template, "{$lang['chat_history']} - {$lang[$alliance ? 'chat_ally' : 'chat_common']}", true, '', false, true); } else { $result['last_message'] = $last_message; ob_start(); displayP($template); $result['html'] = ob_get_contents(); ob_end_clean(); print json_encode($result); } die; }
$blitz_prize_places_actual--; $reward = $blitz_prize_dark_matter_actual - $row['blitz_reward_dark_matter']; pdump("{{$row['id']}} {$row['blitz_name']}, Place {$row['blitz_place']}, Prize places {$blitz_prize_places_actual}, Prize {$reward}", $row['id']); if ($reward) { rpg_points_change($row['user_id'], RPG_BLITZ, $reward, sprintf($lang['sys_blitz_reward_log_message'], $row['blitz_place'], $row['blitz_name'])); doquery("UPDATE {{blitz_registrations}} SET blitz_reward_dark_matter = blitz_reward_dark_matter + ({$reward}) WHERE id = {$row['id']} AND `round_number` = {$current_round};"); } if (!$blitz_prize_places_actual || $blitz_prize_dark_matter_actual < 1000) { break; } } sn_db_transaction_commit(); } } } $template = gettemplate('blitz_register', true); $player_registered = false; $query = doquery("SELECT u.*, br.blitz_name, br.blitz_password, br.blitz_place, br.blitz_status, br.blitz_points, br.blitz_reward_dark_matter\n FROM {{blitz_registrations}} AS br\n JOIN {{users}} AS u ON u.id = br.user_id\n WHERE br.`round_number` = {$current_round}\n order by `blitz_place`, `timestamp`;"); while ($row = db_fetch($query)) { $tpl_player_data = array('NAME' => player_nick_render_to_html($row, array('icons' => true, 'color' => true, 'ally' => true))); if ($config->game_blitz_register == BLITZ_REGISTER_DISCLOSURE_NAMES) { // Вот так хитро, что бы не было не единого шанса попадания на страницу данных об игроках Блиц-сервера до закрытия раунда $tpl_player_data = array_merge($tpl_player_data, array('ID' => $row['id'], 'BLITZ_NAME' => $row['blitz_name'], 'BLITZ_PLACE' => $row['blitz_place'], 'BLITZ_POINTS' => $row['blitz_points'], 'BLITZ_REWARD_DARK_MATTER' => $row['blitz_reward_dark_matter'])); } $template->assign_block_vars('registrations', $tpl_player_data); if ($row['id'] == $user['id']) { $player_registered = $row; } } $template->assign_vars(array('GAME_BLITZ' => $config->game_mode == GAME_BLITZ, 'REGISTRATION_OPEN' => $config->game_blitz_register == BLITZ_REGISTER_OPEN, 'REGISTRATION_CLOSED' => $config->game_blitz_register == BLITZ_REGISTER_CLOSED, 'REGISTRATION_SHOW_LOGIN' => $config->game_blitz_register == BLITZ_REGISTER_SHOW_LOGIN, 'REGISTRATION_DISCLOSURE_NAMES' => $config->game_blitz_register == BLITZ_REGISTER_DISCLOSURE_NAMES, 'PLAYER_REGISTERED' => !empty($player_registered), 'BLITZ_NAME' => $player_registered['blitz_name'], 'BLITZ_PASSWORD' => $player_registered['blitz_password'], 'BLITZ_GENERATED' => implode(';', $blitz_generated), 'BLITZ_RESULT' => implode(';', $blitz_result), 'BLITZ_PRIZE_PLAYERS_ACTIVE' => $blitz_prize_players_active, 'BLITZ_PRIZE_DARK_MATTER' => $blitz_prize_dark_matter, 'BLITZ_PRIZE_PLACES' => $blitz_prize_places)); display($template, $lang['sys_blitz_global_button']);
$pages = array(); for ($i = 0; $i <= $page_count; $i++) { $first_element = $i * 100 + 1; $last_element = $first_element + 99; $pages[$first_element] = array('header' => "{$first_element}-{$last_element}"); } $range = $range > $record_count ? $record_count : $range; stat_tpl_assign($template, $range, 'range', $pages, $sn_group_stat_common); while ($row = db_fetch($query)) { $row_stat = array('ID' => $row['id'], 'RANK' => $row['rank'], 'RANK_CHANGE' => $row['rank_old'] ? $row['rank_old'] - $row['rank'] : 0, 'POINTS' => pretty_number($row['points'])); //pdump($row); if ($who == 1) { $row_stat['ALLY_NAME'] = $row['ally_name']; $row_stat['ALLY_ID'] = $row['ally_id']; empty($row['username']) ? $row['username'] = $row['name'] : false; $row_stat['NAME'] = player_nick_render_to_html($row, array('icons' => empty($source), 'color' => empty($source))); // $row_stat['NAME'] = player_nick_render_to_html(array( // 'id' => $row['id'], // // TODO - Добавлять реальное имя игрока на Блице для закрытого раунда // 'username' => $row['name'], // 'gender' => isset($row['gender']) ? $row['gender'] : GENDER_UNKNOWN, // // 'gender', // // 'race', // // 'ally_tag', // ), array('icons' => empty($source), 'color' => empty($source))); } else { $row_stat['MEMBERS'] = $row['ally_members']; $row_stat['POINTS_PER_MEMBER'] = pretty_number(floor($row['points'] / $row['ally_members'])); $row_stat['NAME'] = $row['name']; } $template->assign_block_vars('stat', $row_stat);
function sn_imperator_view($template = null) { global $template_result, $config, $lang, $user; $stat_fields = array('stat_date' => 'STAT_DATE', 'total_rank' => 'TOTAL_RANK', 'total_points' => 'TOTAL_POINTS', 'tech_rank' => 'TECH_RANK', 'tech_points' => 'TECH_POINTS', 'build_rank' => 'BUILD_RANK', 'build_points' => 'BUILD_POINTS', 'defs_rank' => 'DEFS_RANK', 'defs_points' => 'DEFS_POINTS', 'fleet_rank' => 'FLEET_RANK', 'fleet_points' => 'FLEET_POINTS', 'res_rank' => 'RES_RANK', 'res_points' => 'RES_POINTS'); $user_id = sys_get_param_id('int_user_id', $user['id']); $user_data = ($same_user = $user_id == $user['id']) ? $user : db_user_by_id($user_id); // if($user_id == $user['id']) { // $user_data = &$user; // $same_user = true; // } else { // $user_data = db_user_by_id($user_id); // $same_user = false; // } if (!$user_data) { message($lang['imp_imperator_none'], $lang['sys_error'], 'index.php', 10); die; } $template = gettemplate('imperator', $template); $StatRecord = doquery("SELECT * FROM {{statpoints}} WHERE `stat_type` = 1 AND `stat_code` = 1 AND `id_owner` = {$user_id};", true); $stat_array = array(); $query = doquery("SELECT * FROM {{statpoints}} WHERE `stat_type` = 1 AND `id_owner` = {$user_id} ORDER BY `stat_code` DESC;"); global $link; $stat_count = db_affected_rows($link); while ($row = db_fetch($query)) { foreach ($stat_fields as $field_db_name => $field_template_name) { // $stat_count - $row['stat_code'] - для реверсирования ID статы в JS $stat_array[$field_template_name]['DATA'][$stat_count - $row['stat_code']] = $row[$field_db_name]; } } $stat_array_date = $stat_array['STAT_DATE']; foreach ($stat_array_date['DATA'] as $key => $value) { $template->assign_block_vars('stat_date', array('ID' => $key, 'VALUE' => $value, 'TEXT' => date(FMT_DATE_TIME, $value))); } // $stat_count = count($stat_array_date['DATA']); // pdump($stat_array_date); unset($stat_array['STAT_DATE']); $template_data = array(); foreach ($stat_array as $stat_type => &$stat_type_data) { $reverse_min_max = strpos($stat_type, '_RANK') !== false; $stat_type_data['MIN'] = $reverse_min_max ? max($stat_type_data['DATA']) : min($stat_type_data['DATA']); $stat_type_data['MAX'] = $reverse_min_max ? min($stat_type_data['DATA']) : max($stat_type_data['DATA']); $stat_type_data['AVG'] = average($stat_type_data['DATA']); foreach ($stat_type_data['DATA'] as $key => $value) { // $stat_type_data['PERCENT'][$key] = $stat_type_data['MAX'] - $value ? ($stat_type_data['MAX'] - $stat_type_data['MIN']) / ($stat_type_data['MAX'] - $value) : 100; $stat_type_data['PERCENT'][$key] = ($stat_type_data['MAX'] - $value ? ($value - $stat_type_data['MIN']) / ($stat_type_data['MAX'] - $stat_type_data['MIN']) : 1) * 100; $template_data[$stat_type][$key]['ID'] = $key; $template_data[$stat_type][$key]['VALUE'] = $value; $template_data[$stat_type][$key]['DELTA'] = $reverse_min_max ? $stat_type_data['MIN'] - $value : $value - $stat_type_data['MAX']; $template_data[$stat_type][$key]['PERCENT'] = $stat_type_data['PERCENT'][$key]; //$template_data[$stat_type][$key]['PERCENT'] = $key ? $stat_type_data['PERCENT'][$key] : 50; // TODO DEBUG } } // pdump($stat_array['RES_POINTS']); foreach ($template_data as $stat_type => $stat_type_data) { $template->assign_block_vars('stat', array('TYPE' => $stat_type, 'TEXT' => $lang['imp_stat_types'][$stat_type], 'MIN' => $stat_array[$stat_type]['MIN'], 'MAX' => $stat_array[$stat_type]['MAX'], 'AVG' => $stat_array[$stat_type]['AVG'])); foreach ($stat_type_data as $stat_entry) { $template->assign_block_vars('stat.entry', $stat_entry); } } // pdump($template_data); if ($same_user) { rpg_level_up($user, RPG_STRUCTURE); rpg_level_up($user, RPG_RAID); rpg_level_up($user, RPG_TECH); rpg_level_up($user, RPG_EXPLORE); /* // ----------------------------------------------------------------------------------------------- // News Frame ... if ($config->game_news_overview) { nws_render($template, "WHERE UNIX_TIMESTAMP(`tsTimeStamp`)<=" . SN_TIME_NOW . "", $config->game_news_overview); } */ } $template->assign_vars(array('USERS_TOTAL' => $config->users_amount, 'USER_ID' => $user_id, 'user_username' => player_nick_render_to_html($user_data, true), 'USER_AVATAR' => $user_data['avatar'], 'VACATION' => $user_data['vacation'], 'GENDER_TEXT' => $lang['sys_gender_list'][$user_data['gender']], 'NEW_MESSAGES' => $user_data['new_message'], 'REGISTRATION_DATE' => date(FMT_DATE_TIME, $user_data['register_time']), 'builder_xp' => pretty_number($user_data['xpminier']), 'builder_lvl' => pretty_number($user_data['lvl_minier']), 'builder_lvl_st' => pretty_number(rpg_get_miner_xp($user_data['lvl_minier'])), 'builder_lvl_up' => pretty_number(rpg_get_miner_xp($user_data['lvl_minier'] + 1)), 'raid_xp' => pretty_number($user_data['xpraid']), 'raid_lvl' => pretty_number($user_data['lvl_raid']), 'raid_lvl_up' => pretty_number(rpg_get_raider_xp($user_data['lvl_raid'] + 1)), 'raids' => pretty_number($user_data['raids']), 'raidswin' => pretty_number($user_data['raidswin']), 'raidsloose' => pretty_number($user_data['raidsloose']), 'tech_xp' => pretty_number($user_data['player_rpg_tech_xp']), 'tech_lvl' => pretty_number($user_data['player_rpg_tech_level']), 'tech_lvl_st' => pretty_number(rpg_get_tech_xp($user_data['player_rpg_tech_level'])), 'tech_lvl_up' => pretty_number(rpg_get_tech_xp($user_data['player_rpg_tech_level'] + 1)), 'explore_xp' => pretty_number($user_data['player_rpg_explore_xp']), 'explore_lvl' => pretty_number($user_data['player_rpg_explore_level']), 'explore_lvl_st' => pretty_number(rpg_get_explore_xp($user_data['player_rpg_explore_level'])), 'explore_lvl_up' => pretty_number(rpg_get_explore_xp($user_data['player_rpg_explore_level'] + 1)), 'build_points' => pretty_number($StatRecord['build_points']), 'tech_points' => pretty_number($StatRecord['tech_points']), 'fleet_points' => pretty_number($StatRecord['fleet_points']), 'defs_points' => pretty_number($StatRecord['defs_points']), 'res_points' => pretty_number($StatRecord['res_points']), 'total_points' => pretty_number($StatRecord['total_points']), 'user_rank' => $StatRecord['total_rank'], 'RANK_DIFF' => $StatRecord['total_old_rank'] - $StatRecord['total_rank'], 'STAT_COUNT' => $stat_count, 'STAT_SPAN' => $stat_count + 1, 'SAME_USER' => $same_user)); return parsetemplate($template); }
} foreach ($cached['users'] as $PlanetUser) { if (!$PlanetUser) { continue; } $user_ally = $cached['allies'][$PlanetUser['ally_id']]; if (isset($user_ally)) { if ($PlanetUser['id'] == $user_ally['ally_owner']) { $user_rank_title = $user_ally['ally_owner_range']; } else { $ally_ranks = explode(';', $user_ally['ranklist']); list($user_rank_title) = explode(',', $ally_ranks[$PlanetUser['ally_rank_id']]); } } else { $user_rank_title = ''; } $birthday_array = $PlanetUser['user_birthday'] ? date_parse($PlanetUser['user_birthday']) : array(); $template->assign_block_vars('users', array('ID' => $PlanetUser['id'], 'NAME' => player_nick_render_to_html($PlanetUser, true), 'NAME_JS' => js_safe_string(player_nick_render_to_html($PlanetUser, true)), 'RANK' => in_array($PlanetUser['id'], $user_skip_list) ? '-' : $PlanetUser['total_rank'], 'AVATAR' => $PlanetUser['avatar'], 'ALLY_ID' => $PlanetUser['ally_id'], 'ALLY_TAG' => js_safe_string($user_ally['ally_tag']), 'ALLY_TITLE' => str_replace(' ', ' ', js_safe_string($user_rank_title)))); } foreach ($cached['allies'] as $PlanetAlly) { if ($PlanetAlly) { $template->assign_block_vars('alliances', array('ID' => $PlanetAlly['id'], 'NAME_JS' => js_safe_string($PlanetAlly['ally_name']), 'MEMBERS' => $PlanetAlly['ally_members'], 'URL' => $PlanetAlly['ally_web'], 'RANK' => $PlanetAlly['total_rank'], 'AVATAR' => $PlanetAlly['ally_image'])); } } $is_missile = $user["settings_mis"] && $CurrentMIP > 0 && $uni_galaxy == $CurrentGalaxy && $uni_system >= $CurrentSystem - $MissileRange && $uni_system <= $CurrentSystem + $MissileRange; $colspan = $user['settings_esp'] + $user['settings_wri'] + $user['settings_bud'] + $is_missile; $ally_count = doquery("SELECT COUNT(*) AS ally_count FROM {{alliance}};", '', true); $galaxy_name = doquery("select `universe_name` from `{{universe}}` where `universe_galaxy` = {$uni_galaxy} and `universe_system` = 0 limit 1;", '', true); $system_name = doquery("select `universe_name` from `{{universe}}` where `universe_galaxy` = {$uni_galaxy} and `universe_system` = {$uni_system} limit 1;", '', true); $template->assign_vars(array('rows' => $Result, 'userCount' => $config->users_amount, 'ALLY_COUNT' => $ally_count['ally_count'], 'EXPIDITION' => $config->game_maxPlanet + 1, 'curPlanetID' => $planetrow['id'], 'curPlanetG' => $planetrow['galaxy'], 'curPlanetS' => $planetrow['system'], 'curPlanetP' => $planetrow['planet'], 'curPlanetPT' => $planetrow['planet_type'], 'deathStars' => mrc_get_level($user, $planetrow, SHIP_HUGE_DEATH_STAR, false, true), 'galaxy' => $uni_galaxy, 'system' => $uni_system, 'planet' => $planet, 'MIPs' => round($CurrentMIP), 'MODE' => $mode, 'planets' => $planetcount, 'SPs' => pretty_number(mrc_get_level($user, $planetrow, SHIP_SPY, false, true)), 'SHOW_ADMIN' => SHOW_ADMIN, 'fleet_count' => $maxfleet_count, 'fleet_max' => $fleetmax, 'ALLY_ID' => $user['ally_id'], 'USER_ID' => $user['id'], 'ACT_SPY' => $user['settings_esp'], 'ACT_SPIO' => $user['spio_anz'], 'ACT_WRITE' => $user['settings_wri'], 'ACT_FRIEND' => $user['settings_bud'], 'ACT_STATISTICS' => $user['settings_statistics'], 'ACT_INFO' => $user['settings_info'], 'opt_uni_avatar_user' => $user['opt_uni_avatar_user'], 'opt_uni_avatar_ally' => $user['opt_uni_avatar_ally'], 'opt_uni_tooltip_time' => $user['settings_tooltiptime'], 'ACT_MISSILE' => $is_missile, 'PLANET_PHALANX' => $HavePhalanx && $uni_galaxy == $CurrentGalaxy && $uni_system >= $CurrentSystem - $PhalanxRange && $uni_system <= $CurrentSystem + $PhalanxRange, 'PAGE_HINT' => $lang['gal_sys_hint'], 'PLANET_RECYCLERS' => $planet_recyclers_orbiting, 'PLANET_RECYCLERS_TEXT' => pretty_number($planet_recyclers_orbiting), 'GALAXY_NAME' => $galaxy_name['universe_name'], 'SYSTEM_NAME' => $system_name['universe_name'], 'COL_SPAN' => $colspan + 9, 'COL_SPAN_PLUS' => $colspan + 3)); display(parsetemplate($template), $lang['sys_universe'], true, '', false);