root/dev/mods/rank_mod/alliance_detail.php @ 491

Revision 475, 50.0 KB (checked in by kovell, 11 years ago)

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

Line 
1<?php
2require_once('common/includes/class.corp.php');
3require_once('common/includes/class.alliance.php');
4require_once('common/includes/class.killlist.php');
5require_once('common/includes/class.killlisttable.php');
6require_once('common/includes/class.killsummarytable.php');
7require_once('common/includes/class.toplist.php');
8require_once('mods/rank_mod/rank.php');
9
10if (!$all_id = intval($_GET['all_id']))
11{
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        }
21}
22$scl_id = intval($_GET['scl_id']);
23if(isset($_GET['page'])) $pagelim = intval($_GET['page']);
24else $pagelim = false;
25
26$rank_known = config::get('rankmod_known');
27
28$medals=array(
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
38);
39
40$alliance = new Alliance($all_id);
41$page = new Page('Alliance details - '.$alliance->getName());
42
43$html .= "<table class=kb-table width=\"100%\" border=\"0\" cellspacing=1><tr class=kb-table-row-even><td rowspan=8 width=128 align=center bgcolor=black>";
44
45if (file_exists("img/alliances/".$alliance->getUnique().".png"))
46{
47        $html .= "<img src=\"".IMG_URL."/alliances/".$alliance->getUnique().".png\" border=\"0\"></td>";
48}
49else
50{
51        $html .= "<img src=\"".IMG_URL."/alliances/default.gif\" border=\"0\"></td>";
52}
53$kill_summary = new KillSummaryTable();
54$kill_summary->addInvolvedAlliance($alliance);
55$kill_summary->setBreak(config::get('summarytable_rowcount'));
56$summary_html = $kill_summary->generate();
57$k_cost=$kill_summary->getTotalKillISK();
58$l_cost=$kill_summary->getTotalLossISK();
59$k_count=$kill_summary->getTotalKills();
60$l_count=$kill_summary->getTotalLosses();
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}
98
99$html .= "<td class=kb-table-cell width=180><b>Kills:</b></td><td class=kl-kill>".$k_count."</td></tr>";
100$html .= "<tr class=kb-table-row-even><td class=kb-table-cell><b>Losses:</b></td><td class=kl-loss>".$l_count."</td></tr>";
101$html .= "<tr class=kb-table-row-even><td class=kb-table-cell><b>Damage done (ISK):</b></td><td class=kl-kill>".$k_cost."</td></tr>";
102$html .= "<tr class=kb-table-row-even><td class=kb-table-cell><b>Damage received (ISK):</b></td><td class=kl-loss>".$l_cost."</td></tr>";
103$html .= "<tr class=kb-table-row-even><td class=kb-table-cell><b>Efficiency:</b></td><td class=kb-table-cell><b>" . $efficiency . "</b></td></tr>";
104$html .= "<tr class=kb-table-row-even><td class=kb-table-cell><b>Kill Ratio:</b></td><td class=kb-table-cell><b>" . $k_ratio . "</b></td></tr>";
105$html .= "</table>";
106$html .= "<br/>";
107
108if ($_GET['view'] == "" || $_GET['view'] == "kills" || $_GET['view'] == "losses")
109{
110        $html .= $summary_html;
111}
112
113switch ($_GET['view'])
114{
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
212            where scl_class not in ('Drone','Unknown') order by scl_class";
213
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
253            where scl_class not in ('Drone','Unknown') order by scl_class";
254
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
294            where scl_class not in ('Drone','Unknown') order by scl_class";
295
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
334            where scl_class not in ('Drone','Unknown') order by scl_class";
335
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
655                    from kb3_systems sys, kb3_kills kll, kb3_inv_detail inv
656                    where kll.kll_system_id = sys.sys_id
657                    and inv.ind_kll_id = kll.kll_id";
658
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")."
665                    and date_format( kll.kll_timestamp, \"%Y\" ) = ".kbdate("Y")."
666                    group by sys.sys_name
667                    order by kills desc
668                    limit 25";
669
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
699                    from kb3_systems sys, kb3_kills kll, kb3_inv_detail inv
700                    where kll.kll_system_id = sys.sys_id
701                    and inv.ind_kll_id = kll.kll_id";
702
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
709                    order by kills desc
710                    limit 25";
711
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
969                );
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
1147                INNER JOIN kb3_corps crp ON ( plt.plt_crp_id = crp.crp_id )
1148                WHERE crp.crp_all_id =" . $alliance->getID() . "
1149                AND plt.plt_name NOT LIKE '%Warp Disruptor%'
1150                AND plt.plt_name NOT LIKE '%Control Tower%'
1151                AND plt.plt_name NOT LIKE '%Sentry Gun%'
1152                AND plt.plt_name NOT LIKE '%Battery%'
1153                ORDER BY plt.plt_name ASC
1154                LIMIT ".$limit." , 30";
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;
1302
1303}
1304
1305$menubox = new Box("Menu");
1306$menubox->setIcon("menu-item.gif");
1307$menubox->addOption("caption","Kills & losses");
1308$menubox->addOption("link","Recent activity", "?a=alliance_detail&all_id=" . $alliance->getID());
1309$menubox->addOption("link","Kills", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=kills");
1310$menubox->addOption("link","Losses", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=losses");
1311$menubox->addOption("caption","Corp statistics");
1312$menubox->addOption("link","Top killers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=corp_kills");
1313$menubox->addOption("link","Top losers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=corp_losses");
1314$menubox->addOption("link","Destroyed ships", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=corp_kills_class");
1315$menubox->addOption("link","Lost ships", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=corp_losses_class");
1316$menubox->addOption("caption","Pilot statistics");
1317$menubox->addOption("link","Top killers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_kills");
1318if (config::get('kill_points'))
1319{
1320        $menubox->addOption('link', "Top scorers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_scores");
1321}
1322$menubox->addOption("link","Top solokillers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_solo");
1323$menubox->addOption("link","Top damagedealers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_damage");
1324$menubox->addOption("link","Top final blows", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_blow");
1325$menubox->addOption("link","Top podkillers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_pod");
1326$menubox->addOption("link","Top griefers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_griefer");
1327$menubox->addOption("link","Top ISK killers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_isk");
1328$menubox->addOption("link","Top losers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_losses");
1329$menubox->addOption("caption","Pilot ship statistics");
1330$menubox->addOption("link","Destroyed ships", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=kills_class");
1331$menubox->addOption("link","Lost ships", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=losses_class");
1332
1333$menubox->addOption("caption","Global statistics");
1334$menubox->addOption("link","Ships & weapons", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=ships_weapons");
1335$menubox->addOption("link","Most violent systems", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=violent_systems");
1336
1337if (    (CORP_ID == 0 && ALLIANCE_ID == 0) // Public Board
1338        || (ALLIANCE_ID && ALLIANCE_ID == $alliance->getID()) // Allied Board
1339)
1340{
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");
1350}
1351
1352
1353$page->addContext($menubox->generate());
1354
1355$page->setContent($html);
1356$page->generate();
1357?>
Note: See TracBrowser for help on using the browser.