root/dev/mods/apoc_fitting/kill_detail.php @ 428

Revision 428, 29.1 KB (checked in by kovell, 13 years ago)

Kill deletion and price updates wrapped in a transaction. eve_central_sync can fall back to fopen from cURL. Upgrade for suitable indexes

Line 
1<?php
2require_once('common/includes/class.kill.php');
3
4$page = new Page('Kill details');
5
6$kll_id = intval($_GET['kll_id']);
7$kll_external_id = intval($_GET['kll_external_id']);
8if (!$kll_id && !$kll_external_id)
9{
10    $html = "No kill id specified.";
11    $page->setContent($html);
12    $page->generate($html);
13    exit;
14}
15
16if($kll_id)
17{
18        $kill = new Kill($kll_id);
19}
20else
21{
22        $kill = new Kill($kll_external_id, true);
23        $kll_id = $kill->getID();
24}
25$kill->setDetailedInvolved();
26
27if (!$kill->exists())
28{
29    $html="That kill doesn't exist.";
30    $page->setContent($html);
31    $page->generate($html);
32    exit;
33}
34
35// If a comment is being posted then we don't exit this block.
36if(isset($_POST['comment']) && config::get('comments'))
37{
38    include('common/comments.php');
39}
40
41require_once('common/includes/class.killsummarytable.php');
42require_once('common/includes/class.pilot.php');
43require_once('common/includes/class.corp.php');
44require_once('common/includes/class.alliance.php');
45
46$page=new Page('Kill details');
47$page->addHeader('<link rel="stylesheet" type="text/css" href="mods/apoc_fitting/style.css">');
48
49// check apoc settings are set up. If not, put defaults in.
50if(!config::get('apocfitting_colour'))
51{
52        config::set('apocfitting_colour', 'apoc');
53        config::set('apocfitting_themedir', 'panel');
54}
55
56$smarty->assign('panel_colour', config::get('apocfitting_colour'));
57$smarty->assign('dropped_colour', config::get('apocfitting_dropped_colour'));
58$smarty->assign('themedir', config::get('apocfitting_themedir'));
59$smarty->assign('showammo', config::get('apocfitting_showammo'));
60$smarty->assign('showiskd', config::get('apocfitting_showiskd'));
61$smarty->assign('showext', config::get('apocfitting_showext'));
62$mapmod = config::get('apocfitting_mapmod');
63$sidemap = config::get('apocfitting_sidemap');
64$showbox = config::get('apocfitting_showbox');
65
66if (config::get('item_values'))
67{
68    $smarty->assign('item_values', 'true');
69
70    if ($page->isAdmin())
71        {
72                $smarty->assign('admin', 'true');
73
74                if (isset($_POST['submit']) && $_POST['submit'] == 'UpdateValue')
75                {
76                        // Send new value for item to the database
77                        $IID=$_POST['IID'];
78                        $Val=$_POST[$IID];
79                        $qry=new DBQuery();
80                        $qry->autocommit(false);
81                        $qry->execute("INSERT INTO kb3_item_price (typeID, price) VALUES ('" . $IID . "', '" . $Val
82                                                          . "') ON DUPLICATE KEY UPDATE price = '" . $Val . "'");
83                        foreach($kill->destroyeditems_ as $i =>$ditem)
84                        {
85                                //php4
86                                $item = $ditem->getItem();
87                                if($item->getID() == $IID) $kill->destroyeditems_[$i]->value = $Val;
88                        }
89                        foreach($kill->droppeditems_ as $i =>$ditem)
90                        {
91                                //php4
92                                $item = $ditem->getItem();
93                                if($item->getID() == $IID) $kill->droppeditems_[$i]->value = $Val;
94                        }
95                        $qry->execute("UPDATE kb3_kills SET kll_isk_loss = ".$kill->calculateISKLoss()." WHERE kll_id = ".$kill->getID());
96                        $qry->autocommit(true);
97                }
98        }
99}
100
101if ($page->isAdmin())
102    {
103    if (isset($_GET['view']) && $_GET['view'] == 'FixSlot')
104        {
105        $smarty->assign('fixSlot', 'true');
106        }
107
108    $smarty->assign('admin', 'true');
109
110    if (isset($_POST['submit']) && $_POST['submit'] == 'UpdateSlot')
111        {
112        $IID  =$_POST['IID'];
113        $KID  =$_POST['KID'];
114        $Val  =$_POST[$IID];
115        $table=$_POST['TYPE'];
116        $old  =$_POST['OLDSLOT'];
117        $qry  =new DBQuery();
118        $qry->execute("UPDATE kb3_items_" . $table . " SET itd_itl_id ='" . $Val . "' WHERE itd_itm_id=" . $IID
119                          . " AND itd_kll_id = " . $KID . " AND itd_itl_id = " . $old);
120        }
121    }
122
123// Begin -- Sapyx 25-08-2008
124
125$qry=new DBQuery();
126
127if (ALLIANCE_ID <> '0')
128    {
129    $qry->execute("SELECT all_name FROM kb3_alliances WHERE all_id = " . ALLIANCE_ID) or die($qry->getErrorMsg());
130
131    $row=$qry->getRow();
132    $smarty->assign('IsAlly', true);
133    $smarty->assign('HomeName', $row['all_name']);
134
135/*
136    $qry->execute("SELECT `kb3_corps`.`crp_name` FROM kb3_corps WHERE (kb3_corps.crp_all_id=" . ALLIANCE_ID . ")")
137        or die($qry->getErrorMsg());
138
139    $rosso=0x70;
140    $verde=0;
141    $blu  =0x70;
142
143    while ($row=$qry->getRow())
144        {
145        $verde+=10;
146        $blu-=10;
147        $rosso-=15;
148        $corps[$row['crp_name']]="RGB($rosso,$verde,$blu)";
149        }
150 */
151    }
152else
153    {
154    $qry->execute("SELECT crp_name FROM kb3_corps WHERE crp_id = " . CORP_ID) or die($qry->getErrorMsg());
155
156    $row=$qry->getRow();
157    $smarty->assign('IsAlly', false);
158    $smarty->assign('HomeName', $row['crp_name']);
159    }
160
161// END --
162
163// victim $smarty->assign('',);
164$smarty->assign('KillId', $kill->getID());
165$smarty->assign('VictimPortrait', $kill->getVictimPortrait(64));
166$smarty->assign('VictimURL', "?a=pilot_detail&amp;plt_id=" . $kill->getVictimID());
167$smarty->assign('VictimName', $kill->getVictimName());
168$smarty->assign('VictimCorpURL', "?a=corp_detail&amp;crp_id=" . $kill->getVictimCorpID());
169$smarty->assign('VictimCorpName', $kill->getVictimCorpName());
170$smarty->assign('VictimAllianceURL', "?a=alliance_detail&amp;all_id=" . $kill->getVictimAllianceID());
171$smarty->assign('VictimAllianceName', $kill->getVictimAllianceName());
172$smarty->assign('VictimDamageTaken', $kill->VictimDamageTaken);
173$smarty->assign('InvolvedPartyCount', $kill->getInvolvedPartyCount()); // Anne Sapyx 07/05/2008
174$smarty->assign('AllyCorps', $corps);
175
176// involved
177$i=1;
178
179$involved=array();
180$ownKill= false;
181
182foreach ($kill->involvedparties_ as $inv)
183{
184    $pilot                     =$inv->getPilot();
185    $corp                      =$inv->getCorp();
186    $alliance                  =$inv->getAlliance();
187    $ship                      =$inv->getShip();
188    $weapon                    =$inv->getWeapon();
189
190    $involved[$i]['shipImage'] =$ship->getImage(64);
191    $involved[$i]['PilotURL']  ="?a=pilot_detail&amp;plt_id=" . $pilot->getID();
192    $involved[$i]['PilotName'] =$pilot->getName();
193    $involved[$i]['CorpURL']   ="?a=corp_detail&amp;crp_id=" . $corp->getID();
194    $involved[$i]['CorpName']  =$corp->getName();
195    $involved[$i]['AlliURL']   ="?a=alliance_detail&amp;all_id=" . $alliance->getID();
196    $involved[$i]['AlliName']  =$alliance->getName();
197    $involved[$i]['ShipName']  =$ship->getName();
198    $involved[$i]['ShipID']    =$ship->externalid_;
199    $involved[$i]['damageDone']=$inv->dmgdone_;
200    $shipclass                 =$ship->getClass();
201
202    $involved[$i]['shipClass'] =$shipclass->getName();
203
204    if ($pilot->getID() == $kill->getFBPilotID())
205        {
206        $involved[$i]['FB']="true";
207        }
208    else
209        {
210        $involved[$i]['FB']="false";
211        }
212
213    if ($corp->isNPCCorp())
214        {
215        $involved[$i]['portrait']=$corp->getPortraitURL(64);
216        }
217    else
218        {
219        $involved[$i]['portrait']=$pilot->getPortraitURL(64);
220        }
221
222    if ($weapon->getName() != "Unknown" && $weapon->getName() != $ship->getName())
223        {
224        $involved[$i]['weaponName']=$weapon->getName();
225        $involved[$i]['weaponID']  =$weapon->row_['itm_externalid'];
226        }
227    else
228        $involved[$i]['weaponName']="Unknown";
229
230    // Sapyx 16/09/2008 -- from Rostik idea
231    // Update by Rostik 19/08/2008 - Add Alliance logo
232    //sapyx 29/10/2008
233    // Sapyx 16/09/2008 -- from Rostik idea
234// Update by Rostik 19/08/2008 - Add Alliance logo
235//sapyx 29/10/2008
236// Rostik 11/03/2009
237
238    $handle=@fopen("mods/apoc_fitting/ItemsList", "r");
239
240    if ($handle)
241        {
242        while (!feof($handle))
243            {
244            $ItemsArray = explode(",", fgets($handle));
245              if (strpos($involved[$i]['weaponName'], trim($ItemsArray[0])) !== FALSE)
246                  {
247                  $involved[$i]['shipImage']="img/ships/64_64/" . trim($ItemsArray[1]) . ".png";
248
249                    if ($corp->isNPCCorp()) {
250                    } else {
251                    if ($involved[$i]['CorpName'] =="None") {
252                              $aliimg                  =ereg_replace(" ", "", $involved[$i]['AlliName']);
253                              $aliimg                  =ereg_replace("\.", "", $aliimg);
254                              $aliimg                  =ereg_replace("-", "", $aliimg);
255
256                    if (file_exists("img/alliances/".$aliimg.".png")) {
257                              $involved[$i]['portrait']="img/alliances/" . $aliimg . ".png";
258                    } else {
259                         $involved[$i]['portrait']="img/alliances/default.png";}
260
261                    if ((($involved[$i]['AlliName'] == "None") || ($involved[$i]['AlliName'] == "Unknown"))) {
262                       $involved[$i]['portrait']="img/alliances/default.png";
263                       }
264
265                    } else {
266                       $involved[$i]['portrait']="img/corps/" . $corp->getID() . ".jpg";
267                           }
268                    }
269                }
270            }
271
272        fclose($handle);
273        }
274
275// END -- Sapyx Rostik & C
276
277    // END -- Sapyx Rostik & C
278
279    // Begin -- Sapyx 25-06-2008
280    $InvAllies[$involved[$i]['AlliName']]["quantity"]+=1;
281    $InvAllies[$involved[$i]['AlliName']]["corps"][$involved[$i]['CorpName']]+=1;
282//HK    $InvShips[$involved[$i]['ShipName'] ." (" .$involved[$i]['shipClass'] .")"] += 1;
283    $InvShips[$involved[$i]['ShipName']] += 1;
284if(ALLIANCE_ID >0 && $alliance->getID()==ALLIANCE_ID) $ownKill=true;
285elseif(CORP_ID >0 && $corp->getID()==CORP_ID) $ownKill=true;
286    // End -- Sapyx 25-06-2008
287
288    ++$i;
289    }
290if($ownKill) $smarty->assign('kill',true);
291else $smarty->assign('kill',false);
292
293$smarty->assign_by_ref('involved', $involved);
294$smarty->assign_by_ref('AlliesCount', count($InvAllies));
295$smarty->assign_by_ref('InvAllies', $InvAllies);
296$smarty->assign_by_ref('InvShips', $InvShips);
297
298if (config::get('comments'))
299{
300    include('common/comments.php');
301    $smarty->assign('comments', $comment);
302}
303
304// ship, ship details
305$ship=$kill->getVictimShip();
306$shipclass=$ship->getClass();
307$system=$kill->getSystem();
308
309$smarty->assign('VictimShip', $kill->getVictimShip());
310$smarty->assign('ShipClass', $ship->getClass());
311$smarty->assign('ShipImage', $ship->getImage(64));
312$smarty->assign('ShipName', $ship->getName());
313$smarty->assign('ShipID', $ship->externalid_);
314$smarty->assign('ClassName', $shipclass->getName());
315
316include_once('common/includes/class.dogma.php');
317
318$ssc=new dogma($ship->externalid_);
319
320$smarty->assign_by_ref('ssc', $ssc);
321
322if ($kill->isClassified())
323    {
324    //Admin is able to see classified Systems
325    if ($page->isAdmin())
326        {
327        if ($mapmod) {
328            $smarty->assign('SystemID', $system->getID());
329        }
330        $smarty->assign('System', $system->getName() . ' (Classified)');
331        $smarty->assign('SystemURL', "?a=system_detail&amp;sys_id=" . $system->getID());
332        $smarty->assign('SystemSecurity', $system->getSecurity(true));
333        }
334    else
335        {
336        $smarty->assign('System', 'Classified');
337        $smarty->assign('SystemURL', "");
338        $smarty->assign('SystemSecurity', '0.0');
339        }
340    }
341else
342    {
343    if ($mapmod) {
344        $smarty->assign('SystemID', $system->getID());
345    }
346    $smarty->assign('System', $system->getName());
347    $smarty->assign('SystemURL', "?a=system_detail&amp;sys_id=" . $system->getID());
348    $smarty->assign('SystemSecurity', $system->getSecurity(true));
349    }
350
351$smarty->assign('TimeStamp', $kill->getTimeStamp());
352$smarty->assign('VictimShipImg', $ship->getImage(64));
353
354if ($mapmod) {
355        if(strpos($config->get('mods_active'), 'map_mod') !== false) {
356
357        $smarty->assign('loc_active', TRUE);
358        }
359        else {
360        $smarty->assign('loc_active', FALSE);
361        }
362}
363
364// preparing slot layout
365
366$slot_array=array();
367
368$slot_array[1]=array
369    (
370    'img'   => 'icon08_11.png',
371    'text'  => 'Fitted - High slot',
372    'items' => array()
373    );
374
375$slot_array[2]=array
376    (
377    'img'   => 'icon08_10.png',
378    'text'  => 'Fitted - Mid slot',
379    'items' => array()
380    );
381
382$slot_array[3]=array
383    (
384    'img'   => 'icon08_09.png',
385    'text'  => 'Fitted - Low slot',
386    'items' => array()
387    );
388
389$slot_array[5]=array
390    (
391    'img'   => 'icon68_01.png',
392    'text'  => 'Fitted - Rig slot',
393    'items' => array()
394    );
395
396$slot_array[6]=array
397    (
398    'img'   => 'icon02_10.png',
399    'text'  => 'Drone bay',
400    'items' => array()
401    );
402
403$slot_array[4]=array
404    (
405    'img'   => 'icon03_14.png',
406    'text'  => 'Cargo Bay',
407    'items' => array()
408    );
409$slot_array[7]=array
410    (
411    'img'   => 'icon76_04.png',
412    'text'  => 'Fitted - Subsystems',
413    'items' => array()
414    );
415
416// ship fitting
417if (count($kill->destroyeditems_) > 0)
418    {
419    $dest_array=array();
420
421    foreach ($kill->destroyeditems_ as $destroyed)
422        {
423        $item = $destroyed->getItem();
424        $i_qty=$destroyed->getQuantity();
425
426        if (config::get('item_values'))
427            {
428            $value=$destroyed->getValue();
429            $TotalValue+=$value * $i_qty;
430            $formatted=$destroyed->getFormattedValue();
431            }
432
433        $i_name     =$item->getName();
434        $i_location =$destroyed->getLocationID();
435        $i_id       =$item->getID();
436        $i_usedgroup=$item->get_used_launcher_group();
437
438        $dest_array[$i_location][]=array
439            (
440            'Icon'        => $item->getIcon(32),
441            'Name'        => $i_name,
442            'Quantity'    => $i_qty,
443            'Value'       => $formatted,
444            'single_unit' => $value,
445            'itemID'      => $i_id,
446            'slotID'      => $i_location
447            );
448
449        //Fitting, KE - add destroyed items to an array of all fitted items.
450        if (($i_location != 4) && ($i_location != 5) && ($i_location != 6))
451            {
452            if (($i_usedgroup != 0))
453                {
454                if ($i_location == 1)
455                    {
456                    $i_ammo=$item->get_ammo_size($i_name);
457
458                    if ($i_usedgroup == 481)
459                        {
460                        $i_ammo=0;
461                        }
462                    }
463                else
464                    {
465                    $i_ammo=0;
466                    }
467
468                $ammo_array[$i_location][]=array
469                    (
470                    'Name'        => $i_name,
471                    'Icon'        => $item->getIcon(24),
472                    'itemID'      => $i_id,
473                    'usedgroupID' => $i_usedgroup,
474                    'size'        => $i_ammo
475                    );
476                }
477            else
478                {
479                for ($count=0; $count < $i_qty; $count++)
480                    {
481                    if ($i_location == 1)
482                        {
483                        $i_charge=$item->get_used_charge_size();
484                        }
485                    else
486                        {
487                        $i_charge=0;
488                        }
489
490                    $fitting_array[$i_location][]=array
491                        (
492                        'Name'       => $i_name,
493                        'Icon'       => $item->getIcon(32),
494                        'itemID'     => $i_id,
495                        'groupID'    => $item->get_group_id(),
496                        'chargeSize' => $i_charge
497                        );
498                    }
499                }
500            }
501        else if (($destroyed->getLocationID() == 5))
502            {
503            for ($count=0; $count < $i_qty; $count++)
504                {
505                $fitting_array[$i_location][]=array
506                    (
507                    'Name'   => $i_name,
508                    'Icon'   => $item->getIcon(32),
509                    'itemID' => $i_id
510                    );
511                }
512            }
513        //fitting thing end
514        }
515    }
516
517if (count($kill->droppeditems_) > 0)
518    {
519    $drop_array=array();
520
521    foreach ($kill->droppeditems_ as $dropped)
522        {
523        $item = $dropped->getItem();
524        $i_qty=$dropped->getQuantity();
525
526        if (config::get('item_values'))
527            {
528            $value=$dropped->getValue();
529            $dropvalue+=$value * $i_qty;
530            $formatted=$dropped->getFormattedValue();
531            }
532
533        $i_name     =$item->getName();
534        $i_location =$dropped->getLocationID();
535        $i_id       =$item->getID();
536        $i_usedgroup=$item->get_used_launcher_group();
537
538        $drop_array[$i_location][]=array
539            (
540            'Icon'        => $item->getIcon(32),
541            'Name'        => $i_name,
542            'Quantity'    => $i_qty,
543            'Value'       => $formatted,
544            'single_unit' => $value,
545            'itemID'      => $i_id,
546            'slotID'      => $i_location
547            );
548
549        //Fitting -KE, add dropped items to the list
550        if (($i_location != 4) && ($i_location != 6))
551            {
552            if (($i_usedgroup != 0))
553                {
554                if ($i_location == 1)
555                    {
556                    $i_ammo=$item->get_ammo_size($i_name);
557
558                    if ($i_usedgroup == 481)
559                        {
560                        $i_ammo=0;
561                        }
562                    }
563                else
564                    {
565                    $i_ammo=0;
566                    }
567
568                $ammo_array[$i_location][]=array
569                    (
570                    'Name'        => $i_name,
571                    'Icon'        => $item->getIcon(24),
572                    'itemID'      => $i_id,
573                    'usedgroupID' => $i_usedgroup,
574                    'size'        => $i_ammo
575                    );
576                }
577            else
578                {
579                for ($count=0; $count < $i_qty; $count++)
580                    {
581                    if ($i_location == 1)
582                        {
583                        $i_charge=$item->get_used_charge_size();
584                        }
585                    else
586                        {
587                        $i_charge=0;
588                        }
589
590                    $fitting_array[$i_location][]=array
591                        (
592                        'Name'       => $i_name,
593                        'Icon'       => $item->getIcon(32),
594                        'itemID'     => $i_id,
595                        'groupID'    => $item->get_group_id(),
596                        'chargeSize' => $i_charge
597                        );
598                    }
599                }
600            }
601        //fitting thing end
602
603        }
604    }
605
606//Fitting - KE, sort the fitted items into groupID order, so that several of the same item apear next to each other.
607if (is_array($fitting_array[1]))
608    {
609    foreach ($fitting_array[1] as $array_rowh)
610        {
611        $sort_by_nameh["groupID"][]=$array_rowh["groupID"];
612        }
613
614    array_multisort($sort_by_nameh["groupID"], SORT_ASC, $fitting_array[1]);
615    }
616
617if (is_array($fitting_array[2]))
618    {
619    foreach ($fitting_array[2] as $array_rowm)
620        {
621        $sort_by_namem["groupID"][]=$array_rowm["groupID"];
622        }
623
624    array_multisort($sort_by_namem["groupID"], SORT_ASC, $fitting_array[2]);
625    }
626
627if (is_array($fitting_array[3]))
628    {
629    foreach ($fitting_array[3] as $array_rowl)
630        {
631        $sort_by_namel["groupID"][]=$array_rowl["Name"];
632        }
633
634    array_multisort($sort_by_namel["groupID"], SORT_ASC, $fitting_array[3]);
635    }
636
637if (is_array($fitting_array[5]))
638    {
639    foreach ($fitting_array[5] as $array_rowr)
640        {
641        $sort_by_namer["Name"][]=$array_rowr["Name"];
642        }
643
644    array_multisort($sort_by_namer["Name"], SORT_ASC, $fitting_array[5]);
645    }
646
647if (is_array($fitting_array[7]))
648    {
649    foreach ($fitting_array[7] as $array_rowr)
650        {
651        $sort_by_namer["groupID"][]=$array_rowr["groupID"];
652        }
653
654    array_multisort($sort_by_namer["groupID"], SORT_ASC, $fitting_array[7]);
655    }
656
657//Fitting - KE, sort the fitted items into name order, so that several of the same item apear next to each other. -end
658
659$length=count($ammo_array[1]);
660
661$temp=array();
662
663if (is_array($fitting_array[1]))
664    {
665    $hiammo=array();
666
667    foreach ($fitting_array[1] as $highfit)
668        {
669        $group = $highfit["groupID"];
670        $size  =$highfit["chargeSize"];
671
672        if ($group
673            == 483                          // Modulated Deep Core Miner II, Modulated Strip Miner II and Modulated Deep Core Strip Miner II
674        || $group == 53                     // Laser Turrets
675        || $group == 55                     // Projectile Turrets
676        || $group == 74                     // Hybrid Turrets
677        || ($group >= 506 && $group <= 511) // Some Missile Lauchers
678        || $group == 481                    // Probe Launchers
679        || $group == 899                    // Warp Disruption Field Generator I
680        || $group == 771                    // Heavy Assault Missile Launchers
681        || $group == 589                    // Interdiction Sphere Lauchers
682        || $group == 524                    // Citadel Torpedo Launchers
683        )
684            {
685            $found=0;
686
687            if ($group == 511)
688                {
689                $group=509;
690                } // Assault Missile Lauchers uses same ammo as Standard Missile Lauchers
691
692            if (is_array($ammo_array[1]))
693                {
694                $i=0;
695
696                while (!($found) && $i < $length)
697                    {
698                    $temp = array_shift($ammo_array[1]);
699
700                    if (($temp["usedgroupID"] == $group) && ($temp["size"] == $size))
701                        {
702                        $hiammo[]=array
703                            (
704                            'show' => $smarty->fetch(get_tpl('ammo')),
705                            'type' => $temp["Icon"]
706                            );
707
708                        $found=1;
709                        }
710
711                    array_push($ammo_array[1], $temp);
712                    $i++;
713                    }
714                }
715
716            if (!($found))
717                {
718                $hiammo[]=array
719                    (
720                    'show' => $smarty->fetch(get_tpl('ammo')),
721                    'type' => $smarty->fetch(get_tpl('noicon'))
722                    );
723                }
724            }
725        else
726            {
727            $hiammo[]=array
728                (
729                'show' => $smarty->fetch(get_tpl('blank')),
730                'type' => $smarty->fetch(get_tpl('blank'))
731                );
732            }
733        }
734    }
735
736$length=count($ammo_array[2]);
737
738if (is_array($fitting_array[2]))
739    {
740    $midammo=array();
741
742    foreach ($fitting_array[2] as $midfit)
743        {
744        $group = $midfit["groupID"];
745
746        if ($group == 76 // Capacitor Boosters
747        || $group == 208 // Remote Sensor Dampeners
748        || $group == 212 // Sensor Boosters
749        || $group == 291 // Tracking Disruptors
750        || $group == 213 // Tracking Computers
751        || $group == 209 // Tracking Links
752        || $group == 290 // Remote Sensor Boosters
753        )
754            {
755            $found=0;
756
757            if (is_array($ammo_array[2]))
758                {
759                $i=0;
760
761                while (!($found) && $i < $length)
762                    {
763                    $temp = array_shift($ammo_array[2]);
764
765                    if ($temp["usedgroupID"] == $group)
766                        {
767                        $midammo[]=array
768                            (
769                            'show' => $smarty->fetch(get_tpl('ammo')),
770                            'type' => $temp["Icon"]
771                            );
772
773                        $found=1;
774                        }
775
776                    array_push($ammo_array[2], $temp);
777                    $i++;
778                    }
779                }
780
781            if (!($found))
782                {
783                $midammo[]=array
784                    (
785                    'show' => $smarty->fetch(get_tpl('ammo')),
786                    'type' => $smarty->fetch(get_tpl('noicon'))
787                    );
788                }
789            }
790        else
791            {
792            $midammo[]=array
793                (
794                'show' => $smarty->fetch(get_tpl('blank')),
795                'type' => $smarty->fetch(get_tpl('blank'))
796                );
797            }
798        }
799    }
800
801if ($TotalValue >= 0)
802    {
803    $Formatted=number_format($TotalValue, 2);
804    }
805
806// Get Ship Value
807$ShipValue=$ship->getPrice();
808
809if (config::get('kd_droptototal'))
810    {
811    $TotalValue+=$dropvalue;
812    }
813
814$TotalLoss=number_format($TotalValue + $ShipValue, 2);
815$ShipValue=number_format($ShipValue, 2);
816$dropvalue=number_format($dropvalue, 2);
817
818$smarty->assign_by_ref('destroyed', $dest_array);
819$smarty->assign_by_ref('dropped', $drop_array);
820$smarty->assign_by_ref('slots', $slot_array);
821$smarty->assign_by_ref('fitting_high', $fitting_array[1]);
822$smarty->assign_by_ref('fitting_med', $fitting_array[2]);
823$smarty->assign_by_ref('fitting_low', $fitting_array[3]);
824$smarty->assign_by_ref('fitting_rig', $fitting_array[5]);
825$smarty->assign_by_ref('fitting_sub', $fitting_array[7]);
826$smarty->assign_by_ref('fitting_ammo_high', $hiammo);
827$smarty->assign_by_ref('fitting_ammo_mid', $midammo);
828$smarty->assign('ItemValue', $Formatted);
829$smarty->assign('DropValue', $dropvalue);
830$smarty->assign('ShipValue', $ShipValue);
831$smarty->assign('TotalLoss', $TotalLoss);
832
833$hicount =count($fitting_array[1]);
834$medcount=count($fitting_array[2]);
835$lowcount=count($fitting_array[3]);
836
837$smarty->assign('hic', $hicount);
838$smarty->assign('medc', $medcount);
839$smarty->assign('lowc', $lowcount);
840
841$menubox=new Box("Menu");
842$menubox->setIcon("menu-item.gif");
843$menubox->addOption("caption", "View");
844$menubox->addOption("link",
845                    "Killmail",
846                    "javascript:sndReq('index.php?a=kill_mail&amp;kll_id=" . $kill->getID()
847                        . "');ReverseContentDisplay('popup')");
848
849if (config::get('apocfitting_showeft')) {
850$menubox->addOption("link",
851                    "EFT Fitting",
852                    "javascript:sndReq('index.php?a=eft_fitting&amp;kll_id=" . $kill->getID()
853                        . "');ReverseContentDisplay('popup')");
854}
855
856if (config::get('apocfitting_showeft2eve')) {
857$menubox->addOption("link", "EFT To EVE", "javascript:sndReq('index.php?a=convertinkilldetail');ReverseContentDisplay('popup')");
858}
859
860if ($kill->relatedKillCount() > 1 || $kill->relatedLossCount() > 1 ||
861        ((ALLIANCE_ID || CORP_ID || PILOT_ID) && $kill->relatedKillCount() + $kill->relatedLossCount() > 1))
862{
863        $menubox->addOption("link", "Related kills (" . $kill->relatedKillCount() . "/" . $kill->relatedLossCount() . ")",
864                                        "?a=kill_related&amp;kll_id=" . $kill->getID());
865}
866
867if ($page->isAdmin())
868    {
869    $menubox->addOption("caption", "Admin");
870    $menubox->addOption("link",
871                        "Delete",
872                        "javascript:openWindow('?a=admin_kill_delete&amp;kll_id=" . $kill->getID()
873                            . "', null, 420, 300, '' );");
874
875    if (isset($_GET['view']) && $_GET['view'] == 'FixSlot')
876        {
877        $menubox->addOption("link", "Adjust Values", "?a=kill_detail&amp;kll_id=" . $kill->getID() . "");
878        }
879    else
880        {
881        $menubox->addOption("link", "Fix Slots", "?a=kill_detail&amp;kll_id=" . $kill->getID() . "&amp;view=FixSlot");
882        }
883    }
884
885$page->addContext($menubox->generate());
886
887if (config::get('kill_points'))
888    {
889    $scorebox=new Box("Points");
890    $scorebox->addOption("points", $kill->getKillPoints());
891    $page->addContext($scorebox->generate());
892    }
893
894// Final Blow/Top Damage Dealer - Begin (Ben Thomas - 17/05/09)
895if ($showbox) {
896$topdamage = $involved;
897
898class FBlowBox
899{
900
901    function generate()
902    {
903        global $smarty;
904        return $smarty->fetch('../mods/apoc_fitting/damage_box.tpl');
905    }
906}
907
908function multi_sort(&$array, $key) {
909    usort($array,create_function('$a,$b','if ($a["'.$key.'"] == $b["'.$key.'"]) return 0;' .'return ($a["'.$key.'"] > $b["'.$key.'"]) ? -1 : 1;'));
910}
911
912multi_sort($topdamage,"damageDone");
913$topdamage = array_slice($topdamage, 0, 1);
914$smarty->assign('topdamage', $topdamage);
915
916$finalblow = new FBlowBox();
917$page->addContext($finalblow->generate());
918}
919// Final Blow/Top Damage Dealer - End
920
921//Admin is able to see classsified systems
922if ((!$kill->isClassified()) || ($page->isAdmin()))
923    {
924        if (!$sidemap) {
925            $mapbox=new Box("Map");
926            $mapbox->addOption("img", "?a=mapview&amp;sys_id=" . $system->getID() . "&amp;mode=map&amp;size=145");
927            $mapbox->addOption("img", "?a=mapview&amp;sys_id=" . $system->getID() . "&amp;mode=region&amp;size=145");
928            $mapbox->addOption("img", "?a=mapview&amp;sys_id=" . $system->getID() . "&amp;mode=cons&amp;size=145");
929            $page->addContext($mapbox->generate());
930        }
931    }
932
933$html.=$smarty->fetch('../mods/apoc_fitting/kill_detail.tpl');
934
935$html.='<br/><hr><!-- <div style="font-size: 10px;"><b>Based on Apoc Fitting v2.0</a> (2009 - Ben Thomas</a>)</div> -->';
936
937$page->setContent($html);
938$page->generate();
939?>
Note: See TracBrowser for help on using the browser.