Changeset 475

Show
Ignore:
Timestamp:
11/09/09 23:57:06 (11 years ago)
Author:
kovell
Message:

Improved PHP4 compatiblity. Named sessions. Cron feedfetch sets error reporting appropriately. Search is less restrictive by default.

Location:
dev
Files:
7 modified

Legend:

Unmodified
Added
Removed
  • dev/common/awards.php

    r240 r475  
    44$page = new Page('Awards'); 
    55 
    6 $month = $_GET['m']; 
    7 $year = $_GET['y']; 
     6$month = intval($_GET['m']); 
     7$year = intval($_GET['y']); 
    88 
    99if ($month == '') 
  • dev/common/campaigns.php

    r459 r475  
    33 
    44$page = new Page('Campaigns'); 
    5  
     5$pagenum = intval($_GET['page']); 
    66switch ($_GET['view']) 
    77{ 
     
    1212                $page->setTitle('Active campaigns'); 
    1313                $table = new ContractListTable($activelist); 
    14                 $table->paginate(10, intval($_GET['page'])); 
     14                $table->paginate(10, $pagenum); 
    1515                $html .= $table->generate(); 
    1616                break; 
     
    2121                $page->setTitle('Past campaigns'); 
    2222                $table = new ContractListTable($pastlist); 
    23                 $table->paginate(10, intval($_GET['page'])); 
     23                $table->paginate(10, $pagenum); 
    2424                $html .= $table->generate(); 
    2525                break; 
     
    3434$page->setContent($html); 
    3535$page->generate(); 
    36 ?> 
  • dev/common/includes/class.session.php

    r468 r475  
    55        function init() 
    66        { 
    7 //              if (isset($_REQUEST[session_name()]) || isset($_COOKIE[session_name()])) 
     7                session_name("EDK_".preg_replace('/[^a-zA-Z0-9_-]/', '',KB_SITE)); 
    88                if (isset($_COOKIE[session_name()])) 
    99                { 
     
    1818        function isAdmin() 
    1919        { 
     20                if(!isset($_SESSION['admin']) || !isset($_SESSION['rsite']) || !isset($_SESSION['site']) ) return false; 
    2021                return (bool)($_SESSION['admin'] && $_SESSION['rsite'] == $_SERVER["HTTP_HOST"] && md5(KB_SITE) == $_SESSION['site']); 
    2122        } 
     
    2324        function isSuperAdmin() 
    2425        { 
     26                if(!isset($_SESSION['admin']) || !isset($_SESSION['rsite']) || !isset($_SESSION['site']) ) return false; 
    2527                return (bool)($_SESSION['admin_super'] && $_SESSION['rsite'] == $_SERVER["HTTP_HOST"] && md5(KB_SITE) == $_SESSION['site']); 
    2628        } 
     
    2830        function create($admin = false) 
    2931        { 
     32                session_name("EDK_".preg_replace('/[^a-zA-Z0-9_-]/', '',KB_SITE)); 
    3033                session_start(); 
    31                 session_regenerate_id(); 
     34                if(function_exists('session_regenerate_id')) session_regenerate_id(); 
    3235                $_SESSION['admin'] = $admin; 
    3336                $_SESSION['rsite'] = $_SERVER["HTTP_HOST"]; 
  • dev/common/includes/globals.php

    r471 r475  
    169169        } 
    170170} 
     171 
     172if (!function_exists('file_get_contents')) 
     173{ 
     174        function file_get_contents($filename, $incpath = false, $resource_context = null) 
     175        { 
     176                if (false === $f = fopen($filename, 'rb', $incpath)) 
     177                { 
     178                        trigger_error('file_get_contents() failed to open stream: No such file or directory', E_USER_WARNING); 
     179                        return false; 
     180                } 
     181 
     182                $data = ''; 
     183                if ($fsize = @filesize($filename)) 
     184                { 
     185                        while (!feof($f)) $data .= fread($f, $fsize); 
     186                } 
     187                else 
     188                { 
     189                        while (!feof($f)) $data .= fread($f, 8192); 
     190                } 
     191 
     192                fclose($f); 
     193                return $data; 
     194        } 
     195} 
  • dev/common/search.php

    r389 r475  
    1111$html .= "</tr></table>"; 
    1212$html .= "</form>"; 
    13 $html .= "<div>Searches for all names beginning with the search phrase. To search for the phrase anywhere in the name use *yourquery.</div>"; 
    1413 
    1514$searchphrase = slashfix($_REQUEST['searchphrase']); 
     
    2322            $sql = "select plt.plt_id, plt.plt_name, crp.crp_name 
    2423                  from kb3_pilots plt, kb3_corps crp 
    25                  where plt.plt_name  like '".$searchphrase."%' 
     24                 where plt.plt_name  like '%".$searchphrase."%' 
    2625                   and plt.plt_crp_id = crp.crp_id 
    2726                 order by plt.plt_name"; 
     
    3130            $sql = "select crp.crp_id, crp.crp_name, ali.all_name 
    3231                  from kb3_corps crp, kb3_alliances ali 
    33                  where lower( crp.crp_name ) like lower( '".$searchphrase."%' ) 
     32                 where lower( crp.crp_name ) like lower( '%".$searchphrase."%' ) 
    3433                   and crp.crp_all_id = ali.all_id 
    3534                 order by crp.crp_name"; 
  • dev/cron/cron_fetcher.php

    r461 r475  
    1111define('MASTER', 0); 
    1212 
     13@error_reporting(E_ERROR); 
    1314@set_time_limit(0); 
    1415$cronstarttime = microtime(true); 
  • dev/mods/rank_mod/alliance_detail.php

    r465 r475  
    1010if (!$all_id = intval($_GET['all_id'])) 
    1111{ 
    12     if (ALLIANCE_ID) 
    13     { 
    14         $all_id = ALLIANCE_ID; 
    15     } 
    16     else 
    17     { 
    18         echo 'no valid alliance id specified<br/>'; 
    19         return; 
    20     } 
     12        if (ALLIANCE_ID) 
     13        { 
     14                $all_id = ALLIANCE_ID; 
     15        } 
     16        else 
     17        { 
     18                echo 'no valid alliance id specified<br/>'; 
     19                return; 
     20        } 
    2121} 
    2222$scl_id = intval($_GET['scl_id']); 
     23if(isset($_GET['page'])) $pagelim = intval($_GET['page']); 
     24else $pagelim = false; 
    2325 
    2426$rank_known = config::get('rankmod_known'); 
    2527 
    2628$medals=array( 
    27 array( 'type' => 'eagle', 'name' => 'Killer', 'cnt' => 0, 'mname' =>'Silver Eagle'),            // 0 
    28 array( 'type' => 'redcross', 'name' => 'Scorer', 'cnt' => 0,  'mname' =>'Iron Cross'),          // 1 
    29 array( 'type' => 'cross', 'name' => 'Solo Killer', 'cnt' => 0, 'mname' =>'Winged Cross'),       // 2 
    30 array( 'type' => 'wing1', 'name' => 'Damagedealer', 'cnt' => 0, 'mname' =>'Diamond Wing'),      // 3     
    31 array( 'type' => 'skull', 'name' => 'Final Blows', 'cnt' => 0, 'mname' =>'Red Skull'),          // 4 
    32 array( 'type' => 'globe', 'name' => 'Podkiller', 'cnt' => 0, 'mname' =>'Silver Globe'),         // 5 
    33 array( 'type' => 'star', 'name' => 'Griefer', 'cnt' => 0, 'mname' =>'Golden Star'),             // 6 
    34 array( 'type' => 'wing2', 'name' => 'ISK Killer', 'cnt' => 0, 'mname' =>'Gold Wing'),           // 7 
    35 array( 'type' => 'moon', 'name' => 'Loser', 'cnt' => 0, 'mname' =>'Purple Moon')                // 8 
     29        array( 'type' => 'eagle', 'name' => 'Killer', 'cnt' => 0, 'mname' =>'Silver Eagle'),            // 0 
     30        array( 'type' => 'redcross', 'name' => 'Scorer', 'cnt' => 0,  'mname' =>'Iron Cross'),          // 1 
     31        array( 'type' => 'cross', 'name' => 'Solo Killer', 'cnt' => 0, 'mname' =>'Winged Cross'),       // 2 
     32        array( 'type' => 'wing1', 'name' => 'Damagedealer', 'cnt' => 0, 'mname' =>'Diamond Wing'),      // 3 
     33        array( 'type' => 'skull', 'name' => 'Final Blows', 'cnt' => 0, 'mname' =>'Red Skull'),          // 4 
     34        array( 'type' => 'globe', 'name' => 'Podkiller', 'cnt' => 0, 'mname' =>'Silver Globe'),         // 5 
     35        array( 'type' => 'star', 'name' => 'Griefer', 'cnt' => 0, 'mname' =>'Golden Star'),             // 6 
     36        array( 'type' => 'wing2', 'name' => 'ISK Killer', 'cnt' => 0, 'mname' =>'Gold Wing'),           // 7 
     37        array( 'type' => 'moon', 'name' => 'Loser', 'cnt' => 0, 'mname' =>'Purple Moon')                // 8 
    3638); 
    3739 
     
    4345if (file_exists("img/alliances/".$alliance->getUnique().".png")) 
    4446{ 
    45     $html .= "<img src=\"".IMG_URL."/alliances/".$alliance->getUnique().".png\" border=\"0\"></td>"; 
     47        $html .= "<img src=\"".IMG_URL."/alliances/".$alliance->getUnique().".png\" border=\"0\"></td>"; 
    4648} 
    4749else 
    4850{ 
    49     $html .= "<img src=\"".IMG_URL."/alliances/default.gif\" border=\"0\"></td>"; 
     51        $html .= "<img src=\"".IMG_URL."/alliances/default.gif\" border=\"0\"></td>"; 
    5052} 
    5153$kill_summary = new KillSummaryTable(); 
     
    5759$k_count=$kill_summary->getTotalKills(); 
    5860$l_count=$kill_summary->getTotalLosses(); 
    59           if (($k_cost == 0) && ($l_cost == 0)) { 
    60             $efficiency = 'N/A'; 
    61           } elseif ($k_cost == 0) { 
    62             $efficiency = '0%'; 
    63           } elseif ($l_cost == 0) { 
    64             $efficiency = '100%'; 
    65           } else { 
    66             $efficiency = round($k_cost / ($k_cost + $l_cost) * 100, 2).'%'; 
    67           } 
    68           if ($k_cost >= 1000000000) { 
    69             $k_cost = round($k_cost / 1000000000, 2).'B'; 
    70           } else {  
    71             $k_cost = round($k_cost / 1000000, 2).'M'; 
    72           } 
    73           if ($l_cost >= 1000000000) { 
    74             $l_cost = round($l_cost / 1000000000, 2).'B'; 
    75           } else {  
    76             $l_cost = round($l_cost / 1000000, 2).'M'; 
    77           } 
    78           if ($k_count == 0) { 
    79             $k_ratio = 'N/A'; 
    80           } elseif ($l_count == 0) { 
    81             $k_ratio = $k_count.' : 0'; 
    82           } else { 
    83             $k_ratio = round($k_count / $l_count, 2).' : 1'; 
    84           } 
     61if (($k_cost == 0) && ($l_cost == 0)) 
     62{ 
     63        $efficiency = 'N/A'; 
     64} elseif ($k_cost == 0) 
     65{ 
     66        $efficiency = '0%'; 
     67} elseif ($l_cost == 0) 
     68{ 
     69        $efficiency = '100%'; 
     70} else 
     71{ 
     72        $efficiency = round($k_cost / ($k_cost + $l_cost) * 100, 2).'%'; 
     73} 
     74if ($k_cost >= 1000000000) 
     75{ 
     76        $k_cost = round($k_cost / 1000000000, 2).'B'; 
     77} else 
     78{  
     79        $k_cost = round($k_cost / 1000000, 2).'M'; 
     80} 
     81if ($l_cost >= 1000000000) 
     82{ 
     83        $l_cost = round($l_cost / 1000000000, 2).'B'; 
     84} else 
     85{  
     86        $l_cost = round($l_cost / 1000000, 2).'M'; 
     87} 
     88if ($k_count == 0) 
     89{ 
     90        $k_ratio = 'N/A'; 
     91} elseif ($l_count == 0) 
     92{ 
     93        $k_ratio = $k_count.' : 0'; 
     94} else 
     95{ 
     96        $k_ratio = round($k_count / $l_count, 2).' : 1'; 
     97} 
    8598 
    8699$html .= "<td class=kb-table-cell width=180><b>Kills:</b></td><td class=kl-kill>".$k_count."</td></tr>"; 
     
    95108if ($_GET['view'] == "" || $_GET['view'] == "kills" || $_GET['view'] == "losses") 
    96109{ 
    97     $html .= $summary_html; 
     110        $html .= $summary_html; 
    98111} 
    99112 
    100113switch ($_GET['view']) 
    101114{ 
    102     case "": 
    103         $html .= "<div class=kb-kills-header>10 Most recent kills</div>"; 
    104  
    105         $list = new KillList(); 
    106         $list->setOrdered(true); 
    107         $list->setLimit(10); 
    108         $list->setPodsNoobships(true); 
    109         $list->addInvolvedAlliance($alliance); 
    110         if ($scl_id) 
    111             $list->addVictimShipClass($scl_id); 
    112  
    113         $ktab = new KillListTable($list); 
    114         $ktab->setLimit(10); 
    115         $ktab->setDayBreak(false); 
    116         $html .= $ktab->generate(); 
    117  
    118         $html .= "<div class=kb-losses-header>10 Most recent losses</div>"; 
    119  
    120         $list = new KillList(); 
    121         $list->setOrdered(true); 
    122         $list->setLimit(10); 
    123         $list->setPodsNoobships(true); 
    124         $list->addVictimAlliance($alliance); 
    125         if ($scl_id) 
    126             $list->addVictimShipClass($scl_id); 
    127  
    128         $ltab = new KillListTable($list); 
    129         $ltab->setLimit(10); 
    130         $ltab->setDayBreak(false); 
    131         $html .= $ltab->generate(); 
    132  
    133         break; 
    134     case "kills": 
    135         $html .= "<div class=kb-kills-header>All kills</div>"; 
    136  
    137         $list = new KillList(); 
    138         $list->setOrdered(true); 
    139         $list->addInvolvedAlliance($alliance); 
    140         if ($scl_id) 
    141             $list->addVictimShipClass($scl_id); 
    142         $pagesplitter = new PageSplitter($list->getCount(), 30); 
    143         $list->setPageSplitter($pagesplitter); 
    144         $table = new KillListTable($list); 
    145         $table->setDayBreak(false); 
    146         $html .= $table->generate(); 
    147         $html .= $pagesplitter->generate(); 
    148  
    149         break; 
    150     case "losses": 
    151         $html .= "<div class=kb-losses-header>All losses</div>"; 
    152  
    153         $list = new KillList(); 
    154         $list->setOrdered(true); 
    155         $list->setPodsNoobships(true); 
    156         $list->addVictimAlliance($alliance); 
    157         if ($scl_id) 
    158             $list->addVictimShipClass($scl_id); 
    159         $pagesplitter = new PageSplitter($list->getCount(), 30); 
    160         $list->setPageSplitter($pagesplitter); 
    161  
    162         $table = new KillListTable($list); 
    163         $table->setDayBreak(false); 
    164         $html .= $table->generate(); 
    165         $html .= $pagesplitter->generate(); 
    166  
    167         break; 
    168     case "corp_kills": 
    169         $html .= "<div class=block-header2>Top killers</div>"; 
    170  
    171         $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
    172         $html .= "<div class=block-header>This month</div>"; 
    173  
    174         $list = new TopCorpKillsList(); 
    175         $list->addInvolvedAlliance($alliance); 
    176         $list->setPodsNoobShips(false); 
    177         $list->setMonth(kbdate("m")); 
    178         $list->setYear(kbdate("Y")); 
    179         $table = new TopCorpTable($list, "Kills"); 
    180         $html .= $table->generate(); 
    181  
    182         $html .= "</td><td valign=top width=400>"; 
    183         $html .= "<div class=block-header>All time</div>"; 
    184  
    185         $list = new TopCorpKillsList(); 
    186         $list->addInvolvedAlliance($alliance); 
    187         $list->setPodsNoobShips(false); 
    188         $table = new TopCorpTable($list, "Kills"); 
    189         $html .= $table->generate(); 
    190  
    191         $html .= "</td></tr></table>"; 
    192  
    193         break; 
    194     case "corp_kills_class": 
    195         $html .= "<div class=block-header2>Destroyed ships</div>"; 
    196  
    197         // Get all ShipClasses 
    198         $sql = "select scl_id, scl_class from kb3_ship_classes 
     115        case "": 
     116                $html .= "<div class=kb-kills-header>10 Most recent kills</div>"; 
     117 
     118                $list = new KillList(); 
     119                $list->setOrdered(true); 
     120                $list->setLimit(10); 
     121                $list->setPodsNoobships(true); 
     122                $list->addInvolvedAlliance($alliance); 
     123                if ($scl_id) 
     124                        $list->addVictimShipClass($scl_id); 
     125 
     126                $ktab = new KillListTable($list); 
     127                $ktab->setLimit(10); 
     128                $ktab->setDayBreak(false); 
     129                $html .= $ktab->generate(); 
     130 
     131                $html .= "<div class=kb-losses-header>10 Most recent losses</div>"; 
     132 
     133                $list = new KillList(); 
     134                $list->setOrdered(true); 
     135                $list->setLimit(10); 
     136                $list->setPodsNoobships(true); 
     137                $list->addVictimAlliance($alliance); 
     138                if ($scl_id) 
     139                        $list->addVictimShipClass($scl_id); 
     140 
     141                $ltab = new KillListTable($list); 
     142                $ltab->setLimit(10); 
     143                $ltab->setDayBreak(false); 
     144                $html .= $ltab->generate(); 
     145 
     146                break; 
     147        case "kills": 
     148                $html .= "<div class=kb-kills-header>All kills</div>"; 
     149 
     150                $list = new KillList(); 
     151                $list->setOrdered(true); 
     152                $list->addInvolvedAlliance($alliance); 
     153                if ($scl_id) 
     154                        $list->addVictimShipClass($scl_id); 
     155                $pagesplitter = new PageSplitter($list->getCount(), 30); 
     156                $list->setPageSplitter($pagesplitter); 
     157                $table = new KillListTable($list); 
     158                $table->setDayBreak(false); 
     159                $html .= $table->generate(); 
     160                $html .= $pagesplitter->generate(); 
     161 
     162                break; 
     163        case "losses": 
     164                $html .= "<div class=kb-losses-header>All losses</div>"; 
     165 
     166                $list = new KillList(); 
     167                $list->setOrdered(true); 
     168                $list->setPodsNoobships(true); 
     169                $list->addVictimAlliance($alliance); 
     170                if ($scl_id) 
     171                        $list->addVictimShipClass($scl_id); 
     172                $pagesplitter = new PageSplitter($list->getCount(), 30); 
     173                $list->setPageSplitter($pagesplitter); 
     174 
     175                $table = new KillListTable($list); 
     176                $table->setDayBreak(false); 
     177                $html .= $table->generate(); 
     178                $html .= $pagesplitter->generate(); 
     179 
     180                break; 
     181        case "corp_kills": 
     182                $html .= "<div class=block-header2>Top killers</div>"; 
     183 
     184                $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
     185                $html .= "<div class=block-header>This month</div>"; 
     186 
     187                $list = new TopCorpKillsList(); 
     188                $list->addInvolvedAlliance($alliance); 
     189                $list->setPodsNoobShips(false); 
     190                $list->setMonth(kbdate("m")); 
     191                $list->setYear(kbdate("Y")); 
     192                $table = new TopCorpTable($list, "Kills"); 
     193                $html .= $table->generate(); 
     194 
     195                $html .= "</td><td valign=top width=400>"; 
     196                $html .= "<div class=block-header>All time</div>"; 
     197 
     198                $list = new TopCorpKillsList(); 
     199                $list->addInvolvedAlliance($alliance); 
     200                $list->setPodsNoobShips(false); 
     201                $table = new TopCorpTable($list, "Kills"); 
     202                $html .= $table->generate(); 
     203 
     204                $html .= "</td></tr></table>"; 
     205 
     206                break; 
     207        case "corp_kills_class": 
     208                $html .= "<div class=block-header2>Destroyed ships</div>"; 
     209 
     210                // Get all ShipClasses 
     211                $sql = "select scl_id, scl_class from kb3_ship_classes 
    199212            where scl_class not in ('Drone','Unknown') order by scl_class"; 
    200213 
    201         $qry = new DBQuery(); 
    202         $qry->execute($sql); 
    203         while ($row = $qry->getRow()) 
    204         { 
    205             $shipclass[] = new Shipclass($row['scl_id']); 
    206         } 
    207         $html .= "<table class=kb-subtable>"; 
    208         $html .= "<tr>"; 
    209         $newrow = true; 
    210  
    211         foreach ($shipclass as $shp){ 
    212             if ($newrow){ 
    213             $html .= '</tr><tr>'; 
    214             } 
    215             $list = new TopCorpKillsList(); 
    216             $list->addInvolvedAlliance($alliance); 
    217             $list->addVictimShipClass($shp); 
    218             $table = new TopCorpTable($list, "Kills"); 
    219             $content = $table->generate(); 
    220             if ($content != '<table class=kb-table cellspacing=1><tr class=kb-table-header><td class=kb-table-cell align=center>#</td><td class=kb-table-cell align=center>Corporation</td><td class=kb-table-cell align=center width=60>Kills</td></tr></table>'){ 
    221             $html .= "<td valign=top width=440>"; 
    222             $html .= "<div class=block-header>".$shp->getName()."</div>"; 
    223             $html .= $content; 
    224             $html .= "</td>"; 
    225             $newrow = !$newrow; 
    226             } 
    227  
    228         } 
    229         $html .= "</tr></table>"; 
    230  
    231         break; 
    232     case "kills_class": 
    233         $html .= "<div class=block-header2>Destroyed ships</div>"; 
    234  
    235         // Get all ShipClasses 
    236         $sql = "select scl_id, scl_class from kb3_ship_classes 
     214                $qry = new DBQuery(); 
     215                $qry->execute($sql); 
     216                while ($row = $qry->getRow()) 
     217                { 
     218                        $shipclass[] = new Shipclass($row['scl_id']); 
     219                } 
     220                $html .= "<table class=kb-subtable>"; 
     221                $html .= "<tr>"; 
     222                $newrow = true; 
     223 
     224                foreach ($shipclass as $shp) 
     225                { 
     226                        if ($newrow) 
     227                        { 
     228                                $html .= '</tr><tr>'; 
     229                        } 
     230                        $list = new TopCorpKillsList(); 
     231                        $list->addInvolvedAlliance($alliance); 
     232                        $list->addVictimShipClass($shp); 
     233                        $table = new TopCorpTable($list, "Kills"); 
     234                        $content = $table->generate(); 
     235                        if ($content != '<table class=kb-table cellspacing=1><tr class=kb-table-header><td class=kb-table-cell align=center>#</td><td class=kb-table-cell align=center>Corporation</td><td class=kb-table-cell align=center width=60>Kills</td></tr></table>') 
     236                        { 
     237                                $html .= "<td valign=top width=440>"; 
     238                                $html .= "<div class=block-header>".$shp->getName()."</div>"; 
     239                                $html .= $content; 
     240                                $html .= "</td>"; 
     241                                $newrow = !$newrow; 
     242                        } 
     243 
     244                } 
     245                $html .= "</tr></table>"; 
     246 
     247                break; 
     248        case "kills_class": 
     249                $html .= "<div class=block-header2>Destroyed ships</div>"; 
     250 
     251                // Get all ShipClasses 
     252                $sql = "select scl_id, scl_class from kb3_ship_classes 
    237253            where scl_class not in ('Drone','Unknown') order by scl_class"; 
    238254 
    239         $qry = new DBQuery(); 
    240         $qry->execute($sql); 
    241         while ($row = $qry->getRow()) 
    242         { 
    243             $shipclass[] = new Shipclass($row['scl_id']); 
    244         } 
    245         $html .= "<table class=kb-subtable>"; 
    246         $html .= "<tr>"; 
    247         $newrow = true; 
    248  
    249         foreach ($shipclass as $shp){ 
    250             if ($newrow){ 
    251             $html .= '</tr><tr>'; 
    252             } 
    253             $list = new TopKillsList(); 
    254             $list->addInvolvedAlliance($alliance); 
    255             $list->addVictimShipClass($shp); 
    256             $table = new TopPilotTable($list, "Kills"); 
    257             $content = $table->generate(); 
    258             if ($content != '<table class=kb-table cellspacing=1><tr class=kb-table-header><td class=kb-table-cell align=center colspan=2>Pilot</td><td class=kb-table-cell align=center width=60>Kills</td></tr></table>'){ 
    259             $html .= "<td valign=top width=440>"; 
    260             $html .= "<div class=block-header>".$shp->getName()."</div>"; 
    261             $html .= $content; 
    262             $html .= "</td>"; 
    263             $newrow = !$newrow; 
    264             } 
    265  
    266         } 
    267         $html .= "</tr></table>"; 
    268  
    269         break; 
    270     case "corp_losses_class": 
    271         $html .= "<div class=block-header2>Lost ships</div>"; 
    272  
    273             // Get all ShipClasses 
    274         $sql = "select scl_id, scl_class from kb3_ship_classes 
     255                $qry = new DBQuery(); 
     256                $qry->execute($sql); 
     257                while ($row = $qry->getRow()) 
     258                { 
     259                        $shipclass[] = new Shipclass($row['scl_id']); 
     260                } 
     261                $html .= "<table class=kb-subtable>"; 
     262                $html .= "<tr>"; 
     263                $newrow = true; 
     264 
     265                foreach ($shipclass as $shp) 
     266                { 
     267                        if ($newrow) 
     268                        { 
     269                                $html .= '</tr><tr>'; 
     270                        } 
     271                        $list = new TopKillsList(); 
     272                        $list->addInvolvedAlliance($alliance); 
     273                        $list->addVictimShipClass($shp); 
     274                        $table = new TopPilotTable($list, "Kills"); 
     275                        $content = $table->generate(); 
     276                        if ($content != '<table class=kb-table cellspacing=1><tr class=kb-table-header><td class=kb-table-cell align=center colspan=2>Pilot</td><td class=kb-table-cell align=center width=60>Kills</td></tr></table>') 
     277                        { 
     278                                $html .= "<td valign=top width=440>"; 
     279                                $html .= "<div class=block-header>".$shp->getName()."</div>"; 
     280                                $html .= $content; 
     281                                $html .= "</td>"; 
     282                                $newrow = !$newrow; 
     283                        } 
     284 
     285                } 
     286                $html .= "</tr></table>"; 
     287 
     288                break; 
     289        case "corp_losses_class": 
     290                $html .= "<div class=block-header2>Lost ships</div>"; 
     291 
     292                // Get all ShipClasses 
     293                $sql = "select scl_id, scl_class from kb3_ship_classes 
    275294            where scl_class not in ('Drone','Unknown') order by scl_class"; 
    276295 
    277         $qry = new DBQuery(); 
    278         $qry->execute($sql); 
    279         while ($row = $qry->getRow()) 
    280         { 
    281             $shipclass[] = new Shipclass($row['scl_id']); 
    282         } 
    283         $html .= "<table class=kb-subtable>"; 
    284         $html .= "<tr>"; 
    285         $newrow = true; 
    286  
    287         foreach ($shipclass as $shp){ 
    288             if ($newrow){ 
    289             $html .= '</tr><tr>'; 
    290             } 
    291             $list = new TopCorpLossesList(); 
    292                 $list->addVictimAlliance($alliance); 
    293             $list->addVictimShipClass($shp); 
    294             $table = new TopCorpTable($list, "Losses"); 
    295             $content = $table->generate(); 
    296             if ($content != '<table class=kb-table cellspacing=1><tr class=kb-table-header><td class=kb-table-cell align=center>#</td><td class=kb-table-cell align=center>Corporation</td><td class=kb-table-cell align=center width=60>Losses</td></tr></table>'){ 
    297             $html .= "<td valign=top width=440>"; 
    298                 $html .= "<div class=block-header>".$shp->getName()."</div>"; 
    299                 $html .= $content; 
    300             $html .= "</td>"; 
    301             $newrow = !$newrow; 
    302             } 
    303         } 
    304         $html .= "</tr></table>"; 
    305  
    306         break; 
    307     case "losses_class": 
    308         $html .= "<div class=block-header2>Lost ships</div>"; 
    309  
    310             // Get all ShipClasses 
    311         $sql = "select scl_id, scl_class from kb3_ship_classes 
     296                $qry = new DBQuery(); 
     297                $qry->execute($sql); 
     298                while ($row = $qry->getRow()) 
     299                { 
     300                        $shipclass[] = new Shipclass($row['scl_id']); 
     301                } 
     302                $html .= "<table class=kb-subtable>"; 
     303                $html .= "<tr>"; 
     304                $newrow = true; 
     305 
     306                foreach ($shipclass as $shp) 
     307                { 
     308                        if ($newrow) 
     309                        { 
     310                                $html .= '</tr><tr>'; 
     311                        } 
     312                        $list = new TopCorpLossesList(); 
     313                        $list->addVictimAlliance($alliance); 
     314                        $list->addVictimShipClass($shp); 
     315                        $table = new TopCorpTable($list, "Losses"); 
     316                        $content = $table->generate(); 
     317                        if ($content != '<table class=kb-table cellspacing=1><tr class=kb-table-header><td class=kb-table-cell align=center>#</td><td class=kb-table-cell align=center>Corporation</td><td class=kb-table-cell align=center width=60>Losses</td></tr></table>') 
     318                        { 
     319                                $html .= "<td valign=top width=440>"; 
     320                                $html .= "<div class=block-header>".$shp->getName()."</div>"; 
     321                                $html .= $content; 
     322                                $html .= "</td>"; 
     323                                $newrow = !$newrow; 
     324                        } 
     325                } 
     326                $html .= "</tr></table>"; 
     327 
     328                break; 
     329        case "losses_class": 
     330                $html .= "<div class=block-header2>Lost ships</div>"; 
     331 
     332                // Get all ShipClasses 
     333                $sql = "select scl_id, scl_class from kb3_ship_classes 
    312334            where scl_class not in ('Drone','Unknown') order by scl_class"; 
    313335 
    314         $qry = new DBQuery(); 
    315         $qry->execute($sql); 
    316         while ($row = $qry->getRow()) 
    317         { 
    318             $shipclass[] = new Shipclass($row['scl_id']); 
    319         } 
    320         $html .= "<table class=kb-subtable>"; 
    321         $html .= "<tr>"; 
    322         $newrow = true; 
    323  
    324         foreach ($shipclass as $shp){ 
    325             if ($newrow){ 
    326             $html .= '</tr><tr>'; 
    327             } 
    328             $list = new TopLossesList(); 
    329                 $list->addVictimAlliance($alliance); 
    330             $list->addVictimShipClass($shp); 
    331             $table = new TopPilotTable($list, "Losses"); 
    332             $content = $table->generate(); 
    333             if ($content != '<table class=kb-table cellspacing=1><tr class=kb-table-header><td class=kb-table-cell align=center colspan=2>Pilot</td><td class=kb-table-cell align=center width=60>Losses</td></tr></table>'){ 
    334             $html .= "<td valign=top width=440>"; 
    335                 $html .= "<div class=block-header>".$shp->getName()."</div>"; 
    336                 $html .= $content; 
    337             $html .= "</td>"; 
    338             $newrow = !$newrow; 
    339             } 
    340         } 
    341         $html .= "</tr></table>"; 
    342  
    343         break; 
    344     case "corp_losses": 
    345         $html .= "<div class=block-header2>Top losers</div>"; 
    346  
    347         $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
    348         $html .= "<div class=block-header>This month</div>"; 
    349  
    350         $list = new TopCorpLossesList(); 
    351         $list->addVictimAlliance($alliance); 
    352         $list->setPodsNoobShips(false); 
    353         $list->setMonth(kbdate("m")); 
    354         $list->setYear(kbdate("Y")); 
    355         $table = new TopCorpTable($list, "Losses"); 
    356         $html .= $table->generate(); 
    357  
    358         $html .= "</td><td valign=top width=400>"; 
    359         $html .= "<div class=block-header>All time</div>"; 
    360  
    361         $list = new TopCorpLossesList(); 
    362         $list->addVictimAlliance($alliance); 
    363         $list->setPodsNoobShips(false); 
    364         $table = new TopCorpTable($list, "Losses"); 
    365         $html .= $table->generate(); 
    366  
    367         $html .= "</td></tr></table>"; 
    368  
    369         break; 
    370     case "pilot_kills": 
    371         $html .= "<div class=block-header2>Top killers</div>"; 
    372  
    373         $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
    374         $html .= "<div class=block-header>This month</div>"; 
    375  
    376         $list = new TopKillsList(); 
    377         $list->addInvolvedAlliance($alliance); 
    378         $list->setPodsNoobShips(false); 
    379         $list->setMonth(kbdate("m")); 
    380         $list->setYear(kbdate("Y")); 
    381         $table = new TopPilotTable($list, "Kills"); 
    382         $html .= $table->generate(); 
    383  
    384         $html .= "</td><td valign=top width=400>"; 
    385         $html .= "<div class=block-header>All time</div>"; 
    386  
    387         $list = new TopKillsList(); 
    388         $list->addInvolvedAlliance($alliance); 
    389         $list->setPodsNoobShips(false); 
    390         $table = new TopPilotTable($list, "Kills"); 
    391         $html .= $table->generate(); 
    392  
    393         $html .= "</td></tr></table>"; 
    394  
    395         break; 
    396     case "pilot_scores": 
    397         $html .= "<div class=block-header2>Top scorers</div>"; 
    398  
    399         $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
    400         $html .= "<div class=block-header>This month</div>"; 
    401  
    402         $list = new TopScoreList(); 
    403         $list->addInvolvedAlliance($alliance); 
    404         $list->setPodsNoobShips(true); 
    405         $list->setMonth(kbdate("m")); 
    406         $list->setYear(kbdate("Y")); 
    407         $table = new TopPilotTable($list, "Points"); 
    408         $html .= $table->generate(); 
    409  
    410         $html .= "</td><td valign=top width=400>"; 
    411         $html .= "<div class=block-header>All time</div>"; 
    412  
    413         $list = new TopScoreList(); 
    414         $list->addInvolvedAlliance($alliance); 
    415         $list->setPodsNoobShips(true); 
    416         $table = new TopPilotTable($list, "Points"); 
    417         $html .= $table->generate(); 
    418  
    419         $html .= "</td></tr></table>"; 
    420  
    421         break; 
    422     case "pilot_losses": 
    423         $html .= "<div class=block-header2>Top losers</div>"; 
    424  
    425         $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
    426         $html .= "<div class=block-header>This month</div>"; 
    427  
    428         $list = new TopLossesList(); 
    429         $list->addVictimAlliance($alliance); 
    430         $list->setPodsNoobShips(false); 
    431         $list->setMonth(kbdate("m")); 
    432         $list->setYear(kbdate("Y")); 
    433         $table = new TopPilotTable($list, "Losses"); 
    434         $html .= $table->generate(); 
    435  
    436         $html .= "</td><td valign=top width=400>"; 
    437         $html .= "<div class=block-header>All time</div>"; 
    438  
    439         $list = new TopLossesList(); 
    440         $list->addVictimAlliance($alliance); 
    441         $list->setPodsNoobShips(false); 
    442         $table = new TopPilotTable($list, "Losses"); 
    443         $html .= $table->generate(); 
    444  
    445         $html .= "</td></tr></table>"; 
    446  
    447         break; 
    448     case "pilot_solo": 
    449         $html .= "<div class=block-header2>Top solokillers</div>"; 
    450  
    451         $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
    452         $html .= "<div class=block-header>This month</div>"; 
    453  
    454         $list = new TopSoloKillerList(); 
    455         $list->addInvolvedAlliance($alliance); 
    456         $list->setPodsNoobShips(true); 
    457         $list->setMonth(kbdate("m")); 
    458         $list->setYear(kbdate("Y")); 
    459         $table = new TopPilotTable($list, "Points"); 
    460         $html .= $table->generate(); 
    461  
    462         $html .= "</td><td valign=top width=400>"; 
    463         $html .= "<div class=block-header>All time</div>"; 
    464  
    465         $list = new TopSoloKillerList(); 
    466         $list->addInvolvedAlliance($alliance); 
    467         $list->setPodsNoobShips(true); 
    468         $table = new TopPilotTable($list, "Points"); 
    469         $html .= $table->generate(); 
    470  
    471         $html .= "</td></tr></table>"; 
    472  
    473         break; 
    474     case "pilot_damage": 
    475         $html .= "<div class=block-header2>Top damagedealers</div>"; 
    476  
    477         $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
    478         $html .= "<div class=block-header>This month</div>"; 
    479  
    480         $list = new TopDamageDealerList(); 
    481         $list->addInvolvedAlliance($alliance); 
    482         $list->setPodsNoobShips(true); 
    483         $list->setMonth(kbdate("m")); 
    484         $list->setYear(kbdate("Y")); 
    485         $table = new TopPilotTable($list, "Points"); 
    486         $html .= $table->generate(); 
    487  
    488         $html .= "</td><td valign=top width=400>"; 
    489         $html .= "<div class=block-header>All time</div>"; 
    490  
    491         $list = new TopDamageDealerList(); 
    492         $list->addInvolvedAlliance($alliance); 
    493         $list->setPodsNoobShips(true); 
    494         $table = new TopPilotTable($list, "Points"); 
    495         $html .= $table->generate(); 
    496  
    497         $html .= "</td></tr></table>"; 
    498  
    499         break; 
    500     case "pilot_blow": 
    501         $html .= "<div class=block-header2>Top finalblows</div>"; 
    502  
    503         $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
    504         $html .= "<div class=block-header>This month</div>"; 
    505  
    506         $list = new TopFinalBlowList(); 
    507         $list->addInvolvedAlliance($alliance); 
    508         $list->setPodsNoobShips(true); 
    509         $list->setMonth(kbdate("m")); 
    510         $list->setYear(kbdate("Y")); 
    511         $table = new TopPilotTable($list, "Points"); 
    512         $html .= $table->generate(); 
    513  
    514         $html .= "</td><td valign=top width=400>"; 
    515         $html .= "<div class=block-header>All time</div>"; 
    516  
    517         $list = new TopFinalBlowList(); 
    518         $list->addInvolvedAlliance($alliance); 
    519         $list->setPodsNoobShips(true); 
    520         $table = new TopPilotTable($list, "Points"); 
    521         $html .= $table->generate(); 
    522  
    523         $html .= "</td></tr></table>"; 
    524  
    525         break; 
    526     case "pilot_pod": 
    527         $html .= "<div class=block-header2>Top podkillers</div>"; 
    528  
    529         $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
    530         $html .= "<div class=block-header>This month</div>"; 
    531  
    532         $list = new TopPodKillerList(); 
    533         $list->addInvolvedAlliance($alliance); 
    534         $list->setPodsNoobShips(true); 
    535         $list->setMonth(kbdate("m")); 
    536         $list->setYear(kbdate("Y")); 
    537         $table = new TopPilotTable($list, "Points"); 
    538         $html .= $table->generate(); 
    539  
    540         $html .= "</td><td valign=top width=400>"; 
    541         $html .= "<div class=block-header>All time</div>"; 
    542  
    543         $list = new TopPodKillerList(); 
    544         $list->addInvolvedAlliance($alliance); 
    545         $list->setPodsNoobShips(true); 
    546         $table = new TopPilotTable($list, "Points"); 
    547         $html .= $table->generate(); 
    548  
    549         $html .= "</td></tr></table>"; 
    550  
    551         break; 
    552     case "pilot_griefer": 
    553         $html .= "<div class=block-header2>Top griefers</div>"; 
    554  
    555         $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
    556         $html .= "<div class=block-header>This month</div>"; 
    557  
    558         $list = new TopGrieferList(); 
    559         $list->addInvolvedAlliance($alliance); 
    560         $list->setPodsNoobShips(true); 
    561         $list->setMonth(kbdate("m")); 
    562         $list->setYear(kbdate("Y")); 
    563         $table = new TopPilotTable($list, "Points"); 
    564         $html .= $table->generate(); 
    565  
    566         $html .= "</td><td valign=top width=400>"; 
    567         $html .= "<div class=block-header>All time</div>"; 
    568  
    569         $list = new TopGrieferList(); 
    570         $list->addInvolvedAlliance($alliance); 
    571         $list->setPodsNoobShips(true); 
    572         $table = new TopPilotTable($list, "Points"); 
    573         $html .= $table->generate(); 
    574  
    575         $html .= "</td></tr></table>"; 
    576  
    577         break; 
    578     case "pilot_isk": 
    579         $html .= "<div class=block-header2>Top ISK killers</div>"; 
    580  
    581         $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
    582         $html .= "<div class=block-header>This month</div>"; 
    583  
    584         $list = new TopCapitalShipKillerList(); 
    585         $list->addInvolvedAlliance($alliance); 
    586         $list->setPodsNoobShips(true); 
    587         $list->setMonth(kbdate("m")); 
    588         $list->setYear(kbdate("Y")); 
    589         $table = new TopPilotTable($list, "Points"); 
    590         $html .= $table->generate(); 
    591  
    592         $html .= "</td><td valign=top width=400>"; 
    593         $html .= "<div class=block-header>All time</div>"; 
    594  
    595         $list = new TopCapitalShipKillerList(); 
    596         $list->addInvolvedAlliance($alliance); 
    597         $list->setPodsNoobShips(true); 
    598         $table = new TopPilotTable($list, "Points"); 
    599         $html .= $table->generate(); 
    600  
    601         $html .= "</td></tr></table>"; 
    602  
    603         break; 
    604     case "ships_weapons": 
    605         $html .= "<div class=block-header2>Ships & weapons used</div>"; 
    606  
    607         $html .= "<table class=kb-subtable><tr><td valign=top width=400>"; 
    608         $shiplist = new TopShipList(); 
    609         $shiplist->addInvolvedAlliance($alliance); 
    610         $shiplisttable = new TopShipListTable($shiplist); 
    611         $html .= $shiplisttable->generate(); 
    612         $html .= "</td><td valign=top align=right width=400>"; 
    613  
    614         $weaponlist = new TopWeaponList(); 
    615         $weaponlist->addInvolvedAlliance($alliance); 
    616         $weaponlisttable = new TopWeaponListTable($weaponlist); 
    617         $html .= $weaponlisttable->generate(); 
    618         $html .= "</td></tr></table>"; 
    619  
    620         break; 
    621     case 'violent_systems': 
    622         $html .= "<div class=block-header2>Most violent systems</div>"; 
    623         $html .= "<table width=\"99%\"><tr><td align=center valign=top>"; 
    624  
    625         $html .= "<div class=block-header>This month</div>"; 
    626         $html .= "<table class=kb-table>"; 
    627         $html .= "<tr class=kb-table-header><td>#</td><td width=180>System</td><td width=40 align=center >Kills</td></tr>"; 
    628  
    629         $sql = "select sys.sys_name, sys.sys_sec, sys.sys_id, count(distinct kll.kll_id) as kills 
     336                $qry = new DBQuery(); 
     337                $qry->execute($sql); 
     338                while ($row = $qry->getRow()) 
     339                { 
     340                        $shipclass[] = new Shipclass($row['scl_id']); 
     341                } 
     342                $html .= "<table class=kb-subtable>"; 
     343                $html .= "<tr>"; 
     344                $newrow = true; 
     345 
     346                foreach ($shipclass as $shp) 
     347                { 
     348                        if ($newrow) 
     349                        { 
     350                                $html .= '</tr><tr>'; 
     351                        } 
     352                        $list = new TopLossesList(); 
     353                        $list->addVictimAlliance($alliance); 
     354                        $list->addVictimShipClass($shp); 
     355                        $table = new TopPilotTable($list, "Losses"); 
     356                        $content = $table->generate(); 
     357                        if ($content != '<table class=kb-table cellspacing=1><tr class=kb-table-header><td class=kb-table-cell align=center colspan=2>Pilot</td><td class=kb-table-cell align=center width=60>Losses</td></tr></table>') 
     358                        { 
     359                                $html .= "<td valign=top width=440>"; 
     360                                $html .= "<div class=block-header>".$shp->getName()."</div>"; 
     361                                $html .= $content; 
     362                                $html .= "</td>"; 
     363                                $newrow = !$newrow; 
     364                        } 
     365                } 
     366                $html .= "</tr></table>"; 
     367 
     368                break; 
     369        case "corp_losses": 
     370                $html .= "<div class=block-header2>Top losers</div>"; 
     371 
     372                $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
     373                $html .= "<div class=block-header>This month</div>"; 
     374 
     375                $list = new TopCorpLossesList(); 
     376                $list->addVictimAlliance($alliance); 
     377                $list->setPodsNoobShips(false); 
     378                $list->setMonth(kbdate("m")); 
     379                $list->setYear(kbdate("Y")); 
     380                $table = new TopCorpTable($list, "Losses"); 
     381                $html .= $table->generate(); 
     382 
     383                $html .= "</td><td valign=top width=400>"; 
     384                $html .= "<div class=block-header>All time</div>"; 
     385 
     386                $list = new TopCorpLossesList(); 
     387                $list->addVictimAlliance($alliance); 
     388                $list->setPodsNoobShips(false); 
     389                $table = new TopCorpTable($list, "Losses"); 
     390                $html .= $table->generate(); 
     391 
     392                $html .= "</td></tr></table>"; 
     393 
     394                break; 
     395        case "pilot_kills": 
     396                $html .= "<div class=block-header2>Top killers</div>"; 
     397 
     398                $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
     399                $html .= "<div class=block-header>This month</div>"; 
     400 
     401                $list = new TopKillsList(); 
     402                $list->addInvolvedAlliance($alliance); 
     403                $list->setPodsNoobShips(false); 
     404                $list->setMonth(kbdate("m")); 
     405                $list->setYear(kbdate("Y")); 
     406                $table = new TopPilotTable($list, "Kills"); 
     407                $html .= $table->generate(); 
     408 
     409                $html .= "</td><td valign=top width=400>"; 
     410                $html .= "<div class=block-header>All time</div>"; 
     411 
     412                $list = new TopKillsList(); 
     413                $list->addInvolvedAlliance($alliance); 
     414                $list->setPodsNoobShips(false); 
     415                $table = new TopPilotTable($list, "Kills"); 
     416                $html .= $table->generate(); 
     417 
     418                $html .= "</td></tr></table>"; 
     419 
     420                break; 
     421        case "pilot_scores": 
     422                $html .= "<div class=block-header2>Top scorers</div>"; 
     423 
     424                $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
     425                $html .= "<div class=block-header>This month</div>"; 
     426 
     427                $list = new TopScoreList(); 
     428                $list->addInvolvedAlliance($alliance); 
     429                $list->setPodsNoobShips(true); 
     430                $list->setMonth(kbdate("m")); 
     431                $list->setYear(kbdate("Y")); 
     432                $table = new TopPilotTable($list, "Points"); 
     433                $html .= $table->generate(); 
     434 
     435                $html .= "</td><td valign=top width=400>"; 
     436                $html .= "<div class=block-header>All time</div>"; 
     437 
     438                $list = new TopScoreList(); 
     439                $list->addInvolvedAlliance($alliance); 
     440                $list->setPodsNoobShips(true); 
     441                $table = new TopPilotTable($list, "Points"); 
     442                $html .= $table->generate(); 
     443 
     444                $html .= "</td></tr></table>"; 
     445 
     446                break; 
     447        case "pilot_losses": 
     448                $html .= "<div class=block-header2>Top losers</div>"; 
     449 
     450                $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
     451                $html .= "<div class=block-header>This month</div>"; 
     452 
     453                $list = new TopLossesList(); 
     454                $list->addVictimAlliance($alliance); 
     455                $list->setPodsNoobShips(false); 
     456                $list->setMonth(kbdate("m")); 
     457                $list->setYear(kbdate("Y")); 
     458                $table = new TopPilotTable($list, "Losses"); 
     459                $html .= $table->generate(); 
     460 
     461                $html .= "</td><td valign=top width=400>"; 
     462                $html .= "<div class=block-header>All time</div>"; 
     463 
     464                $list = new TopLossesList(); 
     465                $list->addVictimAlliance($alliance); 
     466                $list->setPodsNoobShips(false); 
     467                $table = new TopPilotTable($list, "Losses"); 
     468                $html .= $table->generate(); 
     469 
     470                $html .= "</td></tr></table>"; 
     471 
     472                break; 
     473        case "pilot_solo": 
     474                $html .= "<div class=block-header2>Top solokillers</div>"; 
     475 
     476                $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
     477                $html .= "<div class=block-header>This month</div>"; 
     478 
     479                $list = new TopSoloKillerList(); 
     480                $list->addInvolvedAlliance($alliance); 
     481                $list->setPodsNoobShips(true); 
     482                $list->setMonth(kbdate("m")); 
     483                $list->setYear(kbdate("Y")); 
     484                $table = new TopPilotTable($list, "Points"); 
     485                $html .= $table->generate(); 
     486 
     487                $html .= "</td><td valign=top width=400>"; 
     488                $html .= "<div class=block-header>All time</div>"; 
     489 
     490                $list = new TopSoloKillerList(); 
     491                $list->addInvolvedAlliance($alliance); 
     492                $list->setPodsNoobShips(true); 
     493                $table = new TopPilotTable($list, "Points"); 
     494                $html .= $table->generate(); 
     495 
     496                $html .= "</td></tr></table>"; 
     497 
     498                break; 
     499        case "pilot_damage": 
     500                $html .= "<div class=block-header2>Top damagedealers</div>"; 
     501 
     502                $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
     503                $html .= "<div class=block-header>This month</div>"; 
     504 
     505                $list = new TopDamageDealerList(); 
     506                $list->addInvolvedAlliance($alliance); 
     507                $list->setPodsNoobShips(true); 
     508                $list->setMonth(kbdate("m")); 
     509                $list->setYear(kbdate("Y")); 
     510                $table = new TopPilotTable($list, "Points"); 
     511                $html .= $table->generate(); 
     512 
     513                $html .= "</td><td valign=top width=400>"; 
     514                $html .= "<div class=block-header>All time</div>"; 
     515 
     516                $list = new TopDamageDealerList(); 
     517                $list->addInvolvedAlliance($alliance); 
     518                $list->setPodsNoobShips(true); 
     519                $table = new TopPilotTable($list, "Points"); 
     520                $html .= $table->generate(); 
     521 
     522                $html .= "</td></tr></table>"; 
     523 
     524                break; 
     525        case "pilot_blow": 
     526                $html .= "<div class=block-header2>Top finalblows</div>"; 
     527 
     528                $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
     529                $html .= "<div class=block-header>This month</div>"; 
     530 
     531                $list = new TopFinalBlowList(); 
     532                $list->addInvolvedAlliance($alliance); 
     533                $list->setPodsNoobShips(true); 
     534                $list->setMonth(kbdate("m")); 
     535                $list->setYear(kbdate("Y")); 
     536                $table = new TopPilotTable($list, "Points"); 
     537                $html .= $table->generate(); 
     538 
     539                $html .= "</td><td valign=top width=400>"; 
     540                $html .= "<div class=block-header>All time</div>"; 
     541 
     542                $list = new TopFinalBlowList(); 
     543                $list->addInvolvedAlliance($alliance); 
     544                $list->setPodsNoobShips(true); 
     545                $table = new TopPilotTable($list, "Points"); 
     546                $html .= $table->generate(); 
     547 
     548                $html .= "</td></tr></table>"; 
     549 
     550                break; 
     551        case "pilot_pod": 
     552                $html .= "<div class=block-header2>Top podkillers</div>"; 
     553 
     554                $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
     555                $html .= "<div class=block-header>This month</div>"; 
     556 
     557                $list = new TopPodKillerList(); 
     558                $list->addInvolvedAlliance($alliance); 
     559                $list->setPodsNoobShips(true); 
     560                $list->setMonth(kbdate("m")); 
     561                $list->setYear(kbdate("Y")); 
     562                $table = new TopPilotTable($list, "Points"); 
     563                $html .= $table->generate(); 
     564 
     565                $html .= "</td><td valign=top width=400>"; 
     566                $html .= "<div class=block-header>All time</div>"; 
     567 
     568                $list = new TopPodKillerList(); 
     569                $list->addInvolvedAlliance($alliance); 
     570                $list->setPodsNoobShips(true); 
     571                $table = new TopPilotTable($list, "Points"); 
     572                $html .= $table->generate(); 
     573 
     574                $html .= "</td></tr></table>"; 
     575 
     576                break; 
     577        case "pilot_griefer": 
     578                $html .= "<div class=block-header2>Top griefers</div>"; 
     579 
     580                $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
     581                $html .= "<div class=block-header>This month</div>"; 
     582 
     583                $list = new TopGrieferList(); 
     584                $list->addInvolvedAlliance($alliance); 
     585                $list->setPodsNoobShips(true); 
     586                $list->setMonth(kbdate("m")); 
     587                $list->setYear(kbdate("Y")); 
     588                $table = new TopPilotTable($list, "Points"); 
     589                $html .= $table->generate(); 
     590 
     591                $html .= "</td><td valign=top width=400>"; 
     592                $html .= "<div class=block-header>All time</div>"; 
     593 
     594                $list = new TopGrieferList(); 
     595                $list->addInvolvedAlliance($alliance); 
     596                $list->setPodsNoobShips(true); 
     597                $table = new TopPilotTable($list, "Points"); 
     598                $html .= $table->generate(); 
     599 
     600                $html .= "</td></tr></table>"; 
     601 
     602                break; 
     603        case "pilot_isk": 
     604                $html .= "<div class=block-header2>Top ISK killers</div>"; 
     605 
     606                $html .= "<table class=kb-subtable><tr><td valign=top width=440>"; 
     607                $html .= "<div class=block-header>This month</div>"; 
     608 
     609                $list = new TopCapitalShipKillerList(); 
     610                $list->addInvolvedAlliance($alliance); 
     611                $list->setPodsNoobShips(true); 
     612                $list->setMonth(kbdate("m")); 
     613                $list->setYear(kbdate("Y")); 
     614                $table = new TopPilotTable($list, "Points"); 
     615                $html .= $table->generate(); 
     616 
     617                $html .= "</td><td valign=top width=400>"; 
     618                $html .= "<div class=block-header>All time</div>"; 
     619 
     620                $list = new TopCapitalShipKillerList(); 
     621                $list->addInvolvedAlliance($alliance); 
     622                $list->setPodsNoobShips(true); 
     623                $table = new TopPilotTable($list, "Points"); 
     624                $html .= $table->generate(); 
     625 
     626                $html .= "</td></tr></table>"; 
     627 
     628                break; 
     629        case "ships_weapons": 
     630                $html .= "<div class=block-header2>Ships & weapons used</div>"; 
     631 
     632                $html .= "<table class=kb-subtable><tr><td valign=top width=400>"; 
     633                $shiplist = new TopShipList(); 
     634                $shiplist->addInvolvedAlliance($alliance); 
     635                $shiplisttable = new TopShipListTable($shiplist); 
     636                $html .= $shiplisttable->generate(); 
     637                $html .= "</td><td valign=top align=right width=400>"; 
     638 
     639                $weaponlist = new TopWeaponList(); 
     640                $weaponlist->addInvolvedAlliance($alliance); 
     641                $weaponlisttable = new TopWeaponListTable($weaponlist); 
     642                $html .= $weaponlisttable->generate(); 
     643                $html .= "</td></tr></table>"; 
     644 
     645                break; 
     646        case 'violent_systems': 
     647                $html .= "<div class=block-header2>Most violent systems</div>"; 
     648                $html .= "<table width=\"99%\"><tr><td align=center valign=top>"; 
     649 
     650                $html .= "<div class=block-header>This month</div>"; 
     651                $html .= "<table class=kb-table>"; 
     652                $html .= "<tr class=kb-table-header><td>#</td><td width=180>System</td><td width=40 align=center >Kills</td></tr>"; 
     653 
     654                $sql = "select sys.sys_name, sys.sys_sec, sys.sys_id, count(distinct kll.kll_id) as kills 
    630655                    from kb3_systems sys, kb3_kills kll, kb3_inv_detail inv 
    631656                    where kll.kll_system_id = sys.sys_id 
    632657                    and inv.ind_kll_id = kll.kll_id"; 
    633658 
    634         if ($crp_id) 
    635             $sql .= " and inv.ind_crp_id in (".$crp_id.")"; 
    636         if ($all_id) 
    637             $sql .= " and inv.ind_all_id = ".$all_id; 
    638  
    639         $sql .= "   and date_format( kll.kll_timestamp, \"%c\" ) = ".kbdate("m")." 
     659                if ($crp_id) 
     660                        $sql .= " and inv.ind_crp_id in (".$crp_id.")"; 
     661                if ($all_id) 
     662                        $sql .= " and inv.ind_all_id = ".$all_id; 
     663 
     664                $sql .= "   and date_format( kll.kll_timestamp, \"%c\" ) = ".kbdate("m")." 
    640665                    and date_format( kll.kll_timestamp, \"%Y\" ) = ".kbdate("Y")." 
    641666                    group by sys.sys_name 
     
    643668                    limit 25"; 
    644669 
    645         $qry = new DBQuery(); 
    646         $qry->execute($sql); 
    647         $odd = false; 
    648         $counter = 1; 
    649         while ($row = $qry->getRow()) 
    650         { 
    651             if (!$odd) 
    652             { 
    653                 $odd = true; 
    654                 $rowclass = 'kb-table-row-odd'; 
    655             } 
    656             else 
    657             { 
    658                 $odd = false; 
    659                 $rowclass = 'kb-table-row-even'; 
    660             } 
    661  
    662             $html .= "<tr class=".$rowclass."><td><b>".$counter.".</b></td><td class=kb-table-cell width=180><b><a href=\"?a=system_detail&amp;sys_id=".$row['sys_id']."\">".$row['sys_name']."</a></b> (".roundsec($row['sys_sec']).")</td><td align=center>".$row['kills']."</td></tr>"; 
    663             $counter++; 
    664         } 
    665  
    666         $html .= "</table>"; 
    667  
    668         $html .= "</td><td align=center valign=top>"; 
    669         $html .= "<div class=block-header>All-Time</div>"; 
    670         $html .= "<table class=kb-table>"; 
    671         $html .= "<tr class=kb-table-header><td>#</td><td width=180>System</td><td width=40 align=center>Kills</td></tr>"; 
    672  
    673         $sql = "select sys.sys_name, sys.sys_id, sys.sys_sec, count(distinct kll.kll_id) as kills 
     670                $qry = new DBQuery(); 
     671                $qry->execute($sql); 
     672                $odd = false; 
     673                $counter = 1; 
     674                while ($row = $qry->getRow()) 
     675                { 
     676                        if (!$odd) 
     677                        { 
     678                                $odd = true; 
     679                                $rowclass = 'kb-table-row-odd'; 
     680                        } 
     681                        else 
     682                        { 
     683                                $odd = false; 
     684                                $rowclass = 'kb-table-row-even'; 
     685                        } 
     686 
     687                        $html .= "<tr class=".$rowclass."><td><b>".$counter.".</b></td><td class=kb-table-cell width=180><b><a href=\"?a=system_detail&amp;sys_id=".$row['sys_id']."\">".$row['sys_name']."</a></b> (".roundsec($row['sys_sec']).")</td><td align=center>".$row['kills']."</td></tr>"; 
     688                        $counter++; 
     689                } 
     690 
     691                $html .= "</table>"; 
     692 
     693                $html .= "</td><td align=center valign=top>"; 
     694                $html .= "<div class=block-header>All-Time</div>"; 
     695                $html .= "<table class=kb-table>"; 
     696                $html .= "<tr class=kb-table-header><td>#</td><td width=180>System</td><td width=40 align=center>Kills</td></tr>"; 
     697 
     698                $sql = "select sys.sys_name, sys.sys_id, sys.sys_sec, count(distinct kll.kll_id) as kills 
    674699                    from kb3_systems sys, kb3_kills kll, kb3_inv_detail inv 
    675700                    where kll.kll_system_id = sys.sys_id 
    676701                    and inv.ind_kll_id = kll.kll_id"; 
    677702 
    678         if ($crp_id) 
    679             $sql .= " and inv.ind_crp_id in (".$crp_id.")"; 
    680         if ($all_id) 
    681             $sql .= " and inv.ind_all_id = ".$all_id; 
    682  
    683         $sql .= " group by sys.sys_name 
     703                if ($crp_id) 
     704                        $sql .= " and inv.ind_crp_id in (".$crp_id.")"; 
     705                if ($all_id) 
     706                        $sql .= " and inv.ind_all_id = ".$all_id; 
     707 
     708                $sql .= " group by sys.sys_name 
    684709                    order by kills desc 
    685710                    limit 25"; 
    686711 
    687         $qry = new DBQuery(); 
    688         $qry->execute($sql); 
    689         $odd = false; 
    690         $counter = 1; 
    691         while ($row = $qry->getRow()) 
    692         { 
    693             if (!$odd) 
    694             { 
    695                 $odd = true; 
    696                 $rowclass = 'kb-table-row-odd'; 
    697             } 
    698             else 
    699             { 
    700                 $odd = false; 
    701                 $rowclass = 'kb-table-row-even'; 
    702             } 
    703  
    704             $html .= "<tr class=".$rowclass."><td><b>".$counter.".</b></td><td class=kb-table-cell><b><a href=\"?a=system_detail&amp;sys_id=".$row['sys_id']."\">".$row['sys_name']."</a></b> (".roundsec($row['sys_sec']).")</td><td align=center>".$row['kills']."</td></tr>"; 
    705             $counter++; 
    706         } 
    707         $html .= "</table>"; 
    708         $html .= "</td></tr></table>"; 
    709     break; 
    710     case "pilot_ranks": 
    711         break; 
    712     case "pilot_medals": 
    713         break; 
    714    case "evo_ranks": 
    715         $rank_imageset = config::get('rankmod_imageset'); 
    716         $rank_titleset = config::get('rankmod_titleset'); 
    717         $keep_title = config::get('rankmod_keep'); 
    718         $rank_type = config::get('rankmod_rtype'); 
    719         $rank_ttl = config::getnumerical('rankmod_titles'); 
    720         if ($keep_title) { $words = 'Custom Rank Set'; } else { $words = $rank_titleset." Rank Set"; } 
    721         $html .= "<div class=block-header2>Rank Evolution Table - ".$words." with ".$rank_imageset." Insignia Set - ".$rank_type."</div>"; 
    722         $html .= "<table class=kb-table width=\"750\" border=\"0\" cellspacing=\"1\">"; 
    723         $html .= "<tr><td width=34><b>Icon</b></td><td width=266><b>Rank Name</b></td><td width=150><b>Abbreviation</b></td><td width=150><b>Req. Rank Points</b></td><td width=150><b>Req. Kill Points</b></td></tr>"; 
    724         foreach($rank_ttl as $level) { 
    725           $html .= "<tr height=36><td class=\"item-icon\" valign=\"top\" width=\"34\" height=\"36\">".$level['img']."</td>";     
    726           $html .= "<td>".$level['title']."</td>"; 
    727           $html .= "<td>".$level['abbr']."</td>"; 
    728           $html .= "<td align=right>".$level['reqrp']."</td>"; 
    729           $html .= "<td align=right>".$level['reqkp']."</td></tr>"; 
    730         } 
    731         $html .= "</table><br>"; 
    732         break; 
    733    case "rank_ribbons": 
    734         $rank_badges = config::getnumerical('rankmod_badreqs'); 
    735         $rank_sub_badges = config::getnumerical('rankmod_sub_badreqs'); 
    736         GetEnabledClasses($shipbadges);  
    737         $html .= "<div class=block-header2>Grantable Ship Combat Ribbons</div>"; 
    738         $html .= "<table class=kb-table cellspacing=1 width=\"100%\">"; 
    739         $html .= "<tr class=kb-table-header><td width=108>Ribbon</td><td width=300>Name / Class</td><td>Description</td></tr>"; 
    740         $class='odd'; 
    741         foreach ($shipbadges as $i => $ship) 
    742         { 
    743           if ($class=='odd') {$class='even';} else {$class='odd';} 
    744           if ($ship['type'] == 'kamikaze') { $conj = 'like a'; } else { $conj = 'in a'; } 
    745           if (isset($ship['parent'])) { 
    746                 $expert = $rank_sub_badges[$ship['cnt']][2]; 
    747                 $veteran = $rank_sub_badges[$ship['cnt']][1]; 
    748                 $elite = $rank_sub_badges[$ship['cnt']][0]; 
    749           } else { 
    750                 $expert = $rank_badges[$ship['cnt']][2]; 
    751                 $veteran = $rank_badges[$ship['cnt']][1]; 
    752                 $elite = $rank_badges[$ship['cnt']][0]; 
    753           } 
    754           $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$ship['type']."_expert.gif\" border=\"0\"></td><td><b>Expert ".$ship['name']." Pilot</b><br />".$ship['name']." Combat 3rd Class</td><td>Awarded when a pilot does <b><i>".$expert."</i></b> kills ".$conj." ".$ship['type'].".</td></tr>"; 
    755           $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$ship['type']."_veteran.gif\" border=\"0\"></td><td><b>Veteran ".$ship['name']." Pilot</b><br />".$ship['name']." Combat 2nd Class</td><td>Awarded when a pilot does <b><i>".$veteran."</i></b> kills ".$conj." ".$ship['type'].".</td></tr>"; 
    756           $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$ship['type']."_elite.gif\" border=\"0\"></td><td><b>Elite ".$ship['name']." Pilot</b><br />".$ship['name']." Combat 1st Class</td><td>Awarded when a pilot does <b><i>".$elite."</i></b> kills ".$conj." ".$ship['type'].".</td></tr>"; 
    757  
    758         } 
    759         $html .= "</table>"; 
    760         $weaponbadges=array( 
    761                 array( 'type' => 'hybrid', 'name' => 'Hybrid Turret', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),             // 0 
    762                 array( 'type' => 'laser', 'name' => 'Laser Turret', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),               // 1 
    763                 array( 'type' => 'projectile', 'name' => 'Projectile Turret', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),     // 2 
    764                 array( 'type' => 'missile', 'name' => 'Missile Launcher', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),         // 3 
    765                 array( 'type' => 'ew', 'name' => 'Electronic Warfare', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),            // 4 
    766                 array( 'type' => 'drone', 'name' => 'Drone', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0)                       // 5 
     712                $qry = new DBQuery(); 
     713                $qry->execute($sql); 
     714                $odd = false; 
     715                $counter = 1; 
     716                while ($row = $qry->getRow()) 
     717                { 
     718                        if (!$odd) 
     719                        { 
     720                                $odd = true; 
     721                                $rowclass = 'kb-table-row-odd'; 
     722                        } 
     723                        else 
     724                        { 
     725                                $odd = false; 
     726                                $rowclass = 'kb-table-row-even'; 
     727                        } 
     728 
     729                        $html .= "<tr class=".$rowclass."><td><b>".$counter.".</b></td><td class=kb-table-cell><b><a href=\"?a=system_detail&amp;sys_id=".$row['sys_id']."\">".$row['sys_name']."</a></b> (".roundsec($row['sys_sec']).")</td><td align=center>".$row['kills']."</td></tr>"; 
     730                        $counter++; 
     731                } 
     732                $html .= "</table>"; 
     733                $html .= "</td></tr></table>"; 
     734                break; 
     735        case "pilot_ranks": 
     736                if ($pagelim) 
     737                { $limit = ($pagelim - 1)*30; } 
     738                else 
     739                { $limit = 0; } 
     740                $query = "SELECT plt_id FROM `kb3_pilots` INNER JOIN `kb3_corps` on kb3_pilots.plt_crp_id = kb3_corps.crp_id 
     741            WHERE crp_all_id =".$alliance->getID()." 
     742                              AND `plt_name` NOT LIKE '%Warp Disruptor%' 
     743                              AND `plt_name` NOT LIKE '%Control Tower%' 
     744                              AND `plt_name` NOT LIKE '%Sentry Gun%' 
     745                              AND `plt_name` NOT LIKE '%Battery%' 
     746            ORDER BY `plt_name` ASC"; 
     747                $qry = new DBQuery(); 
     748                $qry->execute($query); 
     749                $temp1=array(); 
     750                $temp2=array(); 
     751                $temp3=array(); 
     752                $pilots=array(); 
     753                while ($row = $qry->getRow()) 
     754                { 
     755                        $rank=GetPilotRank($row['plt_id'],$kps,$temp1,$temp2,$temp3,$baserps,$bonusrps,$rps); 
     756                        $pilots[]=array('plt_id' => $row['plt_id'], 'rank' => $rank, 'rps' => $rps); 
     757                } 
     758                foreach ($pilots as $i => $data) 
     759                { 
     760                        $ranks[$i]  = $data['rank']; 
     761                        $rankpoints[$i] = $data['rps']; 
     762                } 
     763                array_multisort($ranks, SORT_DESC, $rankpoints, SORT_DESC, $pilots); 
     764                $titles = config::getnumerical('rankmod_titles'); 
     765                $html .= "<div class=block-header2>Corporate Pilot Ranks</div>"; 
     766                $html .= "<table class=kb-table align=center>"; 
     767                $html .= '<tr class=kb-table-header><td width=34></td><td width=34></td><td width=150>Name</td><td width=80 align=center>Rank<br>Points</td>'; 
     768                if (strpos($rank_known, 'score')) 
     769                { 
     770                        $html .= '<td width=80 align=center>Kill<br>Points</td>'; 
     771                } 
     772                if (strpos($rank_known, 'done')) 
     773                { 
     774                        $html .= '<td align=center>Damage<br>Done</td>'; 
     775                } 
     776                if (strpos($rank_known, 'received')) 
     777                { 
     778                        $html .= '<td width=80 align=center>Damage<br>Received</td>'; 
     779                } 
     780                if (strpos($rank_known, 'efficiency')) 
     781                { 
     782                        $html .= '<td width=80 align=center>Efficiency</td>'; 
     783                } 
     784                if (strpos($rank_known, 'ratio')) 
     785                { 
     786                        $html .= '<td width=80 align=center>Kill<br>Ratio</td>'; 
     787                } 
     788                if ($page->isAdmin()) 
     789                { 
     790                        $html .= '<td width=80 align=center>Admin<br>Move</td>'; 
     791                } 
     792                $html .= '</tr>'; 
     793                $class='odd'; 
     794                foreach ($pilots as $plt) 
     795                { 
     796                        if ($class=='odd') 
     797                        {$class='even';} else 
     798                        {$class='odd';} 
     799                        $pilot = new Pilot($plt['plt_id']); 
     800                        $kill_list = new KillList(); 
     801                        $kill_list->addInvolvedPilot($pilot); 
     802                        $kill_list->getAllKills(); 
     803                        $k_score = $kill_list->getPoints(); 
     804                        if (!$k_score) 
     805                        { $k_score = 0; } 
     806                        $k_count = $kill_list->getCount(); 
     807                        $k_cost = $kill_list->getISK(); 
     808                        $loss_list = new KillList(); 
     809                        $loss_list->addVictimPilot($pilot); 
     810                        $loss_list->getAllKills(); 
     811                        $l_count = $loss_list->getCount(); 
     812                        $l_cost = $loss_list->getISK(); 
     813                        if (($k_cost == 0) && ($l_cost == 0)) 
     814                        { 
     815                                $efficiency = 'N/A'; 
     816                        } elseif ($k_cost == 0) 
     817                        { 
     818                                $efficiency = '0%'; 
     819                        } elseif ($l_cost == 0) 
     820                        { 
     821                                $efficiency = '100%'; 
     822                        } else 
     823                        { 
     824                                $efficiency = round($k_cost / ($k_cost + $l_cost) * 100, 2).'%'; 
     825                        } 
     826                        if ($k_cost >= 1000000000) 
     827                        { 
     828                                $k_cost = round($k_cost / 1000000000, 2).'B'; 
     829                        } else 
     830                        { 
     831                                $k_cost = round($k_cost / 1000000, 2).'M'; 
     832                        } 
     833                        if ($l_cost >= 1000000000) 
     834                        { 
     835                                $l_cost = round($l_cost / 1000000000, 2).'B'; 
     836                        } else 
     837                        { 
     838                                $l_cost = round($l_cost / 1000000, 2).'M'; 
     839                        } 
     840                        if ($k_count == 0) 
     841                        { 
     842                                $k_ratio = 'N/A'; 
     843                        } elseif ($l_count == 0) 
     844                        { 
     845                                $k_ratio = $k_count.' : 0'; 
     846                        } else 
     847                        { 
     848                                $k_ratio = round($k_count / $l_count, 2).' : 1'; 
     849                        } 
     850                        $html .= "<tr height=34 class=kb-table-row-".$class.">"; 
     851                        $html .= "<td><img src=".$pilot->getPortraitURL( 32 )."></td>"; 
     852                        $html .= "<td valign=\"top\">".$titles[$plt['rank']]['img']."</td>"; 
     853                        $html .= "<td class=kb-table-cell><a class=kb-shipclass href=?a=pilot_detail&plt_id=".$pilot->getID().">".$titles[$plt['rank']]['title']."<br>".$pilot->getName()."</a></td>"; 
     854                        $html .= "<td class=kb-table-cell align=right>".$plt['rps']."</td>"; 
     855                        if (strpos($rank_known, 'score')) 
     856                        { 
     857                                $html .= '<td align=right>'.$k_score.'</td>'; 
     858                        } 
     859                        if (strpos($rank_known, 'done')) 
     860                        { 
     861                                $html .= '<td align=right>'.$k_cost.'</td>'; 
     862                        } 
     863                        if (strpos($rank_known, 'received')) 
     864                        { 
     865                                $html .= '<td align=right>'.$l_cost.'</td>'; 
     866                        } 
     867                        if (strpos($rank_known, 'efficiency')) 
     868                        { 
     869                                $html .= '<td align=right>'.$efficiency.'</td>'; 
     870                        } 
     871                        if (strpos($rank_known, 'ratio')) 
     872                        { 
     873                                $html .= '<td align=right>'.$k_ratio.'</td>'; 
     874                        } 
     875                        if ($page->isAdmin()) 
     876                        { 
     877                                $html .= "<td align=center><a href=\"javascript:openWindow('?a=admin_move_pilot&plt_id=".$plt['plt_id']."', null, 500, 500, '' )\">Move</a></td>"; 
     878                        } 
     879                        $html .= "</tr>"; 
     880                } 
     881                $html .= "</table>"; 
     882                break; 
     883        case "pilot_medals": 
     884                $qry = new DBQuery(); 
     885                $query = "SELECT rank.med_id AS med_id, rank.time_id AS time_id, rank.plt_id AS plt_id FROM `kb3_rank_medals` rank INNER JOIN `kb3_pilots` plts ON ( plts.plt_id = rank.plt_id ) INNER JOIN `kb3_corps` corps on plts.plt_crp_id = corps.crp_id WHERE corps.crp_all_id = ".$alliance->getID()." ORDER BY 1 ASC, 2 DESC"; 
     886                $qry->execute($query); 
     887                $meds = array(); 
     888                while ($row = $qry->getRow()) 
     889                { 
     890                        $meds[$row['med_id']][]=array('plt_id' => $row['plt_id'], 'time_id' => $row['time_id']); 
     891                } 
     892                $medsconv = array(); 
     893                $i = 0; 
     894                foreach($meds as $award) 
     895                { 
     896                        foreach($award as $item) 
     897                        { 
     898                                $medsconv[$item['time_id']][$i] = $item['plt_id']; 
     899                        } 
     900                        $i++; 
     901                } 
     902                $html .= "<div class=block-header2>Awarded Medals</div>"; 
     903                $html .= "<table class=kb-table cellspacing=1 width=\"100%\" border=\"1\">"; 
     904                $class='odd'; 
     905                $html .= "<tr class=kb-table-row-".$class." align=\"center\" valign=\"top\"><td width=\"60\">&nbsp;</td>"; 
     906                foreach($medals as $med) 
     907                { 
     908                        $html .= "<td><img src=\"".IMG_URL."/ranks/awards/".$med['type'].".gif\" border=\"0\"><br />".$med['mname']."<br />Top ".$med['name']."</td>"; 
     909                } 
     910                $html .= "</tr>"; 
     911                foreach($medsconv as $month=>$awards) 
     912                { 
     913                        if ($class=='odd') 
     914                        {$class='even';} else 
     915                        {$class='odd';} 
     916                        list($time_y, $temp ,$time_m) = explode(' ', $month); 
     917                        $html .= "<tr class=kb-table-row-".$class." align=\"center\"><td><a href=?a=awards&amp;m=$time_m&amp;y=$time_y>" . $month . "</a></td>"; 
     918                        for ($t = 0; $t <= 8; $t++) 
     919                        { 
     920                                $pilot = new Pilot($awards[$t]); 
     921                                if($awards[$t]) 
     922                                { $html .= "<td><a class=kb-shipclass href=?a=pilot_detail&amp;plt_id=".$pilot->getID()."><img src=\"".$pilot->getPortraitURL()."\" /></a></td>"; } else 
     923                                { $html .= "<td>&nbsp;</td>"; } 
     924                        } 
     925                        $html .= "</tr>"; 
     926                } 
     927                $html .= "</table>"; 
     928                break; 
     929        case "rank_ribbons": 
     930                $rank_badges = config::getnumerical('rankmod_badreqs'); 
     931                $rank_sub_badges = config::getnumerical('rankmod_sub_badreqs'); 
     932                GetEnabledClasses($shipbadges); 
     933                $html .= "<div class=block-header2>Grantable Ship Combat Ribbons</div>"; 
     934                $html .= "<table class=kb-table cellspacing=1 width=\"100%\">"; 
     935                $html .= "<tr class=kb-table-header><td width=108>Ribbon</td><td width=300>Name / Class</td><td>Description</td></tr>"; 
     936                $class='odd'; 
     937                foreach ($shipbadges as $i => $ship) 
     938                { 
     939                        if ($class=='odd') 
     940                        {$class='even';} else 
     941                        {$class='odd';} 
     942                        if ($ship['type'] == 'kamikaze') 
     943                        { $conj = 'like a'; } else 
     944                        { $conj = 'in a'; } 
     945                        if (isset($ship['parent'])) 
     946                        { 
     947                                $expert = $rank_sub_badges[$ship['cnt']][2]; 
     948                                $veteran = $rank_sub_badges[$ship['cnt']][1]; 
     949                                $elite = $rank_sub_badges[$ship['cnt']][0]; 
     950                        } else 
     951                        { 
     952                                $expert = $rank_badges[$ship['cnt']][2]; 
     953                                $veteran = $rank_badges[$ship['cnt']][1]; 
     954                                $elite = $rank_badges[$ship['cnt']][0]; 
     955                        } 
     956                        $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$ship['type']."_expert.gif\" border=\"0\"></td><td><b>Expert ".$ship['name']." Pilot</b><br />".$ship['name']." Combat 3rd Class</td><td>Awarded when a pilot does <b><i>".$expert."</i></b> kills ".$conj." ".$ship['type'].".</td></tr>"; 
     957                        $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$ship['type']."_veteran.gif\" border=\"0\"></td><td><b>Veteran ".$ship['name']." Pilot</b><br />".$ship['name']." Combat 2nd Class</td><td>Awarded when a pilot does <b><i>".$veteran."</i></b> kills ".$conj." ".$ship['type'].".</td></tr>"; 
     958                        $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$ship['type']."_elite.gif\" border=\"0\"></td><td><b>Elite ".$ship['name']." Pilot</b><br />".$ship['name']." Combat 1st Class</td><td>Awarded when a pilot does <b><i>".$elite."</i></b> kills ".$conj." ".$ship['type'].".</td></tr>"; 
     959                         
     960                } 
     961                $html .= "</table>"; 
     962                $weaponbadges=array( 
     963                        array( 'type' => 'hybrid', 'name' => 'Hybrid Turret', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),      // 0 
     964                        array( 'type' => 'laser', 'name' => 'Laser Turret', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),      // 1 
     965                        array( 'type' => 'projectile', 'name' => 'Projectile Turret', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),   // 2 
     966                        array( 'type' => 'missile', 'name' => 'Missile Launcher', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),      // 3 
     967                        array( 'type' => 'ew', 'name' => 'Electronic Warfare', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),      // 4 
     968                        array( 'type' => 'drone', 'name' => 'Drone', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0)         // 5 
    767969                ); 
    768         $html .= "<div class=block-header2>Grantable Weapon Master Ribbons</div>"; 
    769         $html .= "<table class=kb-table cellspacing=1 width=\"100%\">"; 
    770         $html .= "<tr class=kb-table-header><td width=108>Ribbon</td><td width=300>Name / Class</td><td>Description</td></tr>"; 
    771         $class='odd'; 
    772         foreach ($weaponbadges as $weap) 
    773         { 
    774           if ($class=='odd') {$class='even';} else {$class='odd';} 
    775           switch ($weap['type']) { 
    776           case 'ew': 
    777                 $conj = 'with an'; 
    778                 $bottom = 'Operator'; 
    779                 $bottom2 = ' device'; 
    780                 break; 
    781           case 'missile': 
    782                 $conj = 'with a'; 
    783                 $bottom = 'Operator'; 
    784                 $bottom2 = ' launcher'; 
    785                 break; 
    786           case 'drone': 
    787                 $conj = 'using'; 
    788                 $bottom = 'Operator'; 
    789                 $bottom2 = 's'; 
    790                 break; 
    791           default: 
    792                 $conj = 'with a'; 
    793                 $bottom = 'Gunner'; 
    794                 $bottom2 = ' turret'; 
    795                 break;     
    796           } 
    797           $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$weap['type']."_expert.gif\" border=\"0\"></td><td><b>Expert ".$weap['name']." ".$bottom."</b><br />".$weap['name']." Master 3rd Class</td><td>Awarded when a pilot does <b><i>".$rank_badges[$weap['cnt']][2]."</i></b> kills ".$conj." ".$weap['type'].$bottom2.".</td></tr>"; 
    798           $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$weap['type']."_veteran.gif\" border=\"0\"></td><td><b>Veteran ".$weap['name']." ".$bottom."</b><br />".$weap['name']." Master 2nd Class</td><td>Awarded when a pilot does <b><i>".$rank_badges[$weap['cnt']][1]."</i></b> kills ".$conj." ".$weap['type'].$bottom2.".</td></tr>"; 
    799           $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$weap['type']."_elite.gif\" border=\"0\"></td><td><b>Elite ".$weap['name']." ".$bottom."</b><br />".$weap['name']." Master 1st Class</td><td>Awarded when a pilot does <b><i>".$rank_badges[$weap['cnt']][0]."</i></b> kills ".$conj." ".$weap['type'].$bottom2.".</td></tr>"; 
    800  
    801         } 
    802         $html .= "</table>"; 
    803         $html .= "<div class=block-header2>Awarded Medal Ribbons</div>"; 
    804         $html .= "<table class=kb-table cellspacing=1 width=\"100%\">"; 
    805         $html .= "<tr class=kb-table-header><td width=108>Ribbon</td><td width=300>Name / Class</td><td>Description</td></tr>"; 
    806         $class='odd'; 
    807         foreach ($medals as $med) 
    808         { 
    809           if ($class=='odd') {$class='even';} else {$class='odd';} 
    810           $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$med['type'].".gif\" border=\"0\"></td><td><b>".$med['mname']."</b><br />Top ".$med['name']." Award</td><td>Awarded monthly to the Top ".$med['name']." pilot.</td></tr>"; 
    811         } 
    812         $html .= "</table>"; 
    813         break; 
    814    case "known_members": 
    815         if (isset($_GET['page'])) { 
    816                 $pagelim = intval($_GET['page']); 
    817                 $limit = ($pagelim - 1)*30; 
    818                 $last_page = $pagelim - 1; 
    819                 $next_page = $pagelim + 1; 
    820         } else { 
    821                 $limit = 0; 
    822                 $last_page = 0; 
    823                 $next_page = 2;   
    824         } 
    825         $query = "SELECT * FROM kb3_pilots plt 
     970                $html .= "<div class=block-header2>Grantable Weapon Master Ribbons</div>"; 
     971                $html .= "<table class=kb-table cellspacing=1 width=\"100%\">"; 
     972                $html .= "<tr class=kb-table-header><td width=108>Ribbon</td><td width=300>Name / Class</td><td>Description</td></tr>"; 
     973                $class='odd'; 
     974                foreach ($weaponbadges as $weap) 
     975                { 
     976                        if ($class=='odd') 
     977                        {$class='even';} else 
     978                        {$class='odd';} 
     979                        switch ($weap['type']) 
     980                        { 
     981                                case 'ew': 
     982                                        $conj = 'with an'; 
     983                                        $bottom = 'Operator'; 
     984                                        $bottom2 = ' device'; 
     985                                        break; 
     986                                case 'missile': 
     987                                        $conj = 'with a'; 
     988                                        $bottom = 'Operator'; 
     989                                        $bottom2 = ' launcher'; 
     990                                        break; 
     991                                case 'drone': 
     992                                        $conj = 'using'; 
     993                                        $bottom = 'Operator'; 
     994                                        $bottom2 = 's'; 
     995                                        break; 
     996                                default: 
     997                                        $conj = 'with a'; 
     998                                        $bottom = 'Gunner'; 
     999                                        $bottom2 = ' turret'; 
     1000                                        break; 
     1001                        } 
     1002                        $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$weap['type']."_expert.gif\" border=\"0\"></td><td><b>Expert ".$weap['name']." ".$bottom."</b><br />".$weap['name']." Master 3rd Class</td><td>Awarded when a pilot does <b><i>".$rank_badges[$weap['cnt']][2]."</i></b> kills ".$conj." ".$weap['type'].$bottom2.".</td></tr>"; 
     1003                        $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$weap['type']."_veteran.gif\" border=\"0\"></td><td><b>Veteran ".$weap['name']." ".$bottom."</b><br />".$weap['name']." Master 2nd Class</td><td>Awarded when a pilot does <b><i>".$rank_badges[$weap['cnt']][1]."</i></b> kills ".$conj." ".$weap['type'].$bottom2.".</td></tr>"; 
     1004                        $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$weap['type']."_elite.gif\" border=\"0\"></td><td><b>Elite ".$weap['name']." ".$bottom."</b><br />".$weap['name']." Master 1st Class</td><td>Awarded when a pilot does <b><i>".$rank_badges[$weap['cnt']][0]."</i></b> kills ".$conj." ".$weap['type'].$bottom2.".</td></tr>"; 
     1005                         
     1006                } 
     1007                $html .= "</table>"; 
     1008                $html .= "<div class=block-header2>Awarded Medal Ribbons</div>"; 
     1009                $html .= "<table class=kb-table cellspacing=1 width=\"100%\">"; 
     1010                $html .= "<tr class=kb-table-header><td width=108>Ribbon</td><td width=300>Name / Class</td><td>Description</td></tr>"; 
     1011                $class='odd'; 
     1012                foreach ($medals as $med) 
     1013                { 
     1014                        if ($class=='odd') 
     1015                        {$class='even';} else 
     1016                        {$class='odd';} 
     1017                        $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$med['type'].".gif\" border=\"0\"></td><td><b>".$med['mname']."</b><br />Top ".$med['name']." Award</td><td>Awarded monthly to the Top ".$med['name']." pilot.</td></tr>"; 
     1018                } 
     1019                $html .= "</table>"; 
     1020                break;  case "evo_ranks": 
     1021                $rank_imageset = config::get('rankmod_imageset'); 
     1022                $rank_titleset = config::get('rankmod_titleset'); 
     1023                $keep_title = config::get('rankmod_keep'); 
     1024                $rank_type = config::get('rankmod_rtype'); 
     1025                $rank_ttl = config::getnumerical('rankmod_titles'); 
     1026                if ($keep_title) 
     1027                { $words = 'Custom Rank Set'; } else 
     1028                { $words = $rank_titleset." Rank Set"; } 
     1029                $html .= "<div class=block-header2>Rank Evolution Table - ".$words." with ".$rank_imageset." Insignia Set - ".$rank_type."</div>"; 
     1030                $html .= "<table class=kb-table width=\"750\" border=\"0\" cellspacing=\"1\">"; 
     1031                $html .= "<tr><td width=34><b>Icon</b></td><td width=266><b>Rank Name</b></td><td width=150><b>Abbreviation</b></td><td width=150><b>Req. Rank Points</b></td><td width=150><b>Req. Kill Points</b></td></tr>"; 
     1032                foreach($rank_ttl as $level) 
     1033                { 
     1034                        $html .= "<tr height=36><td class=\"item-icon\" valign=\"top\" width=\"34\" height=\"36\">".$level['img']."</td>"; 
     1035                        $html .= "<td>".$level['title']."</td>"; 
     1036                        $html .= "<td>".$level['abbr']."</td>"; 
     1037                        $html .= "<td align=right>".$level['reqrp']."</td>"; 
     1038                        $html .= "<td align=right>".$level['reqkp']."</td></tr>"; 
     1039                } 
     1040                $html .= "</table><br>"; 
     1041                break; 
     1042        case "rank_ribbons": 
     1043                $rank_badges = config::getnumerical('rankmod_badreqs'); 
     1044                $rank_sub_badges = config::getnumerical('rankmod_sub_badreqs'); 
     1045                GetEnabledClasses($shipbadges); 
     1046                $html .= "<div class=block-header2>Grantable Ship Combat Ribbons</div>"; 
     1047                $html .= "<table class=kb-table cellspacing=1 width=\"100%\">"; 
     1048                $html .= "<tr class=kb-table-header><td width=108>Ribbon</td><td width=300>Name / Class</td><td>Description</td></tr>"; 
     1049                $class='odd'; 
     1050                foreach ($shipbadges as $i => $ship) 
     1051                { 
     1052                        if ($class=='odd') 
     1053                        {$class='even';} else 
     1054                        {$class='odd';} 
     1055                        if ($ship['type'] == 'kamikaze') 
     1056                        { $conj = 'like a'; } else 
     1057                        { $conj = 'in a'; } 
     1058                        if (isset($ship['parent'])) 
     1059                        { 
     1060                                $expert = $rank_sub_badges[$ship['cnt']][2]; 
     1061                                $veteran = $rank_sub_badges[$ship['cnt']][1]; 
     1062                                $elite = $rank_sub_badges[$ship['cnt']][0]; 
     1063                        } else 
     1064                        { 
     1065                                $expert = $rank_badges[$ship['cnt']][2]; 
     1066                                $veteran = $rank_badges[$ship['cnt']][1]; 
     1067                                $elite = $rank_badges[$ship['cnt']][0]; 
     1068                        } 
     1069                        $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$ship['type']."_expert.gif\" border=\"0\"></td><td><b>Expert ".$ship['name']." Pilot</b><br />".$ship['name']." Combat 3rd Class</td><td>Awarded when a pilot does <b><i>".$expert."</i></b> kills ".$conj." ".$ship['type'].".</td></tr>"; 
     1070                        $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$ship['type']."_veteran.gif\" border=\"0\"></td><td><b>Veteran ".$ship['name']." Pilot</b><br />".$ship['name']." Combat 2nd Class</td><td>Awarded when a pilot does <b><i>".$veteran."</i></b> kills ".$conj." ".$ship['type'].".</td></tr>"; 
     1071                        $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$ship['type']."_elite.gif\" border=\"0\"></td><td><b>Elite ".$ship['name']." Pilot</b><br />".$ship['name']." Combat 1st Class</td><td>Awarded when a pilot does <b><i>".$elite."</i></b> kills ".$conj." ".$ship['type'].".</td></tr>"; 
     1072 
     1073                } 
     1074                $html .= "</table>"; 
     1075                $weaponbadges=array( 
     1076                        array( 'type' => 'hybrid', 'name' => 'Hybrid Turret', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),             // 0 
     1077                        array( 'type' => 'laser', 'name' => 'Laser Turret', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),               // 1 
     1078                        array( 'type' => 'projectile', 'name' => 'Projectile Turret', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),     // 2 
     1079                        array( 'type' => 'missile', 'name' => 'Missile Launcher', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),         // 3 
     1080                        array( 'type' => 'ew', 'name' => 'Electronic Warfare', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0),            // 4 
     1081                        array( 'type' => 'drone', 'name' => 'Drone', 'cnt' => 0, 'icon' => 0, 'ribbon' => 0, 'class' =>0)                       // 5 
     1082                ); 
     1083                $html .= "<div class=block-header2>Grantable Weapon Master Ribbons</div>"; 
     1084                $html .= "<table class=kb-table cellspacing=1 width=\"100%\">"; 
     1085                $html .= "<tr class=kb-table-header><td width=108>Ribbon</td><td width=300>Name / Class</td><td>Description</td></tr>"; 
     1086                $class='odd'; 
     1087                foreach ($weaponbadges as $weap) 
     1088                { 
     1089                        if ($class=='odd') 
     1090                        {$class='even';} else 
     1091                        {$class='odd';} 
     1092                        switch ($weap['type']) 
     1093                        { 
     1094                                case 'ew': 
     1095                                        $conj = 'with an'; 
     1096                                        $bottom = 'Operator'; 
     1097                                        $bottom2 = ' device'; 
     1098                                        break; 
     1099                                case 'missile': 
     1100                                        $conj = 'with a'; 
     1101                                        $bottom = 'Operator'; 
     1102                                        $bottom2 = ' launcher'; 
     1103                                        break; 
     1104                                case 'drone': 
     1105                                        $conj = 'using'; 
     1106                                        $bottom = 'Operator'; 
     1107                                        $bottom2 = 's'; 
     1108                                        break; 
     1109                                default: 
     1110                                        $conj = 'with a'; 
     1111                                        $bottom = 'Gunner'; 
     1112                                        $bottom2 = ' turret'; 
     1113                                        break; 
     1114                        } 
     1115                        $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$weap['type']."_expert.gif\" border=\"0\"></td><td><b>Expert ".$weap['name']." ".$bottom."</b><br />".$weap['name']." Master 3rd Class</td><td>Awarded when a pilot does <b><i>".$rank_badges[$weap['cnt']][2]."</i></b> kills ".$conj." ".$weap['type'].$bottom2.".</td></tr>"; 
     1116                        $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$weap['type']."_veteran.gif\" border=\"0\"></td><td><b>Veteran ".$weap['name']." ".$bottom."</b><br />".$weap['name']." Master 2nd Class</td><td>Awarded when a pilot does <b><i>".$rank_badges[$weap['cnt']][1]."</i></b> kills ".$conj." ".$weap['type'].$bottom2.".</td></tr>"; 
     1117                        $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$weap['type']."_elite.gif\" border=\"0\"></td><td><b>Elite ".$weap['name']." ".$bottom."</b><br />".$weap['name']." Master 1st Class</td><td>Awarded when a pilot does <b><i>".$rank_badges[$weap['cnt']][0]."</i></b> kills ".$conj." ".$weap['type'].$bottom2.".</td></tr>"; 
     1118 
     1119                } 
     1120                $html .= "</table>"; 
     1121                $html .= "<div class=block-header2>Awarded Medal Ribbons</div>"; 
     1122                $html .= "<table class=kb-table cellspacing=1 width=\"100%\">"; 
     1123                $html .= "<tr class=kb-table-header><td width=108>Ribbon</td><td width=300>Name / Class</td><td>Description</td></tr>"; 
     1124                $class='odd'; 
     1125                foreach ($medals as $med) 
     1126                { 
     1127                        if ($class=='odd') 
     1128                        {$class='even';} else 
     1129                        {$class='odd';} 
     1130                        $html .= "<tr class=kb-table-row-".$class." height=32><td><img src=\"".IMG_URL."/ranks/ribbons/".$med['type'].".gif\" border=\"0\"></td><td><b>".$med['mname']."</b><br />Top ".$med['name']." Award</td><td>Awarded monthly to the Top ".$med['name']." pilot.</td></tr>"; 
     1131                } 
     1132                $html .= "</table>"; 
     1133                break; 
     1134        case "known_members": 
     1135                if ($pagelim) 
     1136                { 
     1137                        $limit = ($pagelim - 1)*30; 
     1138                        $last_page = $pagelim - 1; 
     1139                        $next_page = $pagelim + 1; 
     1140                } else 
     1141                { 
     1142                        $limit = 0; 
     1143                        $last_page = 0; 
     1144                        $next_page = 2; 
     1145                } 
     1146                $query = "SELECT plt_id FROM kb3_pilots plt 
    8261147                INNER JOIN kb3_corps crp ON ( plt.plt_crp_id = crp.crp_id ) 
    8271148                WHERE crp.crp_all_id =" . $alliance->getID() . " 
     
    8321153                ORDER BY plt.plt_name ASC 
    8331154                LIMIT ".$limit." , 30"; 
    834         $qry = new DBQuery(); 
    835         $qry->execute($query); 
    836         if ($qry->recordCount() < 30) { $next = FALSE; } else { $next = TRUE; } 
    837         $html .= "<table class=kb-table align=center width=\"100%\">"; 
    838         $html .= "<tr><td width =\"33%\" align=left>"; 
    839         if ($last_page > 0) { 
    840                 $html .= "<a href=\"?a=alliance_detail&all_id=" . $alliance->getID() . "&view=known_members&page=".$last_page."\">Previous Page</a>"; 
    841         } 
    842         $html .= "</td><td width =\"33%\" align=center>"; 
    843         if ($next_page > 3) { 
    844                 $html .= "<a href=\"?a=alliance_detail&all_id=" . $alliance->getID() . "&view=known_members&page=1\">Back to First Page</a>"; 
    845         } 
    846         $html .= "</td><td width =\"33%\" align=right>"; 
    847         if ($next) { 
    848                 $html .= "<a href=\"?a=alliance_detail&all_id=" . $alliance->getID() . "&view=known_members&page=".$next_page."\">Next Page</a>"; 
    849         } 
    850         $html .= "</td></tr></table>"; 
    851         $html .= "<div class=block-header2>".$alliance->getName()." Known Members</div>"; 
    852         $html .= "<table class=kb-table align=center>"; 
    853         $html .= '<tr class=kb-table-header>'; 
    854         if (strpos($rank_known, 'portrait')) 
    855         { 
    856           $html .= '<td width=34></td>'; 
    857         } 
    858         $html .= '<td width=150>Name</td>'; 
    859          
    860         if (strpos($rank_known, 'score')) 
    861         { 
    862           $html .= '<td width=80 align=center>Kill<br>Points</td>'; 
    863         } 
    864         if (strpos($rank_known, 'done')) 
    865         {                
    866           $html .= '<td align=center>Damage<br>Done</td>'; 
    867         } 
    868         if (strpos($rank_known, 'received')) 
    869         { 
    870           $html .= '<td width=80 align=center>Damage<br>Received</td>'; 
    871         } 
    872         if (strpos($rank_known, 'efficiency')) 
    873         { 
    874           $html .= '<td width=80 align=center>Efficiency</td>'; 
    875         } 
    876         if (strpos($rank_known, 'ratio')) 
    877         { 
    878           $html .= '<td width=80 align=center>Kill<br>Ratio</td>'; 
    879         } 
    880         if ($page->isAdmin()) 
    881         { 
    882           $html .= '<td width=80 align=center>Admin<br>Move</td>'; 
    883         } 
    884         $html .= '</tr>'; 
    885         $class='odd'; 
    886         while ($row = $qry->getRow()) { 
    887           if ($class=='odd') {$class='even';} else {$class='odd';} 
    888           $pilot = new Pilot($row['plt_id']); 
    889           $kill_list = new KillList(); 
    890           $kill_list->addInvolvedPilot($pilot); 
    891           $kill_list->getAllKills(); 
    892           $k_score = $kill_list->getPoints(); 
    893           if (!$k_score) { $k_score = 0; } 
    894           $k_count = $kill_list->getCount(); 
    895           $k_cost = $kill_list->getISK();        
    896           $loss_list = new KillList(); 
    897           $loss_list->addVictimPilot($pilot); 
    898           $loss_list->getAllKills(); 
    899           $l_count = $loss_list->getCount(); 
    900           $l_cost = $loss_list->getISK(); 
    901           if (($k_cost == 0) && ($l_cost == 0)) { 
    902             $efficiency = 'N/A'; 
    903           } elseif ($k_cost == 0) { 
    904             $efficiency = '0%'; 
    905           } elseif ($l_cost == 0) { 
    906             $efficiency = '100%'; 
    907           } else { 
    908             $efficiency = round($k_cost / ($k_cost + $l_cost) * 100, 2).'%'; 
    909           } 
    910           if ($k_cost >= 1000000000) { 
    911             $k_cost = round($k_cost / 1000000000, 2).'B'; 
    912           } else {  
    913             $k_cost = round($k_cost / 1000000, 2).'M'; 
    914           } 
    915           if ($l_cost >= 1000000000) { 
    916             $l_cost = round($l_cost / 1000000000, 2).'B'; 
    917           } else {  
    918             $l_cost = round($l_cost / 1000000, 2).'M'; 
    919           } 
    920           if ($k_count == 0) { 
    921             $k_ratio = 'N/A'; 
    922           } elseif ($l_count == 0) { 
    923             $k_ratio = $k_count.' : 0'; 
    924           } else { 
    925             $k_ratio = round($k_count / $l_count, 2).' : 1'; 
    926           } 
    927           $html .= "<tr height=34 class=kb-table-row-".$class.">"; 
    928           if (strpos($rank_known, 'portrait')) 
    929           { 
    930             $html .= "<td><img src=".$pilot->getPortraitURL( 32 )."></td>"; 
    931           } 
    932           $html .= "<td class=kb-table-cell><a class=kb-shipclass href=?a=pilot_detail&plt_id=".$pilot->getID().">".$pilot->getName()."</a></td>"; 
    933           if (strpos($rank_known, 'score')) 
    934           { 
    935             $html .= '<td align=right>'.$k_score.'</td>'; 
    936           } 
    937           if (strpos($rank_known, 'done')) 
    938           { 
    939             $html .= '<td align=right>'.$k_cost.'</td>'; 
    940           } 
    941           if (strpos($rank_known, 'received')) 
    942           { 
    943             $html .= '<td align=right>'.$l_cost.'</td>'; 
    944           } 
    945           if (strpos($rank_known, 'efficiency')) 
    946           { 
    947             $html .= '<td align=right>'.$efficiency.'</td>'; 
    948           } 
    949           if (strpos($rank_known, 'ratio')) 
    950           { 
    951             $html .= '<td align=right>'.$k_ratio.'</td>'; 
    952           } 
    953           if ($page->isAdmin()) 
    954           { 
    955             $html .= "<td align=center><a href=\"javascript:openWindow('?a=admin_move_pilot&plt_id=".$plt['plt_id']."', null, 500, 500, '' )\">Move</a></td>"; 
    956           } 
    957           $html .= "</tr>"; 
    958         } 
    959         $html .= "</table>"; 
    960         break; 
     1155                $qry = new DBQuery(); 
     1156                $qry->execute($query); 
     1157                if ($qry->recordCount() < 30) 
     1158                { $next = FALSE; } else 
     1159                { $next = TRUE; } 
     1160                $html .= "<table class=kb-table align=center width=\"100%\">"; 
     1161                $html .= "<tr><td width =\"33%\" align=left>"; 
     1162                if ($last_page > 0) 
     1163                { 
     1164                        $html .= "<a href=\"?a=alliance_detail&all_id=" . $alliance->getID() . "&view=known_members&page=".$last_page."\">Previous Page</a>"; 
     1165                } 
     1166                $html .= "</td><td width =\"33%\" align=center>"; 
     1167                if ($next_page > 3) 
     1168                { 
     1169                        $html .= "<a href=\"?a=alliance_detail&all_id=" . $alliance->getID() . "&view=known_members&page=1\">Back to First Page</a>"; 
     1170                } 
     1171                $html .= "</td><td width =\"33%\" align=right>"; 
     1172                if ($next) 
     1173                { 
     1174                        $html .= "<a href=\"?a=alliance_detail&all_id=" . $alliance->getID() . "&view=known_members&page=".$next_page."\">Next Page</a>"; 
     1175                } 
     1176                $html .= "</td></tr></table>"; 
     1177                $html .= "<div class=block-header2>".$alliance->getName()." Known Members</div>"; 
     1178                $html .= "<table class=kb-table align=center>"; 
     1179                $html .= '<tr class=kb-table-header>'; 
     1180                if (strpos($rank_known, 'portrait')) 
     1181                { 
     1182                        $html .= '<td width=34></td>'; 
     1183                } 
     1184                $html .= '<td width=150>Name</td>'; 
     1185 
     1186                if (strpos($rank_known, 'score')) 
     1187                { 
     1188                        $html .= '<td width=80 align=center>Kill<br>Points</td>'; 
     1189                } 
     1190                if (strpos($rank_known, 'done')) 
     1191                { 
     1192                        $html .= '<td align=center>Damage<br>Done</td>'; 
     1193                } 
     1194                if (strpos($rank_known, 'received')) 
     1195                { 
     1196                        $html .= '<td width=80 align=center>Damage<br>Received</td>'; 
     1197                } 
     1198                if (strpos($rank_known, 'efficiency')) 
     1199                { 
     1200                        $html .= '<td width=80 align=center>Efficiency</td>'; 
     1201                } 
     1202                if (strpos($rank_known, 'ratio')) 
     1203                { 
     1204                        $html .= '<td width=80 align=center>Kill<br>Ratio</td>'; 
     1205                } 
     1206                if ($page->isAdmin()) 
     1207                { 
     1208                        $html .= '<td width=80 align=center>Admin<br>Move</td>'; 
     1209                } 
     1210                $html .= '</tr>'; 
     1211                $class='odd'; 
     1212                while ($row = $qry->getRow()) 
     1213                { 
     1214                        if ($class=='odd') 
     1215                        {$class='even';} else 
     1216                        {$class='odd';} 
     1217                        $pilot = new Pilot($row['plt_id']); 
     1218                        $kill_list = new KillList(); 
     1219                        $kill_list->addInvolvedPilot($pilot); 
     1220                        $kill_list->getAllKills(); 
     1221                        $k_score = $kill_list->getPoints(); 
     1222                        if (!$k_score) 
     1223                        { $k_score = 0; } 
     1224                        $k_count = $kill_list->getCount(); 
     1225                        $k_cost = $kill_list->getISK(); 
     1226                        $loss_list = new KillList(); 
     1227                        $loss_list->addVictimPilot($pilot); 
     1228                        $loss_list->getAllKills(); 
     1229                        $l_count = $loss_list->getCount(); 
     1230                        $l_cost = $loss_list->getISK(); 
     1231                        if (($k_cost == 0) && ($l_cost == 0)) 
     1232                        { 
     1233                                $efficiency = 'N/A'; 
     1234                        } elseif ($k_cost == 0) 
     1235                        { 
     1236                                $efficiency = '0%'; 
     1237                        } elseif ($l_cost == 0) 
     1238                        { 
     1239                                $efficiency = '100%'; 
     1240                        } else 
     1241                        { 
     1242                                $efficiency = round($k_cost / ($k_cost + $l_cost) * 100, 2).'%'; 
     1243                        } 
     1244                        if ($k_cost >= 1000000000) 
     1245                        { 
     1246                                $k_cost = round($k_cost / 1000000000, 2).'B'; 
     1247                        } else 
     1248                        { 
     1249                                $k_cost = round($k_cost / 1000000, 2).'M'; 
     1250                        } 
     1251                        if ($l_cost >= 1000000000) 
     1252                        { 
     1253                                $l_cost = round($l_cost / 1000000000, 2).'B'; 
     1254                        } else 
     1255                        { 
     1256                                $l_cost = round($l_cost / 1000000, 2).'M'; 
     1257                        } 
     1258                        if ($k_count == 0) 
     1259                        { 
     1260                                $k_ratio = 'N/A'; 
     1261                        } elseif ($l_count == 0) 
     1262                        { 
     1263                                $k_ratio = $k_count.' : 0'; 
     1264                        } else 
     1265                        { 
     1266                                $k_ratio = round($k_count / $l_count, 2).' : 1'; 
     1267                        } 
     1268                        $html .= "<tr height=34 class=kb-table-row-".$class.">"; 
     1269                        if (strpos($rank_known, 'portrait')) 
     1270                        { 
     1271                                $html .= "<td><img src=".$pilot->getPortraitURL( 32 )."></td>"; 
     1272                        } 
     1273                        $html .= "<td class=kb-table-cell><a class=kb-shipclass href=?a=pilot_detail&plt_id=".$pilot->getID().">".$pilot->getName()."</a></td>"; 
     1274                        if (strpos($rank_known, 'score')) 
     1275                        { 
     1276                                $html .= '<td align=right>'.$k_score.'</td>'; 
     1277                        } 
     1278                        if (strpos($rank_known, 'done')) 
     1279                        { 
     1280                                $html .= '<td align=right>'.$k_cost.'</td>'; 
     1281                        } 
     1282                        if (strpos($rank_known, 'received')) 
     1283                        { 
     1284                                $html .= '<td align=right>'.$l_cost.'</td>'; 
     1285                        } 
     1286                        if (strpos($rank_known, 'efficiency')) 
     1287                        { 
     1288                                $html .= '<td align=right>'.$efficiency.'</td>'; 
     1289                        } 
     1290                        if (strpos($rank_known, 'ratio')) 
     1291                        { 
     1292                                $html .= '<td align=right>'.$k_ratio.'</td>'; 
     1293                        } 
     1294                        if ($page->isAdmin()) 
     1295                        { 
     1296                                $html .= "<td align=center><a href=\"javascript:openWindow('?a=admin_move_pilot&plt_id=".$plt['plt_id']."', null, 500, 500, '' )\">Move</a></td>"; 
     1297                        } 
     1298                        $html .= "</tr>"; 
     1299                } 
     1300                $html .= "</table>"; 
     1301                break; 
    9611302 
    9621303} 
     
    9771318if (config::get('kill_points')) 
    9781319{ 
    979     $menubox->addOption('link', "Top scorers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_scores"); 
     1320        $menubox->addOption('link', "Top scorers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_scores"); 
    9801321} 
    9811322$menubox->addOption("link","Top solokillers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_solo"); 
     
    9981339) 
    9991340{ 
    1000   $menubox->addOption("caption","Ranks & Medals"); 
    1001   $menubox->addOption("link","Pilot Ranks", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_ranks"); 
    1002   $menubox->addOption("link","Pilot Medals", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_medals"); 
    1003   $menubox->addOption("caption","Rank Showroom"); 
    1004   $menubox->addOption("link","Evolution Table", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=evo_ranks"); 
    1005   $menubox->addOption("link","Ribbons", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=rank_ribbons"); 
    1006 } elseif (strpos($rank_known, 'enabled')) { 
    1007   $menubox->addOption("link","Known Members", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=known_members&page=1"); 
     1341        $menubox->addOption("caption","Ranks & Medals"); 
     1342        $menubox->addOption("link","Pilot Ranks", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_ranks"); 
     1343        $menubox->addOption("link","Pilot Medals", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_medals"); 
     1344        $menubox->addOption("caption","Rank Showroom"); 
     1345        $menubox->addOption("link","Evolution Table", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=evo_ranks"); 
     1346        $menubox->addOption("link","Ribbons", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=rank_ribbons"); 
     1347} elseif (strpos($rank_known, 'enabled')) 
     1348{ 
     1349        $menubox->addOption("link","Known Members", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=known_members&page=1"); 
    10081350} 
    10091351