public function buildpage(viewNavigation $Navigation) { global $config, $phpbb_root_path, $phpEx, $user, $template; $classes = array(); $members = new \bbdkp\controller\members\Members(); $members->game_id = $Navigation->getGameId(); $start = request_var('start', 0); $mode = request_var('rosterlayout', 0); $member_filter = utf8_normalize_nfc(request_var('member_name', '', true)); $url = append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=roster&rosterlayout=' . $mode . '&guild_id=' . $Navigation->getGuildId()); $characters = $members->getmemberlist($start, $mode, $Navigation->getQueryByArmor(), $Navigation->getQueryByClass(), $Navigation->getFilter(), $Navigation->getGameId(), $Navigation->getGuildId(), $Navigation->getClassId(), $Navigation->getRaceId(), $Navigation->getLevel1(), $Navigation->getLevel2(), false, $member_filter, 0); $rosterlayoutlist = array(0 => $user->lang['ARM_STAND'], 1 => $user->lang['ARM_CLASS']); foreach ($rosterlayoutlist as $lid => $lname) { $template->assign_block_vars('rosterlayout_row', array('VALUE' => $lid, 'SELECTED' => $lid == $mode ? ' selected="selected"' : '', 'OPTION' => $lname)); } if ($mode == 0) { /* * Displays the listing */ // use pagination foreach ($characters[0] as $char) { $template->assign_block_vars('members_row', array('MEMBER_ID' => $char['member_id'], 'U_VIEW_MEMBER' => append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=member&' . URI_NAMEID . '=' . $char['member_id'] . '&' . URI_DKPSYS . '=' . 0), 'GAME' => $char['game_id'], 'COLORCODE' => $char['colorcode'], 'CLASS' => $char['class_name'], 'NAME' => $char['member_name'], 'RACE' => $char['race_name'], 'RANK' => $char['member_rank'], 'LVL' => $char['member_level'], 'ARMORY' => $char['member_armory_url'], 'PHPBBUID' => $char['username'], 'PORTRAIT' => $char['member_portrait_url'], 'ACHIEVPTS' => $char['member_achiev'], 'CLASS_IMAGE' => $char['class_image'], 'RACE_IMAGE' => $char['race_image'])); } $rosterpagination = $Navigation->generate_pagination2($url . '&o=' . $characters[1]['uri']['current'], $characters[2], $config['bbdkp_user_llimit'], $start, true, 'start'); // add navigationlinks $navlinks_array = array(array('DKPPAGE' => $user->lang['MENU_ROSTER'], 'U_DKPPAGE' => $url)); foreach ($navlinks_array as $name) { $template->assign_block_vars('dkpnavlinks', array('DKPPAGE' => $name['DKPPAGE'], 'U_DKPPAGE' => $name['U_DKPPAGE'])); } $template->assign_vars(array('ROSTERPAGINATION' => $rosterpagination, 'O_NAME' => $url . '&' . URI_ORDER . '=' . $characters[1]['uri'][0], 'O_CLASS' => $url . '&' . URI_ORDER . '=' . $characters[1]['uri'][2], 'O_RANK' => $url . '&' . URI_ORDER . '=' . $characters[1]['uri'][3], 'O_LEVEL' => $url . '&' . URI_ORDER . '=' . $characters[1]['uri'][4], 'O_PHPBB' => $url . '&' . URI_ORDER . '=' . $characters[1]['uri'][5], 'O_ACHI' => $url . '&' . URI_ORDER . '=' . $characters[1]['uri'][6])); // add template constants $template->assign_vars(array('S_RSTYLE' => '0', 'S_SHOWACH' => $config['bbdkp_show_achiev'], 'LISTMEMBERS_FOOTCOUNT' => 'Total members : ' . $characters[2], 'S_DISPLAY_ROSTERLISTING' => true)); } elseif ($mode == 1) { //display grid $classgroup = $members->get_classes($Navigation->getFilter(), $Navigation->getQueryByArmor(), $Navigation->getClassId(), $Navigation->getGameId(), $Navigation->getGuildId(), $Navigation->getRaceId(), $Navigation->getLevel1(), $Navigation->getLevel2()); if (count($classgroup) > 0) { foreach ($classgroup as $row1) { $classes[$row1['class_id']]['name'] = $row1['class_name']; $classes[$row1['class_id']]['imagename'] = $row1['imagename']; $classes[$row1['class_id']]['colorcode'] = $row1['colorcode']; } foreach ($classes as $classid => $class) { $classimgurl = $phpbb_root_path . "images/bbdkp/roster_classes/" . $class['imagename'] . '.png'; $classcolor = $class['colorcode']; $template->assign_block_vars('class', array('CLASSNAME' => $class['name'], 'CLASSIMG' => $classimgurl, 'COLORCODE' => $classcolor)); $classmembers = 1; foreach ($characters[0] as $row2) { if ($row2['member_class_id'] == $classid) { $template->assign_block_vars('class.members_row', array('MEMBER_ID' => $row2['member_id'], 'GAME' => $row2['game_id'], 'COLORCODE' => $row2['colorcode'], 'CLASS' => $row2['class_name'], 'NAME' => $row2['member_name'], 'RACE' => $row2['race_name'], 'RANK' => $row2['member_rank'], 'LVL' => $row2['member_level'], 'ARMORY' => $row2['member_armory_url'], 'PHPBBUID' => $row2['username'], 'PORTRAIT' => $row2['member_portrait_url'], 'ACHIEVPTS' => $row2['member_achiev'], 'CLASS_IMAGE' => $row2['class_image'], 'RACE_IMAGE' => $row2['race_image'])); $classmembers++; } } } $rosterpagination = $Navigation->generate_pagination2($url . '&o=' . $characters[1]['uri']['current'], count($characters[0]), $config['bbdkp_user_llimit'], $start, true, 'start'); if (isset($characters[1]) && sizeof($characters[1]) > 0) { $template->assign_vars(array('ROSTERPAGINATION' => $rosterpagination, 'U_LIST_MEMBERS0' => $url . '&' . URI_ORDER . '=' . $characters[1]['uri'][0], 'U_LIST_MEMBERS1' => $url . '&' . URI_ORDER . '=' . $characters[1]['uri'][1], 'U_LIST_MEMBERS2' => $url . '&' . URI_ORDER . '=' . $characters[1]['uri'][2], 'U_LIST_MEMBERS3' => $url . '&' . URI_ORDER . '=' . $characters[1]['uri'][3], 'U_LIST_MEMBERS4' => $url . '&' . URI_ORDER . '=' . $characters[1]['uri'][4])); } // add template constants $template->assign_vars(array('S_SHOWACH' => $config['bbdkp_show_achiev'], 'LISTMEMBERS_FOOTCOUNT' => 'Total members : ' . count($characters[0]), 'S_DISPLAY_ROSTERGRID' => true)); } // add menu navigationlinks $navlinks_array = array(array('DKPPAGE' => $user->lang['MENU_ROSTER'], 'U_DKPPAGE' => $url)); foreach ($navlinks_array as $name) { $template->assign_block_vars('dkpnavlinks', array('DKPPAGE' => $name['DKPPAGE'], 'U_DKPPAGE' => $name['U_DKPPAGE'])); } $template->assign_vars(array('S_RSTYLE' => '1')); } $template->assign_vars(array('MEMBER_NAME' => $member_filter, 'S_MULTIGAME' => sizeof($Navigation->games) > 1 ? true : false, 'S_DISPLAY_ROSTER' => true, 'F_ROSTER' => $url, 'S_GAME' => $members->game_id)); $header = $user->lang['GUILDROSTER']; page_header($header); }
public function buildpage(viewNavigation $Navigation) { global $db, $config, $phpbb_root_path, $phpEx, $user, $template; if (!isset($_GET[URI_NAMEID])) { trigger_error($user->lang['MNOTFOUND']); } $member_id = request_var(URI_NAMEID, 0); $member = new \bbdkp\controller\members\Members($member_id); $points = new \bbdkp\controller\points\Points($member_id, $Navigation->getDkpsysId()); $Raids = new \bbdkp\controller\raids\Raids(); $Adjustments = new \bbdkp\controller\adjustments\Adjust($Navigation->getDkpsysId()); /* Get attendance */ $range1 = $config['bbdkp_list_p1']; $range2 = $config['bbdkp_list_p2']; $range3 = $config['bbdkp_list_p3']; //member raidcount $mc1 = $Raids->raidcount($Navigation->getDkpsysId(), $range1, $member_id, 0, false, $member->member_guild_id); $mc2 = $Raids->raidcount($Navigation->getDkpsysId(), $range2, $member_id, 0, false, $member->member_guild_id); $mc3 = $Raids->raidcount($Navigation->getDkpsysId(), $range3, $member_id, 0, false, $member->member_guild_id); $mclife = $Raids->raidcount($Navigation->getDkpsysId(), 0, $member_id, 0, true, $member->member_guild_id); //guild raidcount $pc1 = $Raids->raidcount($Navigation->getDkpsysId(), $range1, $member_id, 1, false, $member->member_guild_id); $pc2 = $Raids->raidcount($Navigation->getDkpsysId(), $range2, $member_id, 1, false, $member->member_guild_id); $pc3 = $Raids->raidcount($Navigation->getDkpsysId(), $range3, $member_id, 1, false, $member->member_guild_id); $pclife = $Raids->raidcount($Navigation->getDkpsysId(), 0, $member_id, 1, true, $member->member_guild_id); //attendances $pct1 = $pc1 > 0 ? round($mc1 / $pc1 * 100, 1) : 0; $pct2 = $pc2 > 0 ? round($mc2 / $pc2 * 100, 1) : 0; $pct3 = $pc3 > 0 ? round($mc3 / $pc3 * 100, 1) : 0; $pctlife = $pclife > 0 ? round($mclife / $pclife * 100, 1) : 0; /** * * RAID history * * **/ $rstart = request_var('rstart', 0); if ($config['bbdkp_epgp'] == '1') { $current_earned = $points->earned_net; } else { $current_earned = $points->earned_net; } $raids_result = $Raids->getRaids('r.raid_start DESC', $Navigation->getDkpsysId(), 0, $rstart, $member_id); while ($raid = $db->sql_fetchrow($raids_result)) { $template->assign_block_vars('raids_row', array('DATE' => !empty($raid['raid_start']) ? date($config['bbdkp_date_format'], $raid['raid_start']) : ' ', 'U_VIEW_RAID' => append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=raid&' . URI_RAID . '=' . $raid['raid_id']), 'NAME' => $raid['event_name'], 'NOTE' => !empty($raid['raid_note']) ? $raid['raid_note'] : ' ', 'RAIDVAL' => $raid['raid_value'], 'TIMEBONUS' => $raid['time_value'], 'ZSBONUS' => $raid['zs_value'], 'RAIDDECAY' => $raid['raiddecay'], 'EARNED' => $raid['net_earned'], 'CURRENT_EARNED' => sprintf("%.2f", $current_earned))); $current_earned = $current_earned - $raid['net_earned']; } /** * * Adjustments * */ $sort_order = array(0 => array('adjustment_id desc', 'adjustment_id asc'), 1 => array('adjustment_date desc, member_name asc', 'adjustment_date asc, member_name asc'), 2 => array('adjustment_dkpid', 'adjustment_dkpid desc'), 3 => array('dkpsys_name', 'dkpsys_name desc'), 4 => array('member_name', 'member_name desc'), 5 => array('adjustment_reason', 'adjustment_reason desc'), 6 => array('adjustment_value desc', 'adjustment_value'), 7 => array('adjustment_added_by', 'adjustment_added_by desc')); $result2 = $Adjustments->countadjust($member_id); $total_adjustments = (int) $db->sql_fetchfield('total_adjustments'); $db->sql_freeresult($result2); $current_order = $Navigation->switch_order($sort_order); $astart = request_var('astart', 0); $current_adj = $points->adjustment - $points->adj_decay; $result = $Adjustments->ListAdjustments($current_order['sql'], $member_id, $astart); while ($adj = $db->sql_fetchrow($result)) { $template->assign_block_vars('adjustments_row', array('DATE' => date($config['bbdkp_date_format'], $adj['adjustment_date']), 'ADJID' => $adj['adjustment_id'], 'DKPID' => $adj['adjustment_dkpid'], 'DKPPOOL' => $adj['dkpsys_name'], 'REASON' => isset($adj['adjustment_reason']) ? $adj['adjustment_reason'] : '', 'COLOR' => $adj['adjustment_value'] < 0 ? 'negative' : 'positive', 'ADJUSTMENT' => $adj['adjustment_value'] == 0 ? '' : number_format($adj['adjustment_value'], 2), 'CAN_DECAY' => $adj['can_decay'], 'ADJ_DECAY' => -1 * $adj['adj_decay'] == 0 ? '0.00' : -1 * $adj['adj_decay'], 'ADJUSTMENT_NET' => $adj['adjustment_value'] - $adj['adj_decay'] == 0 ? '' : number_format($adj['adjustment_value'] - $adj['adj_decay'], 2), 'CURRENT_ADJ' => sprintf("%.2f", $current_adj), 'COLORCURRENT' => $current_adj > 0 ? 'positive' : 'nagative', 'ADDED_BY' => $adj['adjustment_added_by'])); $current_adj = $current_adj - ($adj['adjustment_value'] - $adj['adj_decay']); } $db->sql_freeresult($result); $listadj_footcount = sprintf($user->lang['LISTADJ_FOOTCOUNT'], $total_adjustments, $config['bbdkp_user_alimit']); $adjpagination = $Navigation->generate_pagination2(append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=member&' . URI_DKPSYS . '=' . $Navigation->getDkpsysId() . '&' . URI_NAMEID . '=' . $member_id . '&astart=' . $astart), $total_adjustments, $config['bbdkp_user_alimit'], $astart, 1, 'astart'); $template->assign_vars(array('S_SHOW' => $total_adjustments > 0 ? true : false, 'O_ADJID' => $current_order['uri'][0], 'O_DATE' => $current_order['uri'][1], 'O_DKPID' => $current_order['uri'][2], 'O_DKPPOOL' => $current_order['uri'][3], 'O_MEMBER' => $current_order['uri'][4], 'O_REASON' => $current_order['uri'][5], 'O_ADJUSTMENT' => $current_order['uri'][6], 'O_ADDED_BY' => $current_order['uri'][7], 'ASTART' => $astart, 'LISTADJ_FOOTCOUNT' => $listadj_footcount, 'ADJUSTMENTS_PAGINATION' => $adjpagination, 'PAGE_NUMBER' => on_page($total_adjustments, $config['bbdkp_user_alimit'], $astart))); /** * * loot history * * **/ $istart = request_var('istart', 0); if ($config['bbdkp_epgp'] == '1') { $current_spent = $points->gp_net; } else { $current_spent = $points->item_net; } $loot = new \bbdkp\controller\loot\Loot(); $lootdetails = $loot->GetAllLoot(' i.item_date DESC ', 0, $Navigation->getDkpsysId(), 0, $istart, $member_id); while ($item = $db->sql_fetchrow($lootdetails)) { if ($Navigation->bbtips == true && $item['item_gameid'] == 'wow') { if ($item['wowhead_id'] > 0) { $item_name = '<strong>' . $Navigation->bbtips->parse('[itemdkp]' . $item['wowhead_id'] . '[/itemdkp]') . '</strong>'; } else { $item_name = '<strong>' . $Navigation->bbtips->parse('[itemdkp]' . $item['item_name'] . '[/itemdkp]') . '</strong>'; } } else { $item_name = '<strong>' . $item['item_name'] . '</strong>'; } $template->assign_block_vars('items_row', array('DATE' => !empty($item['item_date']) ? date($config['bbdkp_date_format'], $item['item_date']) : $item['item_date'] . ' ', 'U_VIEW_ITEM' => append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=item&' . URI_ITEM . '=' . $item['item_id']), 'U_VIEW_RAID' => append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=raid&' . URI_RAID . '=' . $item['raid_id']), 'NAME' => $item_name, 'RAID' => !empty($item['event_name']) ? $item['event_name'] : '<<i>Not Found</i>>', 'SPENT' => sprintf("%.2f", $item['item_value']), 'DECAY' => sprintf("%.2f", $item['item_decay']), 'SPENT_NET' => sprintf("%.2f", $item['item_net']), 'CURRENT_SPENT' => sprintf("%.2f", $current_spent))); $current_spent -= $item['item_net']; } $db->sql_freeresult($lootdetails); $sql_array = array('SELECT' => 'count(*) as itemcount ', 'FROM' => array(EVENTS_TABLE => 'e', RAIDS_TABLE => 'r', RAID_ITEMS_TABLE => 'i'), 'WHERE' => " e.event_id = r.event_id\n\t\tAND e.event_dkpid=" . (int) $Navigation->getDkpsysId() . ' AND r.raid_id = i.raid_id AND i.member_id = ' . $member_id); $sql6 = $db->sql_build_query('SELECT', $sql_array); $result6 = $db->sql_query($sql6); $total_purchased_items = $db->sql_fetchfield('itemcount'); $db->sql_freeresult($result6); $raidpag = $Navigation->generate_pagination2(append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=member&' . URI_DKPSYS . '=' . $Navigation->getDkpsysId() . '&' . URI_NAMEID . '=' . $member_id . '&istart=' . $istart), $points->raidcount, $config['bbdkp_user_rlimit'], $rstart, 1, 'rstart'); $itpag = $Navigation->generate_pagination2(append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=member&' . URI_DKPSYS . '=' . $Navigation->getDkpsysId() . '&' . URI_NAMEID . '=' . $member_id . '&rstart=' . $rstart), $total_purchased_items, $config['bbdkp_user_ilimit'], $istart, 1, 'istart'); $template->assign_vars(array('RAID_PAGINATION' => $raidpag, 'RSTART' => $rstart, 'RAID_FOOTCOUNT' => sprintf($user->lang['VIEWMEMBER_RAID_FOOTCOUNT'], $points->raidcount, $config['bbdkp_user_rlimit']), 'ITEM_PAGINATION' => $itpag, 'ISTART' => $istart, 'ITEM_FOOTCOUNT' => sprintf($user->lang['VIEWMEMBER_ITEM_FOOTCOUNT'], $total_purchased_items, $config['bbdkp_user_ilimit']), 'ITEMS' => is_null($total_purchased_items) ? false : true)); //output $url = append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=member&' . URI_NAMEID . '=' . $member_id . '&' . URI_DKPSYS . '=' . $Navigation->getDkpsysId()); $template->assign_vars(array('S_DISPLAY_VIEWMEMBER' => true, 'S_SHOWZS' => $config['bbdkp_zerosum'] == '1' ? true : false, 'S_SHOWDECAY' => $config['bbdkp_decay'] == '1' ? true : false, 'S_SHOWEPGP' => $config['bbdkp_epgp'] == '1' ? true : false, 'S_SHOWTIME' => $config['bbdkp_timebased'] == '1' ? true : false, 'NAME' => $member->member_name, 'GUILD' => $member->member_guild_name, 'REGION' => $member->member_region, 'REALM' => $member->member_realm, 'MEMBER_LEVEL' => $member->member_level, 'MEMBER_DKPID' => $Navigation->getDkpsysId(), 'MEMBER_DKPNAME' => $Navigation->getDkpsysName(), 'MEMBER_RACE' => $member->member_race, 'MEMBER_CLASS' => $member->member_class, 'COLORCODE' => $member->colorcode, 'CLASS_IMAGE' => $member->class_image, 'S_CLASS_IMAGE_EXISTS' => strlen($member->class_image) > 1 ? true : false, 'RACE_IMAGE' => $member->race_image, 'S_RACE_IMAGE_EXISTS' => strlen($member->race_image) > 1 ? true : false, 'MEMBER_RANK' => $member->member_rank_id, 'U_VIEW_MEMBER' => $url, 'POINTNAME' => $config['bbdkp_dkp_name'])); if ($config['bbdkp_epgp'] == '0') { $template->assign_vars(array('RAIDVAL' => sprintf("%.2f", $points->raid_value), 'TIMEBONUS' => sprintf("%.2f", $points->time_bonus), 'ZEROSUM' => sprintf("%.2f", $points->zerosum_bonus), 'RAIDDECAY' => sprintf("%.2f", $points->earned_decay), 'EARNED' => sprintf("%.2f", $points->total_earned), 'EARNED_NET' => sprintf("%.2f", $points->earned_net), 'SPENT' => sprintf("%.2f", $points->spent), 'ITEMDECAY' => sprintf("%.2f", $points->item_decay), 'ITEMNET' => sprintf("%.2f", $points->item_net), 'CURRENT' => sprintf("%.2f", $points->total), 'C_CURRENT' => $points->total > 0 ? 'positive' : 'negative', 'ADJUSTMENT' => sprintf("%.2f", $points->adjustment), 'C_ADJUSTMENT' => $points->adjustment > 0 ? 'positive' : 'negative', 'ADJDECAY' => sprintf("%.2f", $points->adj_decay), 'ADJNET' => sprintf("%.2f", $points->adj_net), 'TOTAL_DECAY' => sprintf("%.2f", $points->total_decayed), 'C_TOTAL_DECAY' => $points->total_decayed > 0 ? 'negative' : 'positive', 'NETCURRENT' => sprintf("%.2f", $points->total_net), 'C_NETCURRENT' => $points->total_net > 0 ? 'positive' : 'negative')); } elseif ($config['bbdkp_epgp'] == '1') { $template->assign_vars(array('EP' => $points->ep, 'EPNET' => (double) $points->ep_net, 'GP' => $points->gp, 'BGP' => $config['bbdkp_basegp'], 'GPNET' => $points->gp_net, 'PR' => $points->pr, 'PRNET' => $points->pr_net)); } $template->assign_vars(array('RAID_FOOTCOUNT' => sprintf($user->lang['VIEWMEMBER_RAID_FOOTCOUNT'], $points->raidcount, $config['bbdkp_user_rlimit']), 'RAIDS_X1_DAYS' => sprintf($user->lang['RAIDS_X_DAYS'], $range1), 'RAIDS_X2_DAYS' => sprintf($user->lang['RAIDS_X_DAYS'], $range2), 'RAIDS_X3_DAYS' => sprintf($user->lang['RAIDS_X_DAYS'], $range3), 'RAIDS_LIFETIME' => sprintf($user->lang['RAIDS_LIFETIME'], date($config['bbdkp_date_format'], $points->firstraid), date($config['bbdkp_date_format'], $points->lastraid)), 'C_RAIDS_X1_DAYS' => $mc1 . '/' . $pc1 . ' : ' . $pct1, 'C_RAIDS_X2_DAYS' => $mc2 . '/' . $pc2 . ' : ' . $pct2, 'C_RAIDS_X3_DAYS' => $mc3 . '/' . $pc3 . ' : ' . $pct3, 'C_RAIDS_LIFETIME' => $mclife . '/' . $pclife . ' : ' . $pctlife)); $navlinks_array = array(array('DKPPAGE' => $user->lang['MENU_STANDINGS'], 'U_DKPPAGE' => append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=standings&' . URI_DKPSYS . '=' . $Navigation->getDkpsysId())), array('DKPPAGE' => sprintf($user->lang['MENU_VIEWMEMBER'], $member->member_name), 'U_DKPPAGE' => $url)); foreach ($navlinks_array as $name) { $template->assign_block_vars('dkpnavlinks', array('DKPPAGE' => $name['DKPPAGE'], 'U_DKPPAGE' => $name['U_DKPPAGE'])); } $template->assign_vars(array()); // Output page page_header($user->lang['MEMBER']); }
public function buildpage(viewNavigation $Navigation) { global $db, $config, $phpbb_root_path, $phpEx, $user, $template; $raids = array(); if (!(isset($_GET[URI_EVENT]) && isset($_GET[URI_DKPSYS]))) { trigger_error($user->lang['ERROR_EVENT_UNKNOWN']); } if (!class_exists('\\bbdkp\\controller\\raids\\Events')) { require "{$phpbb_root_path}includes/bbdkp/controller/raids/Events.{$phpEx}"; } $event_id = request_var(URI_EVENT, 0); $url = append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=event&' . URI_EVENT . '=' . $event_id . '&' . URI_DKPSYS . '=' . $Navigation->getDkpsysId()); $event = new \bbdkp\controller\raids\Events(); $event->get($event_id); if (strlen($event->event_imagename) > 0) { $eventimg = $phpbb_root_path . "images/bbdkp/event_images/" . $event->event_imagename . ".png"; } else { $eventimg = $phpbb_root_path . "images/bbdkp/event_images/dummy.png"; } $template->assign_vars(array('EVENTNAME' => $event->event_name, 'VALUE' => $event->event_value, 'IMAGEPATH' => $eventimg, 'RECORDED_RAID_HISTORY' => sprintf($user->lang['RECORDED_RAID_HISTORY'], $event->event_name))); $sort_order = array(0 => array('raid_start desc', 'raid_start'), 1 => array('raid_note', 'raid_note desc'), 2 => array('raid_value desc', 'raid_value')); $current_order = $Navigation->switch_order($sort_order); $sql_array = array('SELECT' => ' e.event_dkpid, e.event_name, r.raid_id, r.raid_start, r.raid_note, r.raid_added_by, r.raid_updated_by, SUM(ra.raid_value) as raid_value, SUM(ra.time_bonus) as time_value, SUM(ra.zerosum_bonus) as zs_value, SUM(ra.raid_decay) as raiddecay, SUM(ra.raid_value + ra.time_bonus + ra.zerosum_bonus - ra.raid_decay) as total', 'FROM' => array(EVENTS_TABLE => 'e', RAIDS_TABLE => 'r', RAID_DETAIL_TABLE => 'ra', MEMBER_LIST_TABLE => 'l'), 'WHERE' => ' ra.raid_id = r.raid_id AND r.event_id = e.event_id AND e.event_id = ' . (int) $event_id . ' AND ra.member_id = l.member_id AND l.member_guild_id = ' . $Navigation->getGuildId(), 'GROUP_BY' => 'e.event_dkpid, e.event_name, r.raid_id, r.raid_start, r.raid_note, r.raid_added_by, r.raid_updated_by', 'ORDER_BY' => $current_order['sql']); $sql = $db->sql_build_query('SELECT', $sql_array); $result = $db->sql_query($sql); $raid_count = 0; while ($row = $db->sql_fetchrow($result)) { $raid_count++; } if ($raid_count > 0) { $startr = request_var('startr', 0); // get requested window $raid_ids = array(); $result = $db->sql_query_limit($sql, $config['bbdkp_user_rlimit'], $startr); while ($row = $db->sql_fetchrow($result)) { $raids[$row['raid_id']] = array('event_name' => $row['event_name'], 'raid_id' => $row['raid_id'], 'raid_start' => $row['raid_start'], 'raid_note' => $row['raid_note'], 'raid_value' => $row['raid_value'], 'time_value' => $row['time_value'], 'zs_value' => $row['zs_value'], 'raiddecay' => $row['raiddecay'], 'total' => $row['total']); $raid_ids[] = $row['raid_id']; } $db->sql_freeresult($result); // Find the attendees at each raid $sql = 'SELECT raid_id, count(member_id) AS countatt FROM ' . RAID_DETAIL_TABLE . ' WHERE ' . $db->sql_in_set('raid_id', $raid_ids) . ' GROUP BY raid_id'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $raids[$row['raid_id']]['numattendees'] = $row['countatt']; } $db->sql_freeresult($result); //calculate the average event attendance and droprate // Find the item drops for each raid $sql = 'SELECT raid_id, count(item_id) AS countatt FROM ' . RAID_ITEMS_TABLE . ' WHERE ' . $db->sql_in_set('raid_id', $raid_ids) . ' GROUP BY raid_id'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $raids[$row['raid_id']]['numitems'] = $row['countatt']; } $db->sql_freeresult($result); $total_drop_count = 0; $total_attendees_count = 0; $total_earned = 0; // Loop through the raids for this event $total_raid_count = sizeof($raids); foreach ($raids as $raid_id => $raid) { $drop_count = isset($raid['numitems']) ? $raid['numitems'] : 0; $attendees_count = isset($raid['numattendees']) ? $raid['numattendees'] : 0; $template->assign_block_vars('raids_row', array('U_VIEW_RAID' => append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=raid&' . URI_RAID . '=' . $raid['raid_id']), 'DATE' => date($config['bbdkp_date_format'], $raid['raid_start']), 'ATTENDEES' => $attendees_count, 'DROPS' => $drop_count, 'NOTE' => !empty($raid['raid_note']) ? $raid['raid_note'] : ' ', 'RAIDVALUE' => $raid['raid_value'], 'TIMEVALUE' => $raid['time_value'], 'ZSVALUE' => $raid['zs_value'], 'DECAYVALUE' => $raid['raiddecay'], 'TOTAL' => $raid['total'])); $total_drop_count += $drop_count; $total_attendees_count += $attendees_count; $total_earned += $raid['raid_value']; } // Prevent div by 0 $average_attendees = $total_raid_count > 0 ? round($total_attendees_count / $total_raid_count, 2) : 0; $average_drops = $total_drop_count > 0 ? round($total_drop_count / $total_raid_count, 2) : 0; $raidpagination = $Navigation->generate_pagination2($url . '&o1=' . $current_order['uri']['current'], $raid_count, $config['bbdkp_user_rlimit'], $startr, true, 'startr'); $start = request_var('start', 0); // item selection $sql_array = array('SELECT' => 'i.item_id, i.item_gameid, i.item_name, i.item_gameid, i.member_id, i.item_zs, l.member_name, c.colorcode, c.imagename, l.member_gender_id, a.image_female, a.image_male, i.item_date, i.raid_id, i.item_value, i.item_decay, i.item_value - i.item_decay as item_total', 'FROM' => array(CLASS_TABLE => 'c', RACE_TABLE => 'a', MEMBER_LIST_TABLE => 'l', RAID_ITEMS_TABLE => 'i'), 'WHERE' => 'c.class_id = l.member_class_id AND c.game_id = l.game_id AND l.member_race_id = a.race_id AND a.game_id = l.game_id and l.member_id = i.member_id AND ' . $db->sql_in_set('raid_id', $raid_ids)); $sql = $db->sql_build_query('SELECT', $sql_array); $result = $db->sql_query_limit($sql, $config['bbdkp_user_ilimit'], $start); $number_items = 0; $item_value = 0.0; $item_decay = 0.0; $item_total = 0.0; while ($row = $db->sql_fetchrow($result)) { if ($Navigation->bbtips == true && $row['item_gameid'] == 'wow') { $item_name = '<strong>' . $Navigation->bbtips->parse('[itemdkp]' . $row['item_name'] . '[/itemdkp]') . '</strong>'; } else { $item_name = '<strong>' . $row['item_name'] . '</strong>'; } $race_image = (string) ($row['member_gender_id'] == 0 ? $row['image_male'] : $row['image_female']); $template->assign_block_vars('items_row', array('DATE' => date($config['bbdkp_date_format'], $row['item_date']), 'U_VIEW_RAID' => append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=raid&' . URI_RAID . '=' . $row['raid_id']), 'COLORCODE' => $row['colorcode'] == '' ? '#254689' : $row['colorcode'], 'CLASS_IMAGE' => strlen($row['imagename']) > 1 ? $phpbb_root_path . "images/bbdkp/class_images/" . $row['imagename'] . ".png" : '', 'S_CLASS_IMAGE_EXISTS' => strlen($row['imagename']) > 1 ? true : false, 'RACE_IMAGE' => strlen($race_image) > 1 ? $phpbb_root_path . "images/bbdkp/race_images/" . $race_image . ".png" : '', 'S_RACE_IMAGE_EXISTS' => strlen($race_image) > 1 ? true : false, 'BUYER' => !empty($row['member_name']) ? $row['member_name'] : '<<i>Not Found</i>>', 'U_VIEW_MEMBER' => append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=member&' . URI_NAMEID . '=' . $row['member_id'] . '&' . URI_DKPSYS . '=' . $Navigation->getDkpsysId()), 'ITEMNAME' => $item_name, 'U_VIEW_ITEM' => append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=item&' . URI_ITEM . '=' . $row['item_id']), 'ITEM_ZS' => $row['item_zs'] == 1 ? ' checked="checked"' : '', 'ITEMVALUE' => $row['item_value'], 'DECAYVALUE' => $row['item_decay'], 'TOTAL' => $row['item_total'])); $number_items++; $item_value += $row['item_value']; $item_decay += $row['item_decay']; $item_total += $row['item_total']; } $itempagination = generate_pagination($url, $total_drop_count, $config['bbdkp_user_ilimit'], $start, true); $template->assign_vars(array('RAIDPAGINATION' => $raidpagination, 'O_DATE' => $current_order['uri'][0], 'O_NOTE' => $current_order['uri'][1], 'O_VALUE' => $current_order['uri'][2], 'DKPPOOL' => $event->dkpsys_name, 'AVERAGE_ATTENDEES' => $average_attendees, 'AVERAGE_DROPS' => $average_drops, 'TOTAL_EARNED' => sprintf("%.2f", $total_earned), 'VIEWEVENT_FOOTCOUNT' => sprintf($user->lang['VIEWEVENT_FOOTCOUNT'], $total_raid_count), 'S_SHOWZS' => $config['bbdkp_zerosum'] == '1' ? true : false, 'S_SHOWTIME' => $config['bbdkp_timebased'] == '1' ? true : false, 'S_SHOWDECAY' => $config['bbdkp_decay'] == '1' ? true : false, 'L_RECORDED_DROP_HISTORY' => sprintf($user->lang['RECORDED_DROP_HISTORY'], $event->event_name), 'ITEM_FOOTCOUNT' => sprintf($user->lang['VIEWITEM_FOOTCOUNT'], $total_drop_count, $total_drop_count), 'START' => $start, 'ITEM_PAGINATION' => $itempagination, 'S_DISPLAY_VIEWEVENT' => true, 'S_EPGP' => $config['bbdkp_epgp'] == '1' ? true : false)); } else { $template->assign_vars(array('S_DISPLAY_VIEWEVENT' => true, 'U_VIEW_EVENT' => $url)); } // build breadcrumbs menu $navlinks_array = array(array('DKPPAGE' => $user->lang['MENU_EVENTS'], 'U_DKPPAGE' => append_sid("{$phpbb_root_path}dkp.{$phpEx}", 'page=listevents&guild_id=' . $Navigation->getGuildId())), array('DKPPAGE' => $event->event_name, 'U_DKPPAGE' => $url)); foreach ($navlinks_array as $name) { $template->assign_block_vars('dkpnavlinks', array('DKPPAGE' => $name['DKPPAGE'], 'U_DKPPAGE' => $name['U_DKPPAGE'])); } // Output page page_header($user->lang['MENU_VIEWEVENT'] . ' ' . $event->event_name); }