root/dev/mods/api_alliance/alliance_detail.php @ 376

Revision 376, 28.5 KB (checked in by kovell, 11 years ago)

MyISAM can be selected again on install
duplicate item descriptions removed from install
alliance/corp/pilot optional installs now have external id and correct structure
alliance/corp/pilot/kill details can be selected by external id
corp/alliance/kill now have get and set methods for external ids
killlist has method to select only kills with an external id set
monthly views mod now shows clock and combined kills if selected
optimisations and fixes to killlists and toplists

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("common/includes/class.eveapi.php");
9
10$all_id = intval($_GET['all_id']);
11$all_external_id = intval($_GET['all_external_id']);
12if (!$all_id && !$all_external_id)
13{
14    if (ALLIANCE_ID)
15    {
16        $all_id = ALLIANCE_ID;
17    }
18    else
19    {
20        echo 'no valid alliance id specified<br/>';
21        return;
22    }
23}
24
25if(!$all_id && $all_external_id)
26{
27        $qry = new DBQuery();
28        $qry->execute("SELECT all_id FROM kb3_alliances WHERE all_external_id = ".$all_external_id);
29        if($qry->recordCount())
30        {
31                $row = $qry->getRow();
32                $all_id = $row['all_id'];
33        }
34}
35
36$month = $_GET['m'];
37$year = $_GET['y'];
38
39if ($month == '')
40    $month = kbdate('m');
41
42if ($year == '')
43    $year = kbdate('Y');
44
45if ($month == 12)
46{
47    $nmonth = 1;
48    $nyear = $year + 1;
49}
50else
51{
52    $nmonth = $month + 1;
53    $nyear = $year;
54}
55if ($month == 1)
56{
57    $pmonth = 12;
58    $pyear = $year - 1;
59}
60else
61{
62    $pmonth = $month - 1;
63    $pyear = $year;
64}
65$monthname = kbdate("F", strtotime("2000-".$month."-2"));
66
67$alliance = new Alliance($all_id);
68$tempMyCorp = new Corporation();
69
70$myAlliName = $alliance->getName();
71
72$myAlliAPI = new AllianceAPI();
73$myAlliAPI->fetchalliances();
74$myAlliAPI->UpdateAlliances();
75
76$myAlliance = $myAlliAPI->LocateAlliance( $myAlliName );
77
78$myCorpAPI = new API_CorporationSheet();
79
80if ($myAlliance)
81{
82        $page = new Page('Alliance details - '.$alliance->getName() . " [" . $myAlliance["shortName"] . "]");
83       
84        foreach ( (array)$myAlliance["memberCorps"] as $tempcorp)
85        {
86                $myCorpAPI->setCorpID($tempcorp["corporationID"]);
87                $result .= $myCorpAPI->fetchXML();
88       
89                if ($tempcorp["corporationID"] == $myAlliance["executorCorpID"])
90                {
91                        $ExecutorCorp = $myCorpAPI->getCorporationName();
92                }
93                // Build Data array
94                $membercorp["corpName"] = $myCorpAPI->getCorporationName();
95                $membercorp["ticker"] = $myCorpAPI->getTicker();
96                $membercorp["members"] = $myCorpAPI->getMemberCount();
97                $membercorp["joinDate"] = $tempcorp["startDate"];
98                $membercorp["taxRate"] = $myCorpAPI->getTaxRate() . "%";
99                $membercorp["url"] = $myCorpAPI->getUrl();
100       
101                $AllianceCorps[] = $membercorp;
102
103                // Check if corp is known to EDK DB, if not, add it.
104                $tempMyCorp->Corporation();
105                $tempMyCorp->lookup($myCorpAPI->getCorporationName());
106                if ($tempMyCorp->getID() == 0)
107                {
108                        $tempMyCorp->add($myCorpAPI->getCorporationName(), $alliance , substr($tempcorp["startDate"], 0, 16));
109                }
110       
111                $membercorp = array();
112                unset($membercorp);
113        }
114       
115        $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>";
116
117        if (file_exists("img/alliances/".$alliance->getUnique().".png"))
118        {
119        $html .= "<img src=\"".IMG_URL."/alliances/".$alliance->getUnique().".png\" border=\"0\"></td>";
120        }
121        else
122        {
123        $html .= "<img src=\"".IMG_URL."/alliances/default.gif\" border=\"0\"></td>";
124        }
125        $kill_summary = new KillSummaryTable();
126        $kill_summary->addInvolvedAlliance($alliance);
127        $kill_summary->setBreak(config::get('summarytable_rowcount'));
128        $summary_html = $kill_summary->generate();
129
130        $html .= "<td class=kb-table-cell width=150><b>Kills:</b></td><td class=kl-kill>".$kill_summary->getTotalKills()."</td>";
131        $html .= "<td class=kb-table-cell width=65><b>Executor:</b></td><td class=kb-table-cell><a href=\"?a=search&searchtype=corp&searchphrase=" . $ExecutorCorp . "\">" . $ExecutorCorp . "</a></td></tr>";
132        $html .= "<tr class=kb-table-row-even><td class=kb-table-cell><b>Losses:</b></td><td class=kl-loss>".$kill_summary->getTotalLosses()."</td>";
133        $html .= "<td class=kb-table-cell><b>Members:</b></td><td class=kb-table-cell>" . $myAlliance["memberCount"] . "</td></tr>";
134        $html .= "<tr class=kb-table-row-even><td class=kb-table-cell><b>Damage done (ISK):</b></td><td class=kl-kill>".round($kill_summary->getTotalKillISK()/1000000000, 2)."B</td>";
135        $html .= "<td class=kb-table-cell><b>Start Date:</b></td><td class=kb-table-cell>" . $myAlliance["startDate"] . "</td></tr>";
136        $html .= "<tr class=kb-table-row-even><td class=kb-table-cell><b>Damage received (ISK):</b></td><td class=kl-loss>".round($kill_summary->getTotalLossISK()/1000000000, 2)."B</td>";
137        $html .= "<td class=kb-table-cell><b>Number of Corps:</b></td><td class=kb-table-cell>" . count($myAlliance["memberCorps"]) . "</td></tr>";
138        if ($kill_summary->getTotalKillISK())
139        {
140                 $efficiency = round($kill_summary->getTotalKillISK() / ($kill_summary->getTotalKillISK() + $kill_summary->getTotalLossISK()) * 100, 2);
141        }
142        else
143        {
144        $efficiency = 0;
145        }
146
147        $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>";
148        $html .= "<td class=kb-table-cell></td><td class=kb-table-cell></td></tr>";
149
150        $html .= "</table>";
151        $html .= "<br/>";
152
153        $html .= "<table class=kb-table width=\"100%\" border=\"0\" cellspacing=1><tr class=kb-table-header>";
154        $html .= "<td class=kb-table-cell><b>Corporation Name</b></td><td class=kb-table-cell align=center><b>Ticker</b></td><td class=kb-table-cell align=center><b>Members</b></td><td class=kb-table-cell align=center><b>Join Date</b></td><td class=kb-table-cell align=center><b>Tax Rate</b></td><td class=kb-table-cell><b>Website</b></td></tr>";
155        foreach ( (array)$AllianceCorps as $tempcorp )
156        {
157                $html .= "<tr class=kb-table-row-even>";
158                $html .= "<td class=kb-table-cell><a href=\"?a=search&searchtype=corp&searchphrase=" . $tempcorp["corpName"] . "\">" . $tempcorp["corpName"] . "</a></td>";
159                $html .= "<td class=kb-table-cell align=center>" . $tempcorp["ticker"] . "</td>";
160                $html .= "<td class=kb-table-cell align=center>" . $tempcorp["members"] . "</td>";
161                $html .= "<td class=kb-table-cell align=center>" . $tempcorp["joinDate"] . "</td>";
162                $html .= "<td class=kb-table-cell align=center>" . $tempcorp["taxRate"] . "</td>";
163                $html .= "<td class=kb-table-cell><a href=\"" . $tempcorp["url"] . "\">" . $tempcorp["url"] . "</a></td>";
164                $html .= "</tr>";
165        }
166        $html .= "</table>";
167        $html .= "<br/>";           
168} else {
169        $page = new Page('Alliance details - '.$alliance->getName());
170       
171        $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>";
172
173        if (file_exists("img/alliances/".$alliance->getUnique().".png"))
174        {
175    $html .= "<img src=\"".IMG_URL."/alliances/".$alliance->getUnique().".png\" border=\"0\"></td>";
176        }
177        else
178        {
179        $html .= "<img src=\"".IMG_URL."/alliances/default.gif\" border=\"0\"></td>";
180        }
181        $kill_summary = new KillSummaryTable();
182        $kill_summary->addInvolvedAlliance($alliance);
183        $kill_summary->setBreak(config::get('summarytable_rowcount'));
184        $summary_html = $kill_summary->generate();
185
186        $html .= "<td class=kb-table-cell width=180><b>Kills:</b></td><td class=kl-kill>".$kill_summary->getTotalKills()."</td></tr>";
187        $html .= "<tr class=kb-table-row-even><td class=kb-table-cell><b>Losses:</b></td><td class=kl-loss>".$kill_summary->getTotalLosses()."</td></tr>";
188        $html .= "<tr class=kb-table-row-even><td class=kb-table-cell><b>Damage done (ISK):</b></td><td class=kl-kill>".round($kill_summary->getTotalKillISK()/1000000000, 2)."B</td></tr>";
189        $html .= "<tr class=kb-table-row-even><td class=kb-table-cell><b>Damage received (ISK):</b></td><td class=kl-loss>".round($kill_summary->getTotalLossISK()/1000000000, 2)."B</td></tr>";
190        if ($kill_summary->getTotalKillISK())
191        {
192        $efficiency = round($kill_summary->getTotalKillISK() / ($kill_summary->getTotalKillISK() + $kill_summary->getTotalLossISK()) * 100, 2);
193        }
194        else
195        {
196        $efficiency = 0;
197        }
198
199        $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>";
200
201        $html .= "</table>";
202        $html .= "<br/>";
203}
204
205if ($_GET['view'] == "" || $_GET['view'] == "kills" || $_GET['view'] == "losses")
206{
207    $html .= $summary_html;
208}
209
210switch ($_GET['view'])
211{
212    case "":
213        $html .= "<div class=kb-kills-header>10 Most recent kills</div>";
214
215        $list = new KillList();
216        $list->setOrdered(true);
217        $list->setLimit(10);
218        $list->setPodsNoobships(true);
219        $list->addInvolvedAlliance($alliance);
220        if ($_GET['scl_id'])
221            $list->addVictimShipClass(new ShipClass($_GET['scl_id']));
222
223        $ktab = new KillListTable($list);
224        $ktab->setLimit(10);
225        $ktab->setDayBreak(false);
226        $html .= $ktab->generate();
227
228        $html .= "<div class=kb-losses-header>10 Most recent losses</div>";
229
230        $list = new KillList();
231        $list->setOrdered(true);
232        $list->setLimit(10);
233        $list->setPodsNoobships(true);
234        $list->addVictimAlliance($alliance);
235        if ($_GET['scl_id'])
236            $list->addVictimShipClass(new ShipClass($_GET['scl_id']));
237
238        $ltab = new KillListTable($list);
239        $ltab->setLimit(10);
240        $ltab->setDayBreak(false);
241        $html .= $ltab->generate();
242
243        break;
244    case "kills":
245        $html .= "<div class=kb-kills-header>All kills</div>";
246
247        $list = new KillList();
248        $list->setOrdered(true);
249        $list->addInvolvedAlliance($alliance);
250        if ($_GET['scl_id'])
251            $list->addVictimShipClass(new ShipClass($_GET['scl_id']));
252        $pagesplitter = new PageSplitter($list->getCount(), 30);
253        $list->setPageSplitter($pagesplitter);
254        $table = new KillListTable($list);
255        $table->setDayBreak(false);
256        $html .= $table->generate();
257        $html .= $pagesplitter->generate();
258
259        break;
260    case "losses":
261        $html .= "<div class=kb-losses-header>All losses</div>";
262
263        $list = new KillList();
264        $list->setOrdered(true);
265        $list->setPodsNoobships(true);
266        $list->addVictimAlliance($alliance);
267        if ($_GET['scl_id'])
268            $list->addVictimShipClass(new ShipClass($_GET['scl_id']));
269        $pagesplitter = new PageSplitter($list->getCount(), 30);
270        $list->setPageSplitter($pagesplitter);
271
272        $table = new KillListTable($list);
273        $table->setDayBreak(false);
274        $html .= $table->generate();
275        $html .= $pagesplitter->generate();
276
277        break;
278    case "corp_kills":
279        $html .= "<div class=block-header2>Top killers</div>";
280
281        $html .= "<table class=kb-subtable><tr><td valign=top width=440>";
282        $html .= "<div class=block-header>$monthname $year</div>";
283
284        $list = new TopCorpKillsList();
285        $list->addInvolvedAlliance($alliance);
286        $list->setPodsNoobShips(false);
287        $list->setMonth($month);
288        $list->setYear($year);
289        $table = new TopCorpTable($list, "Kills");
290        $html .= $table->generate();
291       
292                $html .= "<table width=300 cellspacing=1><tr><td><a href='?a=alliance_detail&view=corp_kills&m=$pmonth&all_id=$all_id&y=$pyear'>previous</a></td>";
293        $html .= "<td align='right'><a href='?a=alliance_detail&view=corp_kills&all_id=$all_id&m=$nmonth&y=$nyear'>next</a></p></td></tr></table>";
294       
295        $html .= "</td><td valign=top width=400>";
296        $html .= "<div class=block-header>All time</div>";
297
298        $list = new TopCorpKillsList();
299        $list->addInvolvedAlliance($alliance);
300        $list->setPodsNoobShips(false);
301        $table = new TopCorpTable($list, "Kills");
302        $html .= $table->generate();
303
304        $html .= "</td></tr></table>";
305
306        break;
307    case "corp_kills_class":
308        $html .= "<div class=block-header2>Destroyed 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 TopCorpKillsList();
329            $list->addInvolvedAlliance($alliance);
330            $list->addVictimShipClass($shp);
331            $table = new TopCorpTable($list, "Kills");
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>#</td><td class=kb-table-cell align=center>Corporation</td><td class=kb-table-cell align=center width=60>Kills</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        }
342        $html .= "</tr></table>";       
343        break;
344    case "kills_class":
345        $html .= "<div class=block-header2>Destroyed ships</div>";
346
347        // Get all ShipClasses
348        $sql = "select scl_id, scl_class from kb3_ship_classes
349            where scl_class not in ('Drone','Unknown') order by scl_class";
350
351        $qry = new DBQuery();
352        $qry->execute($sql);
353        while ($row = $qry->getRow())
354        {
355            $shipclass[] = new Shipclass($row['scl_id']);
356        }
357        $html .= "<table class=kb-subtable>";
358        $html .= "<tr>";
359        $newrow = true;
360
361        foreach ($shipclass as $shp){
362            if ($newrow){
363            $html .= '</tr><tr>';
364            }
365            $list = new TopKillsList();
366            $list->addInvolvedAlliance($alliance);
367            $list->addVictimShipClass($shp);
368            $table = new TopPilotTable($list, "Kills");
369            $content = $table->generate();
370            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>'){
371            $html .= "<td valign=top width=440>";
372            $html .= "<div class=block-header>".$shp->getName()."</div>";
373            $html .= $content;
374            $html .= "</td>";
375            $newrow = !$newrow;
376            }
377
378        }
379        $html .= "</tr></table>";
380
381        break;
382    case "corp_losses_class":
383        $html .= "<div class=block-header2>Lost ships</div>";
384
385            // Get all ShipClasses
386        $sql = "select scl_id, scl_class from kb3_ship_classes
387            where scl_class not in ('Drone','Unknown') order by scl_class";
388
389        $qry = new DBQuery();
390        $qry->execute($sql);
391        while ($row = $qry->getRow())
392        {
393            $shipclass[] = new Shipclass($row['scl_id']);
394        }
395        $html .= "<table class=kb-subtable>";
396        $html .= "<tr>";
397        $newrow = true;
398
399        foreach ($shipclass as $shp){
400            if ($newrow){
401            $html .= '</tr><tr>';
402            }
403            $list = new TopCorpLossesList();
404                $list->addVictimAlliance($alliance);
405            $list->addVictimShipClass($shp);
406            $table = new TopCorpTable($list, "Losses");
407            $content = $table->generate();
408            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>'){
409            $html .= "<td valign=top width=440>";
410                $html .= "<div class=block-header>".$shp->getName()."</div>";
411                $html .= $content;
412            $html .= "</td>";
413            $newrow = !$newrow;
414            }
415        }
416        $html .= "</tr></table>";
417
418        break;
419    case "losses_class":
420        $html .= "<div class=block-header2>Lost ships</div>";
421
422            // Get all ShipClasses
423        $sql = "select scl_id, scl_class from kb3_ship_classes
424            where scl_class not in ('Drone','Unknown') order by scl_class";
425
426        $qry = new DBQuery();
427        $qry->execute($sql);
428        while ($row = $qry->getRow())
429        {
430            $shipclass[] = new Shipclass($row['scl_id']);
431        }
432        $html .= "<table class=kb-subtable>";
433        $html .= "<tr>";
434        $newrow = true;
435
436        foreach ($shipclass as $shp){
437            if ($newrow){
438            $html .= '</tr><tr>';
439            }
440            $list = new TopLossesList();
441                $list->addVictimAlliance($alliance);
442            $list->addVictimShipClass($shp);
443            $table = new TopPilotTable($list, "Losses");
444            $content = $table->generate();
445            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>'){
446            $html .= "<td valign=top width=440>";
447                $html .= "<div class=block-header>".$shp->getName()."</div>";
448                $html .= $content;
449            $html .= "</td>";
450            $newrow = !$newrow;
451            }
452        }
453        $html .= "</tr></table>";
454
455        break;
456    case "corp_losses":
457        $html .= "<div class=block-header2>Top losers</div>";
458
459        $html .= "<table class=kb-subtable><tr><td valign=top width=440>";
460        $html .= "<div class=block-header>$monthname $year</div>";
461
462        $list = new TopCorpLossesList();
463        $list->addVictimAlliance($alliance);
464        $list->setPodsNoobShips(false);
465        $list->setMonth($month);
466        $list->setYear($year);
467        $table = new TopCorpTable($list, "Losses");
468        $html .= $table->generate();
469
470                $html .= "<table width=300 cellspacing=1><tr><td><a href='?a=alliance_detail&view=corp_losses&m=$pmonth&all_id=$all_id&y=$pyear'>previous</a></td>";
471        $html .= "<td align='right'><a href='?a=alliance_detail&view=corp_losses&all_id=$all_id&m=$nmonth&y=$nyear'>next</a></p></td></tr></table>";
472         
473        $html .= "</td><td valign=top width=400>";
474        $html .= "<div class=block-header>All time</div>";
475
476        $list = new TopCorpLossesList();
477        $list->addVictimAlliance($alliance);
478        $list->setPodsNoobShips(false);
479        $table = new TopCorpTable($list, "Losses");
480        $html .= $table->generate();
481
482        $html .= "</td></tr></table>";
483
484        break;
485    case "pilot_kills":
486        $html .= "<div class=block-header2>Top killers</div>";
487
488        $html .= "<table class=kb-subtable><tr><td valign=top width=440>";
489        $html .= "<div class=block-header>$monthname $year</div>";
490
491        $list = new TopKillsList();
492        $list->addInvolvedAlliance($alliance);
493        $list->setPodsNoobShips(false);
494        $list->setMonth($month);
495        $list->setYear($year);
496        $table = new TopPilotTable($list, "Kills");
497        $html .= $table->generate();
498
499                $html .= "<table width=300 cellspacing=1><tr><td><a href='?a=alliance_detail&view=pilot_kills&m=$pmonth&all_id=$all_id&y=$pyear'>previous</a></td>";
500        $html .= "<td align='right'><a href='?a=alliance_detail&view=pilot_kills&all_id=$all_id&m=$nmonth&y=$nyear'>next</a></p></td></tr></table>";
501       
502        $html .= "</td><td valign=top width=400>";
503        $html .= "<div class=block-header>All time</div>";
504
505        $list = new TopKillsList();
506        $list->addInvolvedAlliance($alliance);
507        $list->setPodsNoobShips(false);
508        $table = new TopPilotTable($list, "Kills");
509        $html .= $table->generate();
510
511        $html .= "</td></tr></table>";
512
513        break;
514    case "pilot_scores":
515        $html .= "<div class=block-header2>Top scorers</div>";
516
517        $html .= "<table class=kb-subtable><tr><td valign=top width=440>";
518        $html .= "<div class=block-header>$monthname $year</div>";
519
520        $list = new TopScoreList();
521        $list->addInvolvedAlliance($alliance);
522        $list->setPodsNoobShips(true);
523        $list->setMonth($month);
524        $list->setYear($year);
525        $table = new TopPilotTable($list, "Points");
526        $html .= $table->generate();
527
528                $html .= "<table width=300 cellspacing=1><tr><td><a href='?a=alliance_detail&view=pilot_scores&m=$pmonth&all_id=$all_id&y=$pyear'>previous</a></td>";
529        $html .= "<td align='right'><a href='?a=alliance_detail&view=pilot_scores&all_id=$all_id&m=$nmonth&y=$nyear'>next</a></p></td></tr></table>";
530         
531        $html .= "</td><td valign=top width=400>";
532        $html .= "<div class=block-header>All time</div>";
533
534        $list = new TopScoreList();
535        $list->addInvolvedAlliance($alliance);
536        $list->setPodsNoobShips(true);
537        $table = new TopPilotTable($list, "Points");
538        $html .= $table->generate();
539
540        $html .= "</td></tr></table>";
541
542        break;
543    case "pilot_losses":
544        $html .= "<div class=block-header2>Top losers</div>";
545
546        $html .= "<table class=kb-subtable><tr><td valign=top width=440>";
547        $html .= "<div class=block-header>$monthname $year</div>";
548
549        $list = new TopLossesList();
550        $list->addVictimAlliance($alliance);
551        $list->setPodsNoobShips(false);
552        $list->setMonth($month);
553        $list->setYear($year);
554        $table = new TopPilotTable($list, "Losses");
555        $html .= $table->generate();
556
557                $html .= "<table width=300 cellspacing=1><tr><td><a href='?a=alliance_detail&view=pilot_losses&m=$pmonth&all_id=$all_id&y=$pyear'>previous</a></td>";
558        $html .= "<td align='right'><a href='?a=alliance_detail&view=pilot_losses&all_id=$all_id&m=$nmonth&y=$nyear'>next</a></p></td></tr></table>";
559       
560        $html .= "</td><td valign=top width=400>";
561        $html .= "<div class=block-header>All time</div>";
562
563        $list = new TopLossesList();
564        $list->addVictimAlliance($alliance);
565        $list->setPodsNoobShips(false);
566        $table = new TopPilotTable($list, "Losses");
567        $html .= $table->generate();
568
569        $html .= "</td></tr></table>";
570
571        break;
572    case "ships_weapons":
573        $html .= "<div class=block-header2>Ships & weapons used</div>";
574
575        $html .= "<table class=kb-subtable><tr><td valign=top width=400>";
576        $shiplist = new TopShipList();
577        $shiplist->addInvolvedAlliance($alliance);
578        $shiplisttable = new TopShipListTable($shiplist);
579        $html .= $shiplisttable->generate();
580        $html .= "</td><td valign=top align=right width=400>";
581
582        $weaponlist = new TopWeaponList();
583        $weaponlist->addInvolvedAlliance($alliance);
584        $weaponlisttable = new TopWeaponListTable($weaponlist);
585        $html .= $weaponlisttable->generate();
586        $html .= "</td></tr></table>";
587
588        break;
589    case 'violent_systems':
590        $html .= "<div class=block-header2>Most violent systems</div>";
591        $html .= "<table width=\"99%\"><tr><td align=center valign=top>";
592
593        $html .= "<div class=block-header>This month</div>";
594        $html .= "<table class=kb-table>";
595        $html .= "<tr class=kb-table-header><td>#</td><td width=180>System</td><td width=40 align=center >Kills</td></tr>";
596
597        $sql = "select sys.sys_name, sys.sys_sec, sys.sys_id, count(distinct kll.kll_id) as kills
598                    from kb3_systems sys, kb3_kills kll, kb3_inv_detail inv
599                    where kll.kll_system_id = sys.sys_id
600                    and inv.ind_kll_id = kll.kll_id";
601
602        if ($crp_id)
603            $sql .= " and inv.ind_crp_id in (".$crp_id.")";
604        if ($all_id)
605            $sql .= " and inv.ind_all_id = ".$all_id;
606
607        $sql .= "   and date_format( kll.kll_timestamp, \"%c\" ) = ".kbdate("m")."
608                    and date_format( kll.kll_timestamp, \"%Y\" ) = ".kbdate("Y")."
609                    group by sys.sys_name
610                    order by kills desc
611                    limit 25";
612
613        $qry = new DBQuery();
614        $qry->execute($sql);
615        $odd = false;
616        $counter = 1;
617        while ($row = $qry->getRow())
618        {
619            if (!$odd)
620            {
621                $odd = true;
622                $rowclass = 'kb-table-row-odd';
623            }
624            else
625            {
626                $odd = false;
627                $rowclass = 'kb-table-row-even';
628            }
629
630            $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>";
631            $counter++;
632        }
633
634        $html .= "</table>";
635
636        $html .= "</td><td align=center valign=top>";
637        $html .= "<div class=block-header>All-Time</div>";
638        $html .= "<table class=kb-table>";
639        $html .= "<tr class=kb-table-header><td>#</td><td width=180>System</td><td width=40 align=center>Kills</td></tr>";
640
641        $sql = "select sys.sys_name, sys.sys_id, sys.sys_sec, count(distinct kll.kll_id) as kills
642                    from kb3_systems sys, kb3_kills kll, kb3_inv_detail inv
643                    where kll.kll_system_id = sys.sys_id
644                    and inv.ind_kll_id = kll.kll_id";
645
646        if ($crp_id)
647            $sql .= " and inv.ind_crp_id in (".$crp_id.")";
648        if ($all_id)
649            $sql .= " and inv.ind_all_id = ".$all_id;
650
651        $sql .= " group by sys.sys_name
652                    order by kills desc
653                    limit 25";
654
655        $qry = new DBQuery();
656        $qry->execute($sql);
657        $odd = false;
658        $counter = 1;
659        while ($row = $qry->getRow())
660        {
661            if (!$odd)
662            {
663                $odd = true;
664                $rowclass = 'kb-table-row-odd';
665            }
666            else
667            {
668                $odd = false;
669                $rowclass = 'kb-table-row-even';
670            }
671
672            $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>";
673            $counter++;
674        }
675        $html .= "</table>";
676        $html .= "</td></tr></table>";
677    break;
678}
679
680$html .= "<hr><b>Extended Alliance Detail by " . FindThunk() . ".<b/></br>";
681
682$menubox = new Box("Menu");
683$menubox->setIcon("menu-item.gif");
684$menubox->addOption("caption","Kills & losses");
685$menubox->addOption("link","Recent activity", "?a=alliance_detail&all_id=" . $alliance->getID());
686$menubox->addOption("link","Kills", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=kills");
687$menubox->addOption("link","Losses", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=losses");
688$menubox->addOption("caption","Corp statistics");
689$menubox->addOption("link","Top killers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=corp_kills");
690$menubox->addOption("link","Top losers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=corp_losses");
691$menubox->addOption("link","Destroyed ships", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=corp_kills_class");
692$menubox->addOption("link","Lost ships", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=corp_losses_class");
693$menubox->addOption("caption","Pilot statistics");
694$menubox->addOption("link","Top killers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_kills");
695if (config::get('kill_points'))
696{
697    $menubox->addOption('link', "Top scorers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_scores");
698}
699$menubox->addOption("link","Top losers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_losses");
700$menubox->addOption("link","Destroyed ships", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=kills_class");
701$menubox->addOption("link","Lost ships", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=losses_class");
702$menubox->addOption("caption","Global statistics");
703$menubox->addOption("link","Ships & weapons", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=ships_weapons");
704$menubox->addOption("link","Most violent systems", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=violent_systems");
705$page->addContext($menubox->generate());
706
707$page->setContent($html);
708$page->generate();
709?>
Note: See TracBrowser for help on using the browser.