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

Revision 465, 41.1 KB (checked in by kovell, 11 years ago)

Refactoring mod input to match core

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']);
23
24$rank_known = config::get('rankmod_known');
25
26$medals=array(
27array( 'type' => 'eagle', 'name' => 'Killer', 'cnt' => 0, 'mname' =>'Silver Eagle'),            // 0
28array( 'type' => 'redcross', 'name' => 'Scorer', 'cnt' => 0,  'mname' =>'Iron Cross'),          // 1
29array( 'type' => 'cross', 'name' => 'Solo Killer', 'cnt' => 0, 'mname' =>'Winged Cross'),       // 2
30array( 'type' => 'wing1', 'name' => 'Damagedealer', 'cnt' => 0, 'mname' =>'Diamond Wing'),      // 3   
31array( 'type' => 'skull', 'name' => 'Final Blows', 'cnt' => 0, 'mname' =>'Red Skull'),          // 4
32array( 'type' => 'globe', 'name' => 'Podkiller', 'cnt' => 0, 'mname' =>'Silver Globe'),         // 5
33array( 'type' => 'star', 'name' => 'Griefer', 'cnt' => 0, 'mname' =>'Golden Star'),             // 6
34array( 'type' => 'wing2', 'name' => 'ISK Killer', 'cnt' => 0, 'mname' =>'Gold Wing'),           // 7
35array( 'type' => 'moon', 'name' => 'Loser', 'cnt' => 0, 'mname' =>'Purple Moon')                // 8
36);
37
38$alliance = new Alliance($all_id);
39$page = new Page('Alliance details - '.$alliance->getName());
40
41$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>";
42
43if (file_exists("img/alliances/".$alliance->getUnique().".png"))
44{
45    $html .= "<img src=\"".IMG_URL."/alliances/".$alliance->getUnique().".png\" border=\"0\"></td>";
46}
47else
48{
49    $html .= "<img src=\"".IMG_URL."/alliances/default.gif\" border=\"0\"></td>";
50}
51$kill_summary = new KillSummaryTable();
52$kill_summary->addInvolvedAlliance($alliance);
53$kill_summary->setBreak(config::get('summarytable_rowcount'));
54$summary_html = $kill_summary->generate();
55$k_cost=$kill_summary->getTotalKillISK();
56$l_cost=$kill_summary->getTotalLossISK();
57$k_count=$kill_summary->getTotalKills();
58$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          }
85
86$html .= "<td class=kb-table-cell width=180><b>Kills:</b></td><td class=kl-kill>".$k_count."</td></tr>";
87$html .= "<tr class=kb-table-row-even><td class=kb-table-cell><b>Losses:</b></td><td class=kl-loss>".$l_count."</td></tr>";
88$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>";
89$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>";
90$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>";
91$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>";
92$html .= "</table>";
93$html .= "<br/>";
94
95if ($_GET['view'] == "" || $_GET['view'] == "kills" || $_GET['view'] == "losses")
96{
97    $html .= $summary_html;
98}
99
100switch ($_GET['view'])
101{
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
199            where scl_class not in ('Drone','Unknown') order by scl_class";
200
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
237            where scl_class not in ('Drone','Unknown') order by scl_class";
238
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
275            where scl_class not in ('Drone','Unknown') order by scl_class";
276
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
312            where scl_class not in ('Drone','Unknown') order by scl_class";
313
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
630                    from kb3_systems sys, kb3_kills kll, kb3_inv_detail inv
631                    where kll.kll_system_id = sys.sys_id
632                    and inv.ind_kll_id = kll.kll_id";
633
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")."
640                    and date_format( kll.kll_timestamp, \"%Y\" ) = ".kbdate("Y")."
641                    group by sys.sys_name
642                    order by kills desc
643                    limit 25";
644
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
674                    from kb3_systems sys, kb3_kills kll, kb3_inv_detail inv
675                    where kll.kll_system_id = sys.sys_id
676                    and inv.ind_kll_id = kll.kll_id";
677
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
684                    order by kills desc
685                    limit 25";
686
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
767                );
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
826                INNER JOIN kb3_corps crp ON ( plt.plt_crp_id = crp.crp_id )
827                WHERE crp.crp_all_id =" . $alliance->getID() . "
828                AND plt.plt_name NOT LIKE '%Warp Disruptor%'
829                AND plt.plt_name NOT LIKE '%Control Tower%'
830                AND plt.plt_name NOT LIKE '%Sentry Gun%'
831                AND plt.plt_name NOT LIKE '%Battery%'
832                ORDER BY plt.plt_name ASC
833                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;
961
962}
963
964$menubox = new Box("Menu");
965$menubox->setIcon("menu-item.gif");
966$menubox->addOption("caption","Kills & losses");
967$menubox->addOption("link","Recent activity", "?a=alliance_detail&all_id=" . $alliance->getID());
968$menubox->addOption("link","Kills", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=kills");
969$menubox->addOption("link","Losses", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=losses");
970$menubox->addOption("caption","Corp statistics");
971$menubox->addOption("link","Top killers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=corp_kills");
972$menubox->addOption("link","Top losers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=corp_losses");
973$menubox->addOption("link","Destroyed ships", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=corp_kills_class");
974$menubox->addOption("link","Lost ships", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=corp_losses_class");
975$menubox->addOption("caption","Pilot statistics");
976$menubox->addOption("link","Top killers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_kills");
977if (config::get('kill_points'))
978{
979    $menubox->addOption('link', "Top scorers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_scores");
980}
981$menubox->addOption("link","Top solokillers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_solo");
982$menubox->addOption("link","Top damagedealers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_damage");
983$menubox->addOption("link","Top final blows", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_blow");
984$menubox->addOption("link","Top podkillers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_pod");
985$menubox->addOption("link","Top griefers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_griefer");
986$menubox->addOption("link","Top ISK killers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_isk");
987$menubox->addOption("link","Top losers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_losses");
988$menubox->addOption("caption","Pilot ship statistics");
989$menubox->addOption("link","Destroyed ships", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=kills_class");
990$menubox->addOption("link","Lost ships", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=losses_class");
991
992$menubox->addOption("caption","Global statistics");
993$menubox->addOption("link","Ships & weapons", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=ships_weapons");
994$menubox->addOption("link","Most violent systems", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=violent_systems");
995
996if (    (CORP_ID == 0 && ALLIANCE_ID == 0) // Public Board
997        || (ALLIANCE_ID && ALLIANCE_ID == $alliance->getID()) // Allied Board
998)
999{
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");
1008}
1009
1010
1011$page->addContext($menubox->generate());
1012
1013$page->setContent($html);
1014$page->generate();
1015?>
Note: See TracBrowser for help on using the browser.