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

Revision 370, 28.1 KB (checked in by kovell, 11 years ago)

- SQL queries optimised for speed and error protection.
- feed syndication optimised
- front page includes optional clock and optional kill/loss display
- mysqli support added
- transaction protection of kills added where supported (mysqli and InnoDB)
- summary tables and contracts show total destroyed value instead of ship value
- html errors reduced
- related kill calculation improved
- query caching errors reduced
- minor bugfixes
- Smarty 2.6.25 added
- apoc fitting mod added and modded
- code optimisations
- code comments added (doxygen format)
- conflicting mods are now identified

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