'filt_field' => '`rep`.`name`', 'order' => array( '`rep`.`curr_rep` DESC' ), 'order_d' => array( '`rep`.`curr_rep` ASC' ), 'value' => array($memberlist,'guild_rep'), 'display' => $addon['config']['member_level'], ); */ $FIELD['zone'] = array('lang_field' => 'lastzone', 'order' => array('`members`.`zone` ASC'), 'order_d' => array('`members`.`zone` DESC'), 'display' => $addon['config']['member_zone']); $FIELD['note'] = array('lang_field' => 'note', 'order' => array('nisnull', '`members`.`note` ASC'), 'order_d' => array('nisnull', '`members`.`note` DESC'), 'value' => 'note_value', 'display' => $addon['config']['member_note']); $FIELD['officer_note'] = array('lang_field' => 'onote', 'order' => array('onisnull', '`members`.`note` ASC'), 'order_d' => array('onisnull', '`members`.`note` DESC'), 'value' => 'note_value', 'display' => $addon['config']['member_onote']); foreach ($members_list_fields as $pifield => $data) { foreach ($data as $name => $d) { $FIELD[$name] = $d; } } $memberlist->prepareData($mainQuery, $where, $group, $order_first, $order_last, $FIELD, 'memberslist'); // Start output if ($addon['config']['member_motd'] == 1) { echo $memberlist->makeMotd(); } if ($addon['config']['member_hslist'] == 1 || $addon['config']['member_pvplist'] == 1) { echo "<table style=\"width:100%\">\n <tr>\n"; if ($addon['config']['member_hslist'] == 1) { echo ' <td valign="top">'; include_once ROSTER_LIB . 'hslist.php'; echo generateHsList(); echo " </td>\n"; } if (active_addon('pvplog') && $addon['config']['honor_pvplist'] == 1) { echo ' <td valign="top">'; include_once ROSTER_ADDONS . 'pvplog' . DIR_SEP . 'inc' . DIR_SEP . 'pvplist.php';
include_once $addon['inc_dir'] . 'memberslist.php'; $memberlist = new memberslist(); $mainQuery = 'SELECT ' . '`members`.`member_id`, ' . '`members`.`name`, ' . '`members`.`class`, ' . '`members`.`classid`, ' . '`members`.`level`, ' . '`members`.`zone`, ' . "(UNIX_TIMESTAMP( `members`.`last_online`)*1000+" . $roster->config['localtimeoffset'] * 3600000 . ") AS 'last_online_stamp', " . "DATE_FORMAT( DATE_ADD(`members`.`last_online`, INTERVAL " . $roster->config['localtimeoffset'] . " HOUR ), '" . $roster->locale->act['timeformat'] . "' ) AS 'last_online', " . '`members`.`note`, ' . "IF( `members`.`note` IS NULL OR `members`.`note` = '', 1, 0 ) AS 'nisnull', " . '`members`.`guild_title`, ' . '`alts`.`main_id`, ' . '`players`.`server`, ' . '`players`.`race`, ' . '`players`.`sex`, ' . '`players`.`exp`, ' . '`players`.`clientLocale`, ' . '`players`.`sessionHK`, ' . '`players`.`sessionCP`, ' . '`players`.`yesterdayHK`, ' . '`players`.`yesterdayContribution`, ' . '`players`.`lifetimeHK`, ' . '`players`.`lifetimeRankName`, ' . '`players`.`lifetimeHighestRank`, ' . "IF( `players`.`lifetimeHighestRank` IS NULL OR `players`.`lifetimeHighestRank` = '0', 1, 0 ) AS 'risnull', " . '`players`.`honorpoints`, ' . '`players`.`arenapoints`, ' . "GROUP_CONCAT( DISTINCT CONCAT( `talenttable`.`tree` , '|', `talenttable`.`pointsspent` , '|', `talenttable`.`background` ) ORDER BY `talenttable`.`order`) AS 'talents' " . 'FROM `' . $roster->db->table('members') . '` AS members ' . 'INNER JOIN `' . $roster->db->table('players') . '` AS players ON `members`.`member_id` = `players`.`member_id` ' . 'LEFT JOIN `' . $roster->db->table('alts', $addon['basename']) . '` AS alts ON `members`.`member_id` = `alts`.`member_id` ' . 'LEFT JOIN `' . $roster->db->table('talenttree') . '` AS talenttable ON `members`.`member_id` = `talenttable`.`member_id` ' . 'WHERE `members`.`guild_id` = "' . $roster->data['guild_id'] . '" ' . 'GROUP BY `members`.`member_id` ' . 'ORDER BY IF(`members`.`member_id` = `alts`.`member_id`,1,0), '; $always_sort = ' `members`.`level` DESC, `members`.`name` ASC'; $FIELD['name'] = array('lang_field' => 'name', 'order' => array('`members`.`name` ASC'), 'order_d' => array('`members`.`name` DESC'), 'value' => array($memberlist, 'name_value'), 'js_type' => 'ts_string', 'display' => 3); $FIELD['class'] = array('lang_field' => 'class', 'order' => array('`members`.`class` ASC'), 'order_d' => array('`members`.`class` DESC'), 'value' => array($memberlist, 'class_value'), 'js_type' => 'ts_string', 'display' => $addon['config']['honor_class']); $FIELD['level'] = array('lang_field' => 'level', 'order_d' => array('`members`.`level` ASC'), 'value' => array($memberlist, 'level_value'), 'js_type' => 'ts_number', 'display' => $addon['config']['honor_level']); $FIELD['sessionHK'] = array('lang_field' => 'todayhk', 'order' => array('`players`.`sessionHK` DESC'), 'order_d' => array('`players`.`sessionHK` ASC'), 'js_type' => 'ts_number', 'display' => $addon['config']['honor_thk']); $FIELD['sessionCP'] = array('lang_field' => 'todaycp', 'order' => array('`players`.`sessionCP` DESC'), 'order_d' => array('`players`.`sessionCP` ASC'), 'js_type' => 'ts_number', 'display' => $addon['config']['honor_tcp']); $FIELD['yesterdayHK'] = array('lang_field' => 'yesthk', 'order' => array('`players`.`yesterdayHK` DESC'), 'order_d' => array('`players`.`yesterdayHK` ASC'), 'js_type' => 'ts_number', 'display' => $addon['config']['honor_yhk']); $FIELD['yesterdayContribution'] = array('lang_field' => 'yestcp', 'order' => array('`players`.`yesterdayContribution` DESC'), 'order_d' => array('`players`.`yesterdayContribution` ASC'), 'js_type' => 'ts_number', 'display' => $addon['config']['honor_ycp']); $FIELD['lifetimeHK'] = array('lang_field' => 'lifehk', 'order' => array('`players`.`lifetimeHK` DESC'), 'order_d' => array('`players`.`lifetimeHK` ASC'), 'js_type' => 'ts_number', 'display' => $addon['config']['honor_lifehk']); $FIELD['lifetimeRankName'] = array('lang_field' => 'highestrank', 'order' => array('risnull', '`players`.`lifetimeHighestRank` DESC'), 'order_d' => array('risnull', '`players`.`lifetimeHighestRank` ASC'), 'value' => array($memberlist, 'honor_value'), 'js_type' => 'ts_number', 'display' => $addon['config']['honor_hrank']); $FIELD['honorpoints'] = array('lang_field' => 'honorpoints', 'order' => array('`players`.`honorpoints` DESC'), 'order_d' => array('`players`.`honorpoints` ASC'), 'js_type' => 'ts_number', 'display' => $addon['config']['honor_hp']); $FIELD['arenapoints'] = array('lang_field' => 'arenapoints', 'order' => array('`players`.`arenapoints` DESC'), 'order_d' => array('`players`.`arenapoints` ASC'), 'js_type' => 'ts_number', 'display' => $addon['config']['honor_ap']); $memberlist->prepareData($mainQuery, $always_sort, $FIELD, 'memberslist'); // Start output $menu = ''; if ($addon['config']['honor_update_inst']) { $menu .= ' <a href="' . makelink('#update') . '"><span style="font-size:20px;">' . $roster->locale->act['update_link'] . '</span></a><br /><br />'; } if ($addon['config']['honor_motd'] == 1) { $menu .= $memberlist->makeMotd(); } $roster->output['before_menu'] .= $menu; if ($addon['config']['honor_hslist'] == 1 || $addon['config']['honor_pvplist'] == 1) { echo "<table>\n <tr>\n"; if ($addon['config']['honor_hslist'] == 1) { echo ' <td valign="top">'; include_once ROSTER_LIB . 'hslist.php'; echo generateHsList();
} include_once $addon['inc_dir'] . 'memberslist.php'; $memberlist = new memberslist(array('group_alts' => -1, 'page_size' => 25)); $mainQuery = 'SELECT `members`.*, `guild`.`guild_name`, DATE_FORMAT( `members`.`update_time`, "' . $roster->locale->act['timeformat'] . '" ) AS date, ' . "IF( `members`.`note` IS NULL OR `members`.`note` = '', 1, 0 ) AS 'nisnull', " . 'UNIX_TIMESTAMP(`members`.`update_time`) AS date_stamp ' . 'FROM `' . $roster->db->table('memberlog') . '` AS members ' . 'LEFT JOIN `' . $roster->db->table('alts', $addon['basename']) . '` AS alts ON `members`.`member_id` = `alts`.`member_id` ' . 'LEFT JOIN `' . $roster->db->table('guild') . '` AS guild ON `members`.`guild_id` = `guild`.`guild_id` '; $where[] = '`members`.`server` = "' . $roster->db->escape($roster->data['server']) . '"'; $order_last[] = '`date_stamp` DESC'; $FIELD['name'] = array('lang_field' => 'name', 'order' => array('`name` ASC'), 'order_d' => array('`name` DESC'), 'display' => 3); $FIELD['class'] = array('lang_field' => 'class', 'order' => array('`class` ASC'), 'order_d' => array('`class` DESC'), 'value' => array($memberlist, 'class_value'), 'display' => $addon['config']['log_class']); $FIELD['level'] = array('lang_field' => 'level', 'order_d' => array('`level` DESC'), 'order_d' => array('`level` ASC'), 'value' => array($memberlist, 'level_value'), 'display' => $addon['config']['log_level']); $FIELD['guild_name'] = array('lang_field' => 'guild', 'order' => array('`guild`.`guild_name` ASC'), 'order_d' => array('`guild`.`guild_name` DESC'), 'display' => 2); $FIELD['guild_title'] = array('lang_field' => 'title', 'order' => array('`guild_rank` ASC'), 'order_d' => array('`guild_rank` DESC'), 'display' => $addon['config']['log_gtitle']); $FIELD['type'] = array('lang_field' => 'type', 'order' => array('`type` ASC'), 'order_d' => array('`type` DESC'), 'value' => 'type_value', 'display' => $addon['config']['log_type']); $FIELD['date'] = array('lang_field' => 'date', 'order' => array('`date_stamp` DESC'), 'order_d' => array('`date_stamp` ASC'), 'display' => $addon['config']['log_date']); $FIELD['note'] = array('lang_field' => 'note', 'order' => array('nisnull', '`note` ASC'), 'order_d' => array('nisnull', '`note` DESC'), 'value' => 'note_value', 'display' => $addon['config']['log_note']); $FIELD['officer_note'] = array('lang_field' => 'onote', 'order' => array('onisnull', '`note` ASC'), 'order_d' => array('onisnull', '`note` DESC'), 'value' => 'note_value', 'display' => $addon['config']['log_onote']); $memberlist->prepareData($mainQuery, $where, null, null, $order_last, $FIELD, 'memberslist'); // Start output echo $memberlist->makeMembersList('syellow'); /** * Controls Output of a Note Column * * @param array $row - of character data * @return string - Formatted output */ function note_value($row, $field) { global $roster, $addon; if (!empty($row[$field])) { $note = htmlspecialchars(nl2br($row[$field])); if ($addon['config']['compress_note']) { $note = '<img src="' . $roster->config['theme_path'] . '/images/note.gif" style="cursor:help;" ' . makeOverlib($note, $roster->locale->act['note'], '', 1, '', ',WRAP') . ' alt="[]" />';
$key_name = $key_data['key_name']; $mainSelect .= 'GROUP_CONCAT( IF( `keycache`.`key_name` = \'' . $key_name . '\', `stage`, NULL) ) AS `' . $key_name . '_stages`, ' . 'MAX( IF( `keycache`.`key_name` = \'' . $key_name . '\', `stage`, NULL) ) AS `' . $key_name . '_latest`, '; $FIELD[$key_name] = array('lang_field' => $key_name, 'order' => array('`' . $key_name . '_latest` ASC'), 'order_d' => array('`' . $key_name . '_latest` DESC'), 'value' => 'key_value', 'filter' => false, 'display' => 2, 'passthrough' => $key_data); } $roster->db->free_result($keyResult); $stageQuery = "SELECT * FROM `" . $roster->db->table('stages', $addon['basename']) . "` WHERE `locale` = '" . $roster->locale->curlocale . "' AND `faction` = '" . substr($roster->data['faction'], 0, 1) . "';"; $stageResult = $roster->db->query($stageQuery); while ($row = $roster->db->fetch($stageResult, SQL_ASSOC)) { if (isset($FIELD[$row['key_name']])) { $FIELD[$row['key_name']]['passthrough']['stages'][$row['stage']] = $row; } } $roster->db->free_result($stageResult); // Combine the main query. The '1' is to fix the trailing comma for the fields list. $mainQuery = $mainSelect . '1 ' . $mainTables; $memberlist->prepareData($mainQuery, $where, $group, null, $order_last, $FIELD, 'keyslist'); // Start output $roster->output['show_menu']['keypane'] = 1; echo $memberlist->makeMembersList('syellow'); // Key display logic function key_value($row, $field, $data) { global $roster, $addon; $key_data = $data['stages']; if ($row[$field . '_stages'] === null) { return ' '; } else { $active_stages = explode(',', $row[$field . '_stages']); } $last_stage = max(array_keys($key_data)); $num_completed_stages = 0;
} if ($roster_conf['index_zone'] == 1) { $FIELD['zone'] = array('lang_field' => 'zone'); } if ($roster_conf['index_lastonline'] == 1) { $FIELD['last_online'] = array('lang_field' => 'lastonline', 'jsort' => 'last_online_stamp'); } if ($roster_conf['index_lastupdate'] == 1) { $FIELD['last_update_format'] = array('lang_field' => 'lastupdate', 'jsort' => 'last_update_stamp'); } if ($roster_conf['index_note'] == 1 && $roster_conf['compress_note'] == 1) { $FIELD['note'] = array('lang_field' => 'note', 'value' => 'note_value'); } include_once $addonDir . 'inc/memberslist.php'; $memberlist = new memberslist(); $memberlist->prepareData($mainQuery, $FIELD, 'memberslist'); $html_head = '<script type="text/javascript" src="' . $roster_conf['roster_url'] . 'addons/' . $_GET['roster_addon_name'] . '/js/sorttable.js"></script>'; // Start output if ($roster_conf['index_update_inst']) { print ' <a href="#update"><font size="4">' . $wordings[$roster_conf['roster_lang']]['update_link'] . '</font></a><br /><br />'; } if ($roster_conf['index_motd'] == 1) { print $memberlist->makeMotd(); } include_once ROSTER_LIB . 'menu.php'; if ($roster_conf['hspvp_list_disp'] == 'hide') { $pvp_hs_colapse = ' style="display:none;"'; $pvp_hs_image = 'plus'; } else { $pvp_hs_colapse = ''; $pvp_hs_image = 'minus';
function realmsPage() { global $roster, $addon, $accounts; // Disallow viewing of the page if (!$roster->auth->getAuthorized($addon['config']['acc_min_access'])) { print '<span class="title_text">' . $roster->locale->act['acc_page']['realms'] . '</span><br />' . $roster->auth->getMessage() . $roster->auth->getLoginForm(); } else { include_once 'memberslist.php'; $realmlist = new memberslist(array('group_alts' => -1)); $uid = $accounts->session->getVal('uid'); $mainQuery = 'SELECT ' . '`user_link`.`uid`, ' . '`user_link`.`member_id`, ' . '`user_link`.`realm`, ' . '`members`.`member_id`, ' . '`members`.`server`, ' . '`realm`.`server_name`, ' . '`realm`.`server_region`, ' . '`realm`.`servertype`, ' . '`realm`.`serverstatus`, ' . '`realm`.`serverpop` ' . 'FROM `' . $roster->db->table('user_link', 'accounts') . '` AS user_link ' . 'LEFT JOIN `' . $roster->db->table('members') . '` AS members ON `user_link`.`member_id` = `members`.`member_id` ' . 'LEFT JOIN `' . $roster->db->table('realmstatus') . '` AS realm ON `members`.`server` = `realm`.`server_name` ' . 'WHERE `user_link`.`uid` = "' . $uid . '" ' . 'ORDER BY IF(`realm`.`server_name` = `user_link`.`realm`,1,0),'; $always_sort = ' `realm`.`server_name` ASC'; $FIELD['realm_name'] = array('lang_field' => 'realm', 'order' => array('`realm`.`server_name` ASC'), 'order_d' => array('`realm`.`server_name` DESC'), 'value' => 'realm_value', 'js_type' => 'ts_string', 'display' => 3); $FIELD['realm_region'] = array('lang_field' => 'region', 'order' => array('`realm`.`server_region` ASC'), 'order_d' => array('`realm`.`server_region` DESC'), 'value' => 'region_value', 'js_type' => 'ts_string', 'display' => 2); $FIELD['servertype'] = array('lang_field' => 'servertype', 'order' => array('`realm`.`servertype` ASC'), 'order_d' => array('`realm`.`servertype` DESC'), 'value' => 'servertype_value', 'js_type' => 'ts_string', 'display' => 2); $FIELD['serverstatus'] = array('lang_field' => 'serverstatus', 'order' => array('`realm`.`serverstatus` ASC'), 'order_d' => array('`realm`.`serverstatus` DESC'), 'value' => 'serverstatus_value', 'js_type' => 'ts_string', 'display' => 2); $FIELD['serverpop'] = array('lang_field' => 'serverpop', 'order' => array('`realm`.`serverpop` ASC'), 'order_d' => array('`realm`.`serverpop` DESC'), 'value' => 'serverpop_value', 'js_type' => 'ts_string', 'display' => 2); $realmlist->prepareData($mainQuery, $always_sort, $FIELD, 'realmlist'); $roster->output['show_menu']['acc_menu'] = 1; // Display the button listing $roster->tpl->assign_block_vars('accounts_realms', array('MESSAGE' => $accounts->message, 'BORDER_START' => border('sblue', 'start', $roster->locale->act['acc_page']['realms']), 'REALMS_LIST' => $realmlist->makeMembersList(), 'BORDER_END' => border('sblue', 'end'))); $roster->tpl->set_filenames(array('accounts_realms' => $addon['basename'] . '/realms.html')); $roster->tpl->display('accounts_realms'); } }