예제 #1
0
    /**
     * lists all my characters
     *
     */
    private function listmychars()
    {
        global $db, $user, $auth, $template, $config, $phpbb_root_path, $phpEx;
        $members = new \bbdkp\controller\members\Members();
        $mycharacters = $members->getmemberlist(0, 0, false, false, '', '', 0, 0, 0, 0, 200, true, '', 1);
        $lines = 0;
        foreach ($mycharacters[0] as $char) {
            $template->assign_block_vars('members_row', array('U_EDIT' => append_sid("{$phpbb_root_path}ucp.{$phpEx}", "i=dkp&mode=characteradd&" . URI_NAMEID . '=' . $char['member_id']), 'GAME' => $char['game_id'], 'COLORCODE' => $char['colorcode'], 'CLASS' => $char['class_name'], 'NAME' => $char['member_name'], 'RACE' => $char['race_name'], 'GUILD' => $char['guildname'], 'REALM' => $char['realm'], 'REGION' => $char['region'], 'RANK' => $char['member_rank'], 'LEVEL' => $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']));
            $sql_array2 = array('SELECT' => ' d.dkpsys_id, d.dkpsys_name,
				SUM(m.member_earned + m.member_adjustment) AS ep,
			    SUM(m.member_spent - m.member_item_decay + ( ' . max(0, $config['bbdkp_basegp']) . ')) AS gp,
     			SUM(m.member_earned + m.member_adjustment - m.member_spent + m.member_item_decay - ( ' . max(0, $config['bbdkp_basegp']) . ') ) AS member_current,
				CASE WHEN SUM(m.member_spent - m.member_item_decay) <= 0
					THEN SUM(m.member_earned + m.member_adjustment)
					ELSE ROUND( SUM(m.member_earned + m.member_adjustment) /  SUM(' . max(0, $config['bbdkp_basegp']) . ' + m.member_spent - m.member_item_decay) ,2)
				END AS pr', 'FROM' => array(MEMBER_DKP_TABLE => 'm', DKPSYS_TABLE => 'd', MEMBER_LIST_TABLE => 'l'), 'WHERE' => "l.member_id = m.member_id and l.member_status = 1 and m.member_dkpid = d.dkpsys_id and d.dkpsys_status='Y' and m.member_id = " . $char['member_id'], 'GROUP_BY' => " d.dkpsys_id, d.dkpsys_name ", 'ORDER_BY' => " d.dkpsys_name ");
            $sql2 = $db->sql_build_query('SELECT', $sql_array2);
            $dkp_result = $db->sql_query($sql2);
            while ($row2 = $db->sql_fetchrow($dkp_result)) {
                $template->assign_block_vars('members_row.dkp_row', array('DKPSYS' => $row2['dkpsys_name'], 'U_VIEW_MEMBER' => append_sid("{$phpbb_root_path}dkp.{$phpEx}", "page=member&amp;" . URI_NAMEID . '=' . $char['member_id'] . '&amp;' . URI_DKPSYS . '= ' . $row2['dkpsys_id']), 'EARNED' => $row2['ep'], 'SPENT' => $row2['gp'], 'PR' => $row2['pr'], 'CURRENT' => $row2['member_current']));
            }
            $db->sql_freeresult($dkp_result);
        }
        $template->assign_vars(array('S_SHOWEPGP' => $config['bbdkp_epgp'] == '1' ? true : false));
    }
예제 #2
0
 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&amp;rosterlayout=' . $mode . '&amp;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&amp;' . URI_NAMEID . '=' . $char['member_id'] . '&amp;' . 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 . '&amp;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 . '&amp;' . URI_ORDER . '=' . $characters[1]['uri'][0], 'O_CLASS' => $url . '&amp;' . URI_ORDER . '=' . $characters[1]['uri'][2], 'O_RANK' => $url . '&amp;' . URI_ORDER . '=' . $characters[1]['uri'][3], 'O_LEVEL' => $url . '&amp;' . URI_ORDER . '=' . $characters[1]['uri'][4], 'O_PHPBB' => $url . '&amp;' . URI_ORDER . '=' . $characters[1]['uri'][5], 'O_ACHI' => $url . '&amp;' . 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 . '&amp;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 . '&amp;' . URI_ORDER . '=' . $characters[1]['uri'][0], 'U_LIST_MEMBERS1' => $url . '&amp;' . URI_ORDER . '=' . $characters[1]['uri'][1], 'U_LIST_MEMBERS2' => $url . '&amp;' . URI_ORDER . '=' . $characters[1]['uri'][2], 'U_LIST_MEMBERS3' => $url . '&amp;' . URI_ORDER . '=' . $characters[1]['uri'][3], 'U_LIST_MEMBERS4' => $url . '&amp;' . 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);
 }