root/dev/common/alliance_detail.php @ 233

Revision 233, 20.9 KB (checked in by ralle030583, 15 years ago)

- changed summarytable format to 5 rows each cause of cap. industrial
- bugfix in autoupgrade of navigation table (Kills were linked to Home :-/)
- added chk_cap_industrial to autoupgrade
- added Capital Industrial to sql install files

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');
8
9$all_id = $_GET['all_id'];
10$alliance = new Alliance(intval($all_id));
11$page = new Page('Alliance details - '.$alliance->getName());
12
13$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>";
14
15if (file_exists("img/alliances/".$alliance->getUnique().".png"))
16{
17    $html .= "<img src=\"".IMG_URL."/alliances/".$alliance->getUnique().".png\" border=\"0\"></td>";
18}
19else
20{
21    $html .= "<img src=\"".IMG_URL."/alliances/default.gif\" border=\"0\"></td>";
22}
23$kill_summary = new KillSummaryTable();
24$kill_summary->addInvolvedAlliance($alliance);
25$kill_summary->setBreak(5);
26$summary_html = $kill_summary->generate();
27
28$html .= "<td class=kb-table-cell width=180><b>Kills:</b></td><td class=kl-kill>".$kill_summary->getTotalKills()."</td></tr>";
29$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>";
30$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()/1000000, 2)."M</td></tr>";
31$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()/1000000, 2)."M</td></tr>";
32if ($kill_summary->getTotalKillISK())
33{
34    $efficiency = round($kill_summary->getTotalKillISK() / ($kill_summary->getTotalKillISK() + $kill_summary->getTotalLossISK()) * 100, 2);
35}
36else
37{
38    $efficiency = 0;
39}
40
41$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>";
42
43$html .= "</table>";
44$html .= "<br/>";
45
46if ($_GET['view'] == "" || $_GET['view'] == "kills" || $_GET['view'] == "losses")
47{
48    $html .= $summary_html;
49}
50
51switch ($_GET['view'])
52{
53    case "":
54        $html .= "<div class=kb-kills-header>10 Most recent kills</div>";
55
56        $list = new KillList();
57        $list->setOrdered(true);
58        $list->setLimit(10);
59        $list->setPodsNoobships(true);
60        $list->addInvolvedAlliance($alliance);
61        if ($_GET['scl_id'])
62            $list->addVictimShipClass(new ShipClass($_GET['scl_id']));
63
64        $ktab = new KillListTable($list);
65        $ktab->setLimit(10);
66        $ktab->setDayBreak(false);
67        $html .= $ktab->generate();
68
69        $html .= "<div class=kb-losses-header>10 Most recent losses</div>";
70
71        $list = new KillList();
72        $list->setOrdered(true);
73        $list->setLimit(10);
74        $list->setPodsNoobships(true);
75        $list->addVictimAlliance($alliance);
76        if ($_GET['scl_id'])
77            $list->addVictimShipClass(new ShipClass($_GET['scl_id']));
78
79        $ltab = new KillListTable($list);
80        $ltab->setLimit(10);
81        $ltab->setDayBreak(false);
82        $html .= $ltab->generate();
83
84        break;
85    case "kills":
86        $html .= "<div class=kb-kills-header>All kills</div>";
87
88        $list = new KillList();
89        $list->setOrdered(true);
90        $list->addInvolvedAlliance($alliance);
91        if ($_GET['scl_id'])
92            $list->addVictimShipClass(new ShipClass($_GET['scl_id']));
93        $pagesplitter = new PageSplitter($list->getCount(), 30);
94        $list->setPageSplitter($pagesplitter);
95        $table = new KillListTable($list);
96        $table->setDayBreak(false);
97        $html .= $table->generate();
98        $html .= $pagesplitter->generate();
99
100        break;
101    case "losses":
102        $html .= "<div class=kb-losses-header>All losses</div>";
103
104        $list = new KillList();
105        $list->setOrdered(true);
106        $list->setPodsNoobships(true);
107        $list->addVictimAlliance($alliance);
108        if ($_GET['scl_id'])
109            $list->addVictimShipClass(new ShipClass($_GET['scl_id']));
110        $pagesplitter = new PageSplitter($list->getCount(), 30);
111        $list->setPageSplitter($pagesplitter);
112
113        $table = new KillListTable($list);
114        $table->setDayBreak(false);
115        $html .= $table->generate();
116        $html .= $pagesplitter->generate();
117
118        break;
119    case "corp_kills":
120        $html .= "<div class=block-header2>Top killers</div>";
121
122        $html .= "<table class=kb-subtable><tr><td valign=top width=440>";
123        $html .= "<div class=block-header>This month</div>";
124
125        $list = new TopCorpKillsList();
126        $list->addInvolvedAlliance($alliance);
127        $list->setPodsNoobShips(false);
128        $list->setMonth(kbdate("m"));
129        $list->setYear(kbdate("Y"));
130        $table = new TopCorpTable($list, "Kills");
131        $html .= $table->generate();
132
133        $html .= "</td><td valign=top width=400>";
134        $html .= "<div class=block-header>All time</div>";
135
136        $list = new TopCorpKillsList();
137        $list->addInvolvedAlliance($alliance);
138        $list->setPodsNoobShips(false);
139        $table = new TopCorpTable($list, "Kills");
140        $html .= $table->generate();
141
142        $html .= "</td></tr></table>";
143
144        break;
145    case "corp_kills_class":
146        $html .= "<div class=block-header2>Destroyed ships</div>";
147       
148        // Get all ShipClasses
149        $sql = "select scl_id, scl_class from kb3_ship_classes
150            where scl_class not in ('Drone','Unknown') order by scl_class";
151       
152        $qry = new DBQuery();
153        $qry->execute($sql);
154        while ($row = $qry->getRow())
155        {
156            $shipclass[] = new Shipclass($row['scl_id']);
157        }
158        $html .= "<table class=kb-subtable>";
159        $html .= "<tr>";
160        $newrow = true;
161       
162        foreach ($shipclass as $shp){
163            if ($newrow){
164            $html .= '</tr><tr>';
165            }
166            $list = new TopCorpKillsList();
167            $list->addInvolvedAlliance($alliance);
168            $list->addVictimShipClass($shp);
169            $table = new TopCorpTable($list, "Kills");
170            $content = $table->generate();
171            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>'){
172            $html .= "<td valign=top width=440>";
173            $html .= "<div class=block-header>".$shp->getName()."</div>";
174            $html .= $content;
175            $html .= "</td>";
176            $newrow = !$newrow;
177            }
178           
179        }
180        $html .= "</tr></table>";
181
182        break;
183    case "kills_class":
184        $html .= "<div class=block-header2>Destroyed ships</div>";
185       
186        // Get all ShipClasses
187        $sql = "select scl_id, scl_class from kb3_ship_classes
188            where scl_class not in ('Drone','Unknown') order by scl_class";
189       
190        $qry = new DBQuery();
191        $qry->execute($sql);
192        while ($row = $qry->getRow())
193        {
194            $shipclass[] = new Shipclass($row['scl_id']);
195        }
196        $html .= "<table class=kb-subtable>";
197        $html .= "<tr>";
198        $newrow = true;
199       
200        foreach ($shipclass as $shp){
201            if ($newrow){
202            $html .= '</tr><tr>';
203            }
204            $list = new TopKillsList();
205            $list->addInvolvedAlliance($alliance);
206            $list->addVictimShipClass($shp);
207            $table = new TopPilotTable($list, "Kills");
208            $content = $table->generate();
209            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>'){
210            $html .= "<td valign=top width=440>";
211            $html .= "<div class=block-header>".$shp->getName()."</div>";
212            $html .= $content;
213            $html .= "</td>";
214            $newrow = !$newrow;
215            }
216           
217        }
218        $html .= "</tr></table>";
219
220        break;
221    case "corp_losses_class":
222        $html .= "<div class=block-header2>Lost ships</div>";
223
224            // Get all ShipClasses
225        $sql = "select scl_id, scl_class from kb3_ship_classes
226            where scl_class not in ('Drone','Unknown') order by scl_class";
227       
228        $qry = new DBQuery();
229        $qry->execute($sql);
230        while ($row = $qry->getRow())
231        {
232            $shipclass[] = new Shipclass($row['scl_id']);
233        }
234        $html .= "<table class=kb-subtable>";
235        $html .= "<tr>";
236        $newrow = true;
237
238        foreach ($shipclass as $shp){
239            if ($newrow){
240            $html .= '</tr><tr>';
241            }
242            $list = new TopCorpLossesList();
243                $list->addVictimAlliance($alliance);
244            $list->addVictimShipClass($shp);
245            $table = new TopCorpTable($list, "Losses");
246            $content = $table->generate();
247            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>'){
248            $html .= "<td valign=top width=440>";
249                $html .= "<div class=block-header>".$shp->getName()."</div>";
250                $html .= $content;
251            $html .= "</td>";
252            $newrow = !$newrow;
253            }
254        }
255        $html .= "</tr></table>";
256
257        break;
258    case "losses_class":
259        $html .= "<div class=block-header2>Lost ships</div>";
260
261            // Get all ShipClasses
262        $sql = "select scl_id, scl_class from kb3_ship_classes
263            where scl_class not in ('Drone','Unknown') order by scl_class";
264       
265        $qry = new DBQuery();
266        $qry->execute($sql);
267        while ($row = $qry->getRow())
268        {
269            $shipclass[] = new Shipclass($row['scl_id']);
270        }
271        $html .= "<table class=kb-subtable>";
272        $html .= "<tr>";
273        $newrow = true;
274
275        foreach ($shipclass as $shp){
276            if ($newrow){
277            $html .= '</tr><tr>';
278            }
279            $list = new TopLossesList();
280                $list->addVictimAlliance($alliance);
281            $list->addVictimShipClass($shp);
282            $table = new TopPilotTable($list, "Losses");
283            $content = $table->generate();
284            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>'){
285            $html .= "<td valign=top width=440>";
286                $html .= "<div class=block-header>".$shp->getName()."</div>";
287                $html .= $content;
288            $html .= "</td>";
289            $newrow = !$newrow;
290            }
291        }
292        $html .= "</tr></table>";
293
294        break;
295    case "corp_losses":
296        $html .= "<div class=block-header2>Top losers</div>";
297
298        $html .= "<table class=kb-subtable><tr><td valign=top width=440>";
299        $html .= "<div class=block-header>This month</div>";
300
301        $list = new TopCorpLossesList();
302        $list->addVictimAlliance($alliance);
303        $list->setPodsNoobShips(false);
304        $list->setMonth(kbdate("m"));
305        $list->setYear(kbdate("Y"));
306        $table = new TopCorpTable($list, "Losses");
307        $html .= $table->generate();
308
309        $html .= "</td><td valign=top width=400>";
310        $html .= "<div class=block-header>All time</div>";
311
312        $list = new TopCorpLossesList();
313        $list->addVictimAlliance($alliance);
314        $list->setPodsNoobShips(false);
315        $table = new TopCorpTable($list, "Losses");
316        $html .= $table->generate();
317
318        $html .= "</td></tr></table>";
319
320        break;
321    case "pilot_kills":
322        $html .= "<div class=block-header2>Top killers</div>";
323
324        $html .= "<table class=kb-subtable><tr><td valign=top width=440>";
325        $html .= "<div class=block-header>This month</div>";
326
327        $list = new TopKillsList();
328        $list->addInvolvedAlliance($alliance);
329        $list->setPodsNoobShips(false);
330        $list->setMonth(kbdate("m"));
331        $list->setYear(kbdate("Y"));
332        $table = new TopPilotTable($list, "Kills");
333        $html .= $table->generate();
334
335        $html .= "</td><td valign=top width=400>";
336        $html .= "<div class=block-header>All time</div>";
337
338        $list = new TopKillsList();
339        $list->addInvolvedAlliance($alliance);
340        $list->setPodsNoobShips(false);
341        $table = new TopPilotTable($list, "Kills");
342        $html .= $table->generate();
343
344        $html .= "</td></tr></table>";
345
346        break;
347    case "pilot_scores":
348        $html .= "<div class=block-header2>Top scorers</div>";
349
350        $html .= "<table class=kb-subtable><tr><td valign=top width=440>";
351        $html .= "<div class=block-header>This month</div>";
352
353        $list = new TopScoreList();
354        $list->addInvolvedAlliance($alliance);
355        $list->setPodsNoobShips(true);
356        $list->setMonth(kbdate("m"));
357        $list->setYear(kbdate("Y"));
358        $table = new TopPilotTable($list, "Points");
359        $html .= $table->generate();
360
361        $html .= "</td><td valign=top width=400>";
362        $html .= "<div class=block-header>All time</div>";
363
364        $list = new TopScoreList();
365        $list->addInvolvedAlliance($alliance);
366        $list->setPodsNoobShips(true);
367        $table = new TopPilotTable($list, "Points");
368        $html .= $table->generate();
369
370        $html .= "</td></tr></table>";
371
372        break;
373    case "pilot_losses":
374        $html .= "<div class=block-header2>Top losers</div>";
375
376        $html .= "<table class=kb-subtable><tr><td valign=top width=440>";
377        $html .= "<div class=block-header>This month</div>";
378
379        $list = new TopLossesList();
380        $list->addVictimAlliance($alliance);
381        $list->setPodsNoobShips(false);
382        $list->setMonth(kbdate("m"));
383        $list->setYear(kbdate("Y"));
384        $table = new TopPilotTable($list, "Losses");
385        $html .= $table->generate();
386
387        $html .= "</td><td valign=top width=400>";
388        $html .= "<div class=block-header>All time</div>";
389
390        $list = new TopLossesList();
391        $list->addVictimAlliance($alliance);
392        $list->setPodsNoobShips(false);
393        $table = new TopPilotTable($list, "Losses");
394        $html .= $table->generate();
395
396        $html .= "</td></tr></table>";
397
398        break;
399    case "ships_weapons":
400        $html .= "<div class=block-header2>Ships & weapons used</div>";
401
402        $html .= "<table class=kb-subtable><tr><td valign=top width=400>";
403        $shiplist = new TopShipList();
404        $shiplist->addInvolvedAlliance($alliance);
405        $shiplisttable = new TopShipListTable($shiplist);
406        $html .= $shiplisttable->generate();
407        $html .= "</td><td valign=top align=right width=400>";
408
409        $weaponlist = new TopWeaponList();
410        $weaponlist->addInvolvedAlliance($alliance);
411        $weaponlisttable = new TopWeaponListTable($weaponlist);
412        $html .= $weaponlisttable->generate();
413        $html .= "</td></tr></table>";
414
415        break;
416    case 'violent_systems':
417        $html .= "<div class=block-header2>Most violent systems</div>";
418        $html .= "<table width=\"99%\"><tr><td align=center valign=top>";
419
420        $html .= "<div class=block-header>This month</div>";
421        $html .= "<table class=kb-table>";
422        $html .= "<tr class=kb-table-header><td>#</td><td width=180>System</td><td width=40 align=center >Kills</td></tr>";
423
424        $sql = "select sys.sys_name, sys.sys_sec, sys.sys_id, count(distinct kll.kll_id) as kills
425                    from kb3_systems sys, kb3_kills kll, kb3_inv_detail inv
426                    where kll.kll_system_id = sys.sys_id
427                    and inv.ind_kll_id = kll.kll_id";
428
429        if ($crp_id)
430            $sql .= " and inv.ind_crp_id in (".$crp_id.")";
431        if ($all_id)
432            $sql .= " and inv.ind_all_id = ".$all_id;
433
434        $sql .= "   and date_format( kll.kll_timestamp, \"%c\" ) = ".kbdate("m")."
435                    and date_format( kll.kll_timestamp, \"%Y\" ) = ".kbdate("Y")."
436                    group by sys.sys_name
437                    order by kills desc
438                    limit 25";
439
440        $qry = new DBQuery();
441        $qry->execute($sql);
442        $odd = false;
443        $counter = 1;
444        while ($row = $qry->getRow())
445        {
446            if (!$odd)
447            {
448                $odd = true;
449                $rowclass = 'kb-table-row-odd';
450            }
451            else
452            {
453                $odd = false;
454                $rowclass = 'kb-table-row-even';
455            }
456
457            $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>";
458            $counter++;
459        }
460
461        $html .= "</table>";
462
463        $html .= "</td><td align=center valign=top>";
464        $html .= "<div class=block-header>All-Time</div>";
465        $html .= "<table class=kb-table>";
466        $html .= "<tr class=kb-table-header><td>#</td><td width=180>System</td><td width=40 align=center>Kills</td></tr>";
467
468        $sql = "select sys.sys_name, sys.sys_id, sys.sys_sec, count(distinct kll.kll_id) as kills
469                    from kb3_systems sys, kb3_kills kll, kb3_inv_detail inv
470                    where kll.kll_system_id = sys.sys_id
471                    and inv.ind_kll_id = kll.kll_id";
472
473        if ($crp_id)
474            $sql .= " and inv.ind_crp_id in (".$crp_id.")";
475        if ($all_id)
476            $sql .= " and inv.ind_all_id = ".$all_id;
477
478        $sql .= " group by sys.sys_name
479                    order by kills desc
480                    limit 25";
481
482        $qry = new DBQuery();
483        $qry->execute($sql);
484        $odd = false;
485        $counter = 1;
486        while ($row = $qry->getRow())
487        {
488            if (!$odd)
489            {
490                $odd = true;
491                $rowclass = 'kb-table-row-odd';
492            }
493            else
494            {
495                $odd = false;
496                $rowclass = 'kb-table-row-even';
497            }
498
499            $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>";
500            $counter++;
501        }
502        $html .= "</table>";
503        $html .= "</td></tr></table>";
504    break;
505}
506
507$menubox = new Box("Menu");
508$menubox->setIcon("menu-item.gif");
509$menubox->addOption("caption","Kills & losses");
510$menubox->addOption("link","Recent activity", "?a=alliance_detail&all_id=" . $alliance->getID());
511$menubox->addOption("link","Kills", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=kills");
512$menubox->addOption("link","Losses", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=losses");
513$menubox->addOption("caption","Corp statistics");
514$menubox->addOption("link","Top killers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=corp_kills");
515$menubox->addOption("link","Top losers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=corp_losses");
516$menubox->addOption("link","Destroyed ships", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=corp_kills_class");
517$menubox->addOption("link","Lost ships", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=corp_losses_class");
518$menubox->addOption("caption","Pilot statistics");
519$menubox->addOption("link","Top killers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_kills");
520if (config::get('kill_points'))
521{
522    $menubox->addOption('link', "Top scorers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_scores");
523}
524$menubox->addOption("link","Top losers", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=pilot_losses");
525$menubox->addOption("link","Destroyed ships", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=kills_class");
526$menubox->addOption("link","Lost ships", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=losses_class");
527$menubox->addOption("caption","Global statistics");
528$menubox->addOption("link","Ships & weapons", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=ships_weapons");
529$menubox->addOption("link","Most violent systems", "?a=alliance_detail&all_id=" . $alliance->getID() . "&view=violent_systems");
530$page->addContext($menubox->generate());
531
532$page->setContent($html);
533$page->generate();
534?>
Note: See TracBrowser for help on using the browser.