root/dev/mods/fitting/kill_detail.php @ 318

Revision 318, 15.1 KB (checked in by ralle030583, 14 years ago)

- Updated fitting mod
- new img sizes added
- panels for fitting mod added to core/img (preparation for merkge fitting mod / core)

Line 
1<?php
2require_once('common/includes/class.kill.php');
3require_once('common/includes/class.pilot.php');
4require_once('common/includes/class.corp.php');
5require_once('common/includes/class.alliance.php');
6
7$page = new Page('Kill details');
8
9if (config::get('item_values'))
10{
11    $smarty->assign('item_values', 'true');
12    if ($page->isAdmin())
13    {
14        $smarty->assign('admin', 'true');
15        if (isset($_POST['submit']) && $_POST['submit'] == 'UpdateValue')
16        {
17            // Send new value for item to the database
18            $IID = $_POST['IID'];
19            $Val = $_POST[$IID];
20            $qry = new DBQuery();
21            $qry->execute("INSERT INTO kb3_item_price (typeID, price) VALUES ('".$IID."', '".$Val."') ON DUPLICATE KEY UPDATE price = '".$Val."'");
22        }
23    }
24}
25
26if ($page->isAdmin())
27{
28    if (isset($_GET['view']) && $_GET['view']== 'FixSlot')
29    {
30            $smarty->assign('fixSlot', 'true');
31    }
32
33    $smarty->assign('admin', 'true');
34    if (isset($_POST['submit']) && $_POST['submit'] == 'UpdateSlot')
35    {
36        $IID = $_POST['IID'];
37        $KID = $_POST['KID'];
38        $Val = $_POST[$IID];
39        $table = $_POST['TYPE'];
40        $old = $_POST['OLDSLOT'];
41        $qry = new DBQuery();
42        $qry->execute("UPDATE kb3_items_".$table." SET itd_itl_id ='".$Val."' WHERE itd_itm_id=".$IID." AND itd_kll_id = ".$KID." AND itd_itl_id = ".$old);
43    }
44}
45
46if (!$kll_id = intval($_GET['kll_id']))
47{
48    $html = "No kill id specified.";
49    $page->setContent($html);
50    $page->generate($html);
51    exit;
52}
53
54$kill = new Kill($kll_id);
55if (!$kill->exists())
56{
57    $html = "That kill doesn't exist.";
58    $page->setContent($html);
59    $page->generate($html);
60    exit;
61}
62
63// victim $smarty->assign('',);
64$smarty->assign('KillId', $kill->getID());
65$smarty->assign('VictimPortrait', $kill->getVictimPortrait(64));
66$smarty->assign('VictimURL', "?a=pilot_detail&plt_id=".$kill->getVictimID());
67$smarty->assign('VictimName', $kill->getVictimName());
68$smarty->assign('VictimCorpURL', "?a=corp_detail&crp_id=".$kill->getVictimCorpID());
69$smarty->assign('VictimCorpName', $kill->getVictimCorpName());
70$smarty->assign('VictimAllianceURL', "?a=alliance_detail&all_id=".$kill->getVictimAllianceID());
71$smarty->assign('VictimAllianceName', $kill->getVictimAllianceName());
72$smarty->assign('VictimDamageTaken', $kill->VictimDamageTaken);
73
74// involved
75$i = 1;
76$involved = array();
77foreach ($kill->involvedparties_ as $inv)
78{
79    $pilot = new Pilot($inv->getPilotID());
80    $corp = new Corporation($inv->getCorpID());
81    $alliance = new Alliance($inv->getAllianceID());
82    $ship = $inv->getShip();
83    $weapon = $inv->getWeapon();
84
85    $involved[$i]['shipImage'] = $ship->getImage(64);
86    $involved[$i]['PilotURL'] = "?a=pilot_detail&plt_id=".$pilot->getID();
87    $involved[$i]['PilotName'] = $pilot->getName();
88    $involved[$i]['CorpURL'] = "?a=corp_detail&crp_id=".$corp->getID();
89    $involved[$i]['CorpName'] = $corp->getName();
90    $involved[$i]['AlliURL'] = "?a=alliance_detail&all_id=".$alliance->getID();
91    $involved[$i]['AlliName'] = $alliance->getName();
92    $involved[$i]['ShipName'] = $ship->getName();
93    $involved[$i]['ShipID'] = $ship->externalid_;
94    $involved[$i]['damageDone'] = $inv->dmgdone_;
95
96    if ($pilot->getID() == $kill->getFBPilotID())
97    {
98        $involved[$i]['FB'] = "true";
99    }
100    else
101    {
102        $involved[$i]['FB'] = "false";
103    }
104
105    if ($corp->isNPCCorp())
106    {
107        $involved[$i]['portrait'] = $corp->getPortraitURL(64);
108    }
109    else
110    {
111        $involved[$i]['portrait'] = $pilot->getPortraitURL(64);
112    }
113
114    if ($weapon->getName() != "Unknown" && $weapon->getName() != $ship->getName())
115    {
116        $involved[$i]['weaponName'] = $weapon->getName();
117        $involved[$i]['weaponID'] = $weapon->row_['itm_externalid'];
118    }
119    else
120        $involved[$i]['weaponName'] = "Unknown";
121    ++$i;
122}
123$smarty->assign_by_ref('involved', $involved);
124
125if (config::get('comments'))
126{
127    include('common/comments.php');
128    $smarty->assign('comments', $comment);
129}
130// ship, ship details
131$ship = $kill->getVictimShip();
132$shipclass = $ship->getClass();
133$system = $kill->getSystem();
134
135$smarty->assign('VictimShip', $kill->getVictimShip());
136$smarty->assign('ShipClass', $ship->getClass());
137$smarty->assign('ShipImage', $ship->getImage(64));
138$smarty->assign('ShipName', $ship->getName());
139$smarty->assign('ShipID', $ship->externalid_);
140$smarty->assign('ClassName', $shipclass->getName());
141
142include_once('common/includes/class.dogma.php');
143
144$ssc = new dogma($ship->externalid_);
145
146$smarty->assign_by_ref('ssc', $ssc);
147
148if ($kill->isClassified())
149{
150        //Admin is able to see classified Systems
151        if ($page->isAdmin())
152        {
153            $smarty->assign('System', $system->getName().' (Classified)');
154        $smarty->assign('SystemURL', "?a=system_detail&amp;sys_id=".$system->getID());
155            $smarty->assign('SystemSecurity', $system->getSecurity(true));
156        }
157        else
158        {
159                $smarty->assign('System', 'Classified');
160        $smarty->assign('SystemURL', "");
161            $smarty->assign('SystemSecurity', '0.0');
162        }
163}
164else
165{
166    $smarty->assign('System', $system->getName());
167    $smarty->assign('SystemURL', "?a=system_detail&amp;sys_id=".$system->getID());
168    $smarty->assign('SystemSecurity', $system->getSecurity(true));
169}
170$smarty->assign('TimeStamp', $kill->getTimeStamp());
171$smarty->assign('VictimShipImg', $ship->getImage(64));
172
173// preparing slot layout
174
175    $slot_array = array();
176    $slot_array[1] = array('img' => 'icon08_11.png', 'text' => 'Fitted - High slot', 'items' => array());
177    $slot_array[2] = array('img' => 'icon08_10.png', 'text' => 'Fitted - Mid slot', 'items' => array());
178    $slot_array[3] = array('img' => 'icon08_09.png', 'text' => 'Fitted - Low slot', 'items' => array());
179    $slot_array[5] = array('img' => 'icon68_01.png', 'text' => 'Fitted - Rig slot', 'items' => array());
180    $slot_array[6] = array('img' => 'icon02_10.png', 'text' => 'Drone bay', 'items' => array());
181    $slot_array[4] = array('img' => 'icon03_14.png', 'text' => 'Cargo Bay', 'items' => array());
182
183// ship fitting
184if (count($kill->destroyeditems_) > 0)
185{
186    $dest_array = array();
187    foreach($kill->destroyeditems_ as $destroyed)
188    {
189        $item = $destroyed->getItem();
190        $i_qty = $destroyed->getQuantity();
191        if (config::get('item_values'))
192        {
193            $value = $destroyed->getValue();
194            $TotalValue += $value*$i_qty;
195            $formatted = $destroyed->getFormatttedValue();
196        }
197        $i_name = $item->getName();
198        $i_location = $destroyed->getLocationID();
199        $i_id = $item->getID();
200        $i_usedgroup = $item->get_used_launcher_group($i_name);
201        $dest_array[$i_location][] = array('Icon' => $item->getIcon(32), 'Name' => $i_name, 'Quantity' => $i_qty, 'Value' => $formatted, 'single_unit' => $value, 'itemID' => $i_id,'slotID' => $i_location);
202               
203                //Fitting, KE - add destroyed items to an array of all fitted items.
204                if(($i_location != 4) && ($i_location != 5) && ($i_location != 6))
205                {
206                        if(($i_usedgroup != 0))
207                        {
208                                $ammo_array[$i_location][]=array('Name'=>$i_name, 'Icon' => $item->getIcon(24), 'itemID' => $i_id, 'usedgroupID' => $i_usedgroup);
209                        } else 
210                        {
211                                for ($count = 0; $count < $i_qty; $count++)
212                                {
213                                        $fitting_array[$i_location][]=array('Name'=>$i_name, 'Icon' => $item->getIcon(48), 'itemID' => $i_id, 'groupID' => $item->get_group_id($i_name));
214                                }
215                        }
216                } else if(($destroyed->getLocationID() == 5))
217                {
218                        for ($count = 0; $count < $i_qty; $count++)
219                        {
220                                $fitting_array[$i_location][]=array('Name'=>$i_name, 'Icon' => $item->getIcon(32), 'itemID' => $i_id);
221                        }
222                }
223                //fitting thing end
224    }
225}
226
227if (count($kill->droppeditems_) > 0)
228{
229    $drop_array = array();
230    foreach($kill->droppeditems_ as $dropped)
231    {
232        $item = $dropped->getItem();
233        $i_qty = $dropped->getQuantity();
234        if (config::get('item_values'))
235        {
236            $value = $dropped->getValue();
237            $dropvalue += $value*$i_qty;
238            $formatted = $dropped->getFormatttedValue();
239        }
240        $i_name = $item->getName();
241        $i_location = $dropped->getLocationID();
242        $i_id = $item->getID();
243        $i_usedgroup = $item->get_used_launcher_group($i_name);
244        $drop_array[$i_location][] = array('Icon' => $item->getIcon(32), 'Name' => $i_name, 'Quantity' => $i_qty, 'Value' => $formatted, 'single_unit' => $value, 'itemID' => $i_id,'slotID' => $i_location);
245               
246                //Fitting -KE, add dropped items to the list
247                if(($i_location != 4) && ($i_location != 6))
248                {
249                        if(($i_usedgroup != 0))
250                        {
251                                $ammo_array[$i_location][]=array('Name'=>$i_name, 'Icon' => $item->getIcon(24), 'itemID' => $i_id, 'usedgroupID' => $i_usedgroup);
252                        } else 
253                        {
254                                for ($count = 0; $count < $i_qty; $count++)
255                                {
256                                        $fitting_array[$i_location][]=array('Name'=>$i_name, 'Icon' => $item->getIcon(48), 'itemID' => $i_id, 'groupID' => $item->get_group_id($i_name));               
257                                }
258                        }
259                }
260                //fitting thing end
261               
262               
263    }
264}
265
266//Fitting - KE, sort the fitted items into name order, so that several of the same item apear next to each other.
267if(is_array($fitting_array[1]))
268{
269        foreach ($fitting_array[1] as $array_rowh)
270        {
271                 $sort_by_nameh["Name"][] = $array_rowh["Name"];
272        }
273        array_multisort($sort_by_nameh["Name"],SORT_ASC,$fitting_array[1]);
274}
275
276if(is_array($fitting_array[2]))
277{
278        foreach ($fitting_array[2] as $array_rowm) 
279        {
280                 $sort_by_namem["Name"][] = $array_rowm["Name"];
281        }
282        array_multisort($sort_by_namem["Name"],SORT_ASC,$fitting_array[2]);
283}
284
285if(is_array($fitting_array[3]))
286{
287        foreach ($fitting_array[3] as $array_rowl) 
288        {
289                 $sort_by_namel["Name"][] = $array_rowl["Name"];
290        }
291        array_multisort($sort_by_namel["Name"],SORT_ASC,$fitting_array[3]);
292}
293
294if(is_array($fitting_array[5]))
295{
296        foreach ($fitting_array[5] as $array_rowr) 
297        {
298                 $sort_by_namer["Name"][] = $array_rowr["Name"];
299        }
300        array_multisort($sort_by_namer["Name"],SORT_ASC,$fitting_array[5]);
301}
302
303//Fitting - KE, sort the fitted items into name order, so that several of the same item apear next to each other. -end
304
305$lenght = count($ammo_array[1]);
306$temp = array();
307if(is_array($fitting_array[1]))
308{
309        $hiammo = array();
310        foreach ($fitting_array[1] as $highfit)
311        {
312                $group = $highfit["groupID"];
313                if($group == 483 || $group == 53 || $group == 55 || $group == 74 || ($group >= 506 && $group <= 511) || $group == 481 || $group == 899 || $group == 771)
314                {
315                        $found = 0;
316                        if ($group == 511) { $group = 509; } 
317                        if(is_array($ammo_array[1]))
318                        {
319                                $i = 0;
320                                while (!($found) && $i<$lenght)
321                                {
322                                        $temp = array_shift($ammo_array[1]);
323                                        if ($temp["usedgroupID"] == $group)
324                                        {
325                                                $hiammo[]=array('show'=>$smarty->fetch(get_tpl('ammo')), 'type'=>$temp["Icon"]);
326                                                $found = 1;     
327                                        }
328                                        array_push($ammo_array[1],$temp);
329                                        $i++;                                   
330                                }                               
331                        }
332                        if (!($found)) 
333                        {
334                                $hiammo[]=array('show'=>$smarty->fetch(get_tpl('ammo')), 'type'=>$smarty->fetch(get_tpl('noicon')));
335                        }
336                } else {
337                        $hiammo[]=array('show'=>$smarty->fetch(get_tpl('blank')), 'type'=>$smarty->fetch(get_tpl('blank')));
338                }
339        }
340}
341
342$lenght = count($ammo_array[2]);
343if(is_array($fitting_array[2]))
344{
345        $midammo = array();
346        foreach ($fitting_array[2] as $midfit)
347        {
348                $group = $midfit["groupID"];
349                if($group == 76 || $group == 208 || $group == 212 || $group == 291 || $group == 213)
350                {
351                        $found = 0;
352                        if(is_array($ammo_array[2]))
353                        {                               
354                                $i = 0;
355                                while (!($found) && $i<$lenght)
356                                {
357                                        $temp = array_shift($ammo_array[2]);
358                                        if ($temp["usedgroupID"] == $group)
359                                        {
360                                                $midammo[]=array('show'=>$smarty->fetch(get_tpl('ammo')), 'type'=>$temp["Icon"]);
361                                                $found = 1;     
362                                        }
363                                        array_push($ammo_array[2],$temp);
364                                        $i++;                                   
365                                }                               
366                        }
367                        if (!($found)) 
368                        {
369                                $midammo[]=array('show'=>$smarty->fetch(get_tpl('ammo')), 'type'=>$smarty->fetch(get_tpl('noicon')));
370                        }
371                } else {
372                        $midammo[]=array('show'=>$smarty->fetch(get_tpl('blank')), 'type'=>$smarty->fetch(get_tpl('blank')));
373                }
374        }
375}
376
377
378if ($TotalValue >= 0)
379{
380    $Formatted = number_format($TotalValue, 2);
381}
382
383// Get Ship Value
384$ShipValue = $ship->getPrice();
385if (config::get('kd_droptototal'))
386{
387    $TotalValue += $dropvalue;
388}
389$TotalLoss = number_format($TotalValue + $ShipValue, 2);
390$ShipValue = number_format($ShipValue, 2);
391$dropvalue = number_format($dropvalue, 2);
392
393$smarty->assign_by_ref('destroyed', $dest_array);
394$smarty->assign_by_ref('dropped', $drop_array);
395$smarty->assign_by_ref('slots', $slot_array);
396$smarty->assign_by_ref('fitting_high', $fitting_array[1]);
397$smarty->assign_by_ref('fitting_med', $fitting_array[2]);
398$smarty->assign_by_ref('fitting_low', $fitting_array[3]);
399$smarty->assign_by_ref('fitting_rig', $fitting_array[5]);
400$smarty->assign_by_ref('fitting_ammo_high', $hiammo);
401$smarty->assign_by_ref('fitting_ammo_mid', $midammo);
402$smarty->assign('ItemValue', $Formatted);
403$smarty->assign('DropValue', $dropvalue);
404$smarty->assign('ShipValue', $ShipValue);
405$smarty->assign('TotalLoss', $TotalLoss);
406
407$hicount = count($fitting_array[1]);
408$medcount = count($fitting_array[2]);
409$lowcount = count($fitting_array[3]);
410
411$smarty->assign('hic', $hicount);
412$smarty->assign('medc', $medcount);
413$smarty->assign('lowc', $lowcount);
414
415$menubox = new Box("Menu");
416$menubox->setIcon("menu-item.gif");
417$menubox->addOption("caption", "View");
418$menubox->addOption("link", "Killmail", "javascript:sndReq('index.php?a=kill_mail&kll_id=".$kill->getID()."');ReverseContentDisplay('popup')");
419$menubox->addOption("link", "EFT Fitting", "javascript:sndReq('index.php?a=eft_fitting&kll_id=".$kill->getID()."');ReverseContentDisplay('popup')");
420if ($kill->relatedKillCount() > 1 || $kill->relatedLossCount() > 1)
421{
422    $menubox->addOption("link", "Related kills (".$kill->relatedKillCount()."/".$kill->relatedLossCount().")", "?a=kill_related&kll_id=".$kill->getID());
423}
424if ($page->isAdmin())
425{
426    $menubox->addOption("caption", "Admin");
427    $menubox->addOption("link", "Delete", "javascript:openWindow('?a=admin_kill_delete&kll_id=".$kill->getID()."', null, 420, 300, '' );");
428    if (isset($_GET['view']) && $_GET['view'] == 'FixSlot')
429    {
430        $menubox->addOption("link", "Adjust Values", "?a=kill_detail&kll_id=".$kill->getID()."");
431    }
432    else
433    {
434        $menubox->addOption("link", "Fix Slots", "?a=kill_detail&kll_id=".$kill->getID()."&view=FixSlot");
435    }
436}
437$page->addContext($menubox->generate());
438
439if (config::get('kill_points'))
440{
441    $scorebox = new Box("Points");
442    $scorebox->addOption("points", $kill->getKillPoints());
443    $page->addContext($scorebox->generate());
444}
445
446//Admin is able to see classsiefied systems
447if ((!$kill->isClassified()) || ($page->isAdmin()))
448{
449    $mapbox = new Box("Map");
450    $mapbox->addOption("img", "?a=mapview&sys_id=".$system->getID()."&mode=map&size=145");
451    $mapbox->addOption("img", "?a=mapview&sys_id=".$system->getID()."&mode=region&size=145");
452    $mapbox->addOption("img", "?a=mapview&sys_id=".$system->getID()."&mode=cons&size=145");
453    $page->addContext($mapbox->generate());
454}
455
456$html = $smarty->fetch('../mods/fitting/kill_detail.tpl');
457$page->setContent($html);
458$page->generate();
459?>
Note: See TracBrowser for help on using the browser.