root/dev/mods/forum_post/cc_detail.php @ 491

Revision 465, 9.9 KB (checked in by kovell, 11 years ago)

Refactoring mod input to match core

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