root/dev/common/cc_detail.php

Revision 459, 9.2 KB (checked in by kovell, 13 years ago)

Fixes: headers for uncached page set correctly, summary additions evaluated with isset instead of intval, ctr_id and scl_id explicitly set as int. unused pages removed.

Line 
1<?php
2require_once('common/includes/class.killlist.php');
3require_once('common/includes/class.killlisttable.php');
4require_once('common/includes/class.killsummarytable.php');
5require_once('common/includes/class.contract.php');
6require_once('common/includes/class.toplist.php');
7
8$ctr_id = intval($_GET['ctr_id']);
9$scl_id = intval($_GET['scl_id']);
10
11$contract = new Contract($ctr_id);
12if(!$contract->validate())
13{
14        echo 'No valid contract ID specified<br />';
15        return;
16}
17
18if ($contract->getCampaign())
19        $title = 'Campaign details';
20else
21        $title = 'Contract details';
22
23$page = new Page($title.' - '.$contract->getName());
24
25$html .= "<table align=center class=kb-table width=\"100%\" height=\"80\" border=\"0\" cellspacing=1><tr class=kb-table-row-even><td rowspan=5 align=center width=80 height=80>";
26// table class=kb-subtable cellspacing=0><tr class=kb-table-row-even><td width=80 height=80 align=center>";
27if ($contract->getCampaign())
28        $html .= "<img src=\"".IMG_URL."/campaign-big.gif\" align=center>";
29else
30        $html .= "<img src=\"".IMG_URL."/contract-big.gif\" align=center>";
31
32$html .= "</td>";
33// $html .= "<td valign=top align=left height=80>";
34// $html .= "<table class=kb-subtable width=\"100%\" height=\"100%\" cellspacing=1 border=\"0\">";
35if ($contract->getEndDate() == "")
36        $ended = "Active";
37else
38        $ended = substr($contract->getEndDate(), 0, 10);
39$html .= "<td class=kb-table-cell><b>Start date:</b></td><td class=kb-table-cell width=120><b>".substr($contract->getStartDate(), 0, 10)."</b></td><td class=kb-table-cell><b>End date:</b></td><td class=kb-table-cell width=120><b>".$ended."</b></td></tr>";
40$html .= "<tr class=kb-table-row-even><td class=kb-table-cell><b>Kills:</b></td><td class=kl-kill>".$contract->getKills()."</td><td class=kb-table-cell><b>Losses:</b></td><td class=kl-loss>".$contract->getLosses()."</td></tr>";
41$html .= "<tr class=kb-table-row-even><td class=kb-table-cell><b>Damage done (ISK):</b></td><td class=kl-kill>".round($contract->getKillISK()/1000000000, 2)."B</td><td class=kb-table-cell><b>Damage received (ISK):</b></td><td class=kl-loss>".round($contract->getLossISK()/1000000000, 2)."B</td></tr>";
42$html .= "<tr class=kb-table-row-even><td class=kb-table-cell><b>Runtime:</b></td><td class=kb-table-cell><b>".$contract->getRunTime()." days</b></td><td class=kb-table-cell><b>Efficiency:</b></td><td class=kb-table-cell><b>".$contract->getEfficiency()."%</b></td></tr>";
43$html .= "</table>";
44// $html .= "</td></tr></table>";
45$klist = $contract->getKillList();
46$llist = $contract->getLossList();
47$killsummary = new KillSummaryTable($klist, $llist);
48$killsummary->setBreak(config::get('summarytable_rowcount'));
49if ($_GET['view'] == "")
50        $killsummary->setFilter(false);
51
52$html .= "<br>";
53$html .= $killsummary->generate();
54
55switch ($_GET['view'])
56{
57        case "":
58                while ($target = &$contract->getContractTarget())
59                {
60                        $kl = &$target->getKillList();
61                        $ll = &$target->getLossList();
62                        $summary = new KillSummaryTable($kl, $ll);
63                        $summary->setVerbose(true);
64                        $qrylength=new DBQuery();
65                        // set break at half of the number of valid classes - excludes noob ships, drones and unknown
66                        $qrylength->execute("SELECT count(*) - 3 AS cnt FROM kb3_ship_classes");
67                        if($qrylength->recordCount())
68                        {
69                                $res = $qrylength->getRow();
70                                $summary->setBreak($res['cnt']/2);
71                        }
72                        else $summary->setBreak(15);
73                        $summary->setView('combined');
74
75                        $html .= "<br><div class=kb-contract-target-header>Target ".$target->getType()." - ";
76                        switch ($target->getType())
77                        {
78                                case "corp":
79                                        $html .= "<a class=kb-contract href=\"?a=".$target->getType()."_detail&crp_id=".$target->getID()."\">".$target->getName()."</a>";
80                                        break;
81                                case "alliance":
82                                        $html .= "<a class=kb-contract href=\"?a=".$target->getType()."_detail&all_id=".$target->getID()."\">".$target->getName()."</a>";
83                                        break;
84                                case "system":
85                                        $html .= "<a class=kb-contract href=\"?a=" .$target->getType()."_detail&sys_id=".$target->getID()."\">".$target->getName()."</a>";
86                                        break;
87                                case "region":
88                                        $html .= $target->getName();
89                                        break;
90                        }
91                        $html .= "</div>";
92                        $html .= $summary->generate();
93
94                        $html .= "<br><table class=kb-subtable border=\"0\" cellspacing=0 width=\"100%\"><tr><td>";
95
96                        if ($summary->getTotalKillISK())
97                                $efficiency = round($summary->getTotalKillISK() / ($summary->getTotalKillISK() + $summary->getTotalLossISK()) * 100, 2);
98                        else
99                                $efficiency = 0;
100
101                        $bar = new BarGraph($efficiency, 100, 120);
102                        $html .= "<table class=kb-table cellspacing=1 border=\"0\" width=\"100%\"><tr class=kb-table-row-even>";
103                        $html .= "<td class=kb-table-cell width=108><b>Totals:</b></td><td class=kl-kill-bg width=60 align=center>".$summary->getTotalKills()."</td><td class=kl-kill-bg width=60 align=center>".round($summary->getTotalKillISK()/1000000000, 2)."B</td>";
104                        $html .= "<td class=kl-loss-bg width=64 align=center>".$summary->getTotalLosses()."</td><td class=kl-loss-bg width=60 align=center>".round($summary->getTotalLossISK()/1000000000, 2)."B</td></tr></table>";
105
106                        $html .= "</td><td align=left>";
107
108                        $html .= "<table class=kb-table cellspacing=1 border=\"0\"><tr class=kb-table-row-even>";
109                        $html .= "<td class=kb-table-cell width=108><b>Efficiency:</b></td><td class=kb-table-cell align=center colspan=2 width=120><b>".$efficiency."%</b></td>";
110                        $html .= "<td class=kb-table-cell colspan=2 width=120>".$bar->generate()."</td></tr>";
111                        $html .= "</tr></table>";
112
113                        $html .= "</td></tr></table>";
114                }
115
116                break;
117        case "recent_activity":
118                $html .= "<div class=kb-kills-header>10 Most recent kills</div>";
119
120                $contract = new Contract($ctr_id);
121                $klist = $contract->getKillList();
122                $klist->setOrdered(true);
123                if ($scl_id)
124                        $klist->addVictimShipClass($scl_id);
125                else
126                        $klist->setPodsNoobShips(false);
127
128                $table = new KillListTable($klist);
129                $table->setLimit(10);
130                $table->setDayBreak(false);
131                $html .= $table->generate();
132
133                $html .= "<div class=kb-losses-header>10 Most recent losses</div>";
134                $llist = $contract->getLossList();
135                $llist->setOrdered(true);
136                if ($scl_id)
137                        $llist->addVictimShipClass($scl_id);
138                else
139                        $llist->setPodsNoobShips(false);
140
141                $table = new KillListTable($llist);
142                $table->setLimit(10);
143                $table->setDayBreak(false);
144                $html .= $table->generate();
145                break;
146        case "kills":
147                $html .= "<div class=kb-kills-header>All kills</div>";
148
149                $contract = new Contract($ctr_id);
150                $list = $contract->getKillList();
151                $list->setOrdered(true);
152                if ($scl_id)
153                        $list->addVictimShipClass($scl_id);
154
155                $pagesplitter = new PageSplitter($list->getCount(), 30);
156                $list->setPageSplitter($pagesplitter);
157                $table = new KillListTable($list);
158                $table->setDayBreak(false);
159                $html .= $table->generate();
160                $html .= $pagesplitter->generate();
161                break;
162        case "losses":
163                $html .= "<div class=kb-losses-header>All losses</div>";
164
165                $contract = new Contract($ctr_id);
166                $llist = $contract->getLossList();
167                $llist->setOrdered(true);
168                if ($scl_id)
169                        $llist->addVictimShipClass($scl_id);
170
171                $pagesplitter = new PageSplitter($llist->getCount(), 30);
172                $llist->setPageSplitter($pagesplitter);
173                $table = new KillListTable($llist);
174                $table->setDayBreak(false);
175                $html .= $table->generate();
176                $html .= $pagesplitter->generate();
177                break;
178        case "combined":
179                $html .= "<div class=kb-kills-header>All kills</div>";
180
181                $contract = new Contract($ctr_id);
182                $list = $contract->getKillList();
183                $list->setOrdered(true);
184                if ($scl_id)
185                        $list->addVictimShipClass($scl_id);
186
187                $pagesplitter = new PageSplitter($list->getCount(), 20);
188                $list->setPageSplitter($pagesplitter);
189                $table = new KillListTable($list);
190                $table->setDayBreak(false);
191                $html .= $table->generate();
192                $html .= $pagesplitter->generate();
193
194                $html .= "<div class=kb-losses-header>All losses</div>";
195
196                $contract = new Contract($ctr_id);
197                $llist = $contract->getLossList();
198                $llist->setOrdered(true);
199                if ($scl_id)
200                        $llist->addVictimShipClass($scl_id);
201
202                $pagesplitter = new PageSplitter($llist->getCount(), 20);
203                $llist->setPageSplitter($pagesplitter);
204                $table = new KillListTable($llist);
205                $table->setDayBreak(false);
206                $html .= $table->generate();
207                $html .= $pagesplitter->generate();
208                break;
209}
210
211$menubox = new box("Menu");
212$menubox->setIcon("menu-item.gif");
213$menubox->addOption("caption","Overview");
214$menubox->addOption("link","Target overview", "?a=cc_detail&ctr_id=".$ctr_id);
215$menubox->addOption("caption","Kills & losses");
216$menubox->addOption("link","Recent activity", "?a=cc_detail&ctr_id=".$ctr_id."&view=recent_activity");
217$menubox->addOption("link","All kills", "?a=cc_detail&ctr_id=".$ctr_id."&view=kills");
218$menubox->addOption("link","All losses", "?a=cc_detail&ctr_id=".$ctr_id."&view=losses");
219
220$page->addContext($menubox->generate());
221
222$tklist = new TopContractKillsList();
223$tklist->setContract(new Contract($ctr_id));
224involved::load($tklist,'kill');
225
226$tklist->generate();
227if ($contract->getCampaign())
228        $campaign = "campaign";
229else
230        $campaign = "contract";
231$tkbox = new AwardBox($tklist, "Top killers", "kills in this ".$campaign, "kills", "eagle");
232
233$page->addContext($tkbox->generate());
234
235if (config::get('kill_points'))
236{
237        $tklist = new TopContractScoreList();
238        $tklist->setContract(new Contract($ctr_id));
239        involved::load($tklist,'kill');
240
241        $tklist->generate();
242        $tkbox = new AwardBox($tklist, "Top scorers", "points in this ".$campaign, "points", "redcross");
243        $page->addContext($tkbox->generate());
244}
245
246$page->setContent($html);
247$page->generate();
248?>
Note: See TracBrowser for help on using the browser.