root/dev/common/corp_detail.php @ 326

Revision 326, 18.3 KB (checked in by ralle030583, 14 years ago)

ADD: Possiblity to browse through old months different alliance
ADD: Optinal to killist: "count of involved pilots" ( http://www.eve-dev.net/e107_plugins/forum/forum_viewtopic.php?11744.4)

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