root/dev/common/includes/class.item.php @ 301

Revision 301, 7.2 KB (checked in by ralle030583, 15 years ago)

FIX: Items without slotID used slot of partent items (attribute used_with..)<br>
FIX: Items witch has the attribbute used_with(launcher) arent shown in fitting image of fitting mod<br>
DEL: Settings of fitting mod, not needed anymore, if already set, you can delete it in the kb3_config

Line 
1<?php
2define('DGM_TECHLEVEL', 422);
3
4class Item
5{
6    function Item($id = 0)
7    {
8        $this->id_ = $id;
9    }
10
11    function getID()
12    {
13        return $this->id_;
14    }
15
16    function getName()
17    {
18        $this->execQuery();
19        if (DB_USE_CCP)
20        {
21            return $this->row_['typeName'];
22        }
23        return $this->row_['itm_name'];
24    }
25
26    function getIcon($size = 32)
27    {
28        $this->execQuery();
29        global $smarty;
30
31        // cat 18 are combat drones
32        if ($this->row_['itt_cat'] == 18)
33        {
34            $img = IMG_URL.'/drones/'.$size.'_'.$size.'/'.$this->row_['itm_externalid'].'.png';
35        }
36        // cat 6 are ships (destroyed in cargo)
37        elseif ($this->row_['itt_cat'] == 6)
38        {
39            $img = IMG_URL.'/ships/'.$size.'_'.$size.'/'.$this->row_['itm_externalid'].'.png';
40        }
41        else
42        {
43            // fix for new db structure, just make sure old clients dont break
44            if (!strstr($this->row_['itm_icon'], 'icon'))
45            {
46                $this->row_['itm_icon'] = 'icon'.$this->row_['itm_icon'];
47            }
48            $img = IMG_URL.'/items/'.$size.'_'.$size.'/'.$this->row_['itm_icon'].'.png';
49        }
50
51        if (substr($this->getName(), strlen($this->getName()) - 2, 2) == "II" || $this->row_['itm_techlevel'] == 2)
52        {
53            $icon .= IMG_URL.'/items/32_32/t2.gif';
54        }
55        else
56        {
57            $icon = IMG_URL.'/items/32_32/blank.gif';
58        }
59
60        $smarty->assign('img', $img);
61        $smarty->assign('icon', $icon);
62        $smarty->assign('name', $this->getName());
63        return $smarty->fetch(get_tpl('icon'));
64    }
65
66    function getSlot()
67    {
68        $this->execQuery();
69       
70        // if item has no slot get the slot from parent item
71        if ($this->row_['itt_slot'] == 0)
72        {
73            $qry = new DBQuery();
74            $query = "select itt_slot from kb3_item_types
75                        inner join kb3_dgmtypeattributes d
76                        where itt_id = d.value
77                        and d.typeID = ".$this->row_['typeID']."
78                        and d.attributeID in (137,602);";
79            $qry->execute($query);
80            $row = $qry->getRow();
81            return $row['itt_slot'];
82        } 
83        return $this->row_['itt_slot'];
84    }
85   
86    function execQuery()
87    {
88        if (!isset($this->qry_))
89        {
90            $this->qry_ = new DBQuery();
91        }
92
93        if (!$this->qry_->executed_)
94        {
95            if (!$this->id_)
96            {
97                return false;
98            }
99            $this->sql_ = "select *
100                           from kb3_items
101                           left join kb3_item_types on itm_type = itt_id
102                               where itm_id = '".$this->id_."'";
103
104            if (DB_USE_CCP)
105            {
106                    // new
107                $this->sql_ = "select inv.*, kb3_item_types.*, dga.value as techlevel, itp.price
108                               from kb3_invtypes inv
109                               left join kb3_dgmtypeattributes dga on dga.typeID=inv.typeID and dga.attributeID=".DGM_TECHLEVEL."
110                               left join kb3_item_price itp on itp.typeID=inv.typeID
111                               left join kb3_item_types on groupID=itt_id
112                                   where inv.typeID = '".$this->id_."'";
113            }
114            $this->qry_->execute($this->sql_);
115            $this->row_ = $this->qry_->getRow();
116            if (DB_USE_CCP)
117            {
118                $this->row_['itm_icon'] = $this->row_['icon'];
119                $this->row_['itm_techlevel'] = $this->row_['techlevel'];
120                $this->row_['itm_externalid'] = $this->row_['typeID'];
121                $this->row_['itm_value'] = $this->row_['price'];
122            }
123        }
124    }
125
126    function lookup($name)
127    {
128        $name = trim($name);
129        $qry = new DBQuery();
130        $query = "select * from kb3_items itm
131                        where itm_name = '".slashfix($name)."'";
132        if (DB_USE_CCP)
133        {
134            $query = "select *,typeID as itm_id from kb3_invtypes itm
135                        where typeName = '".slashfix($name)."'";
136        }
137        $qry->execute($query);
138        $row = $qry->getRow();
139        if (!isset($row['itm_id']))
140        {
141            if (config::get('adapt_items') && DB_USE_CCP !== true)
142            {
143                // if the item is a tec2 we likely have the tec1
144                if (substr($name, -2, 2) == 'II')
145                {
146                    $qry->execute("select * from kb3_items itm
147                                    where itm_name = '".slashfix(substr($name,0,-1))."'");
148                    $row = $qry->getRow();
149                    if (!$row['itm_type'])
150                    {
151                        return false;
152                    }
153                    $qry->execute("INSERT INTO kb3_items (itm_name,itm_volume,itm_type,itm_externalid,itm_techlevel,itm_icon)
154                                    VALUES ('".slashfix($name)."','".$row['itm_volume']."','".$row['itm_type']."','".$row['itm_externalid']."','2','".$row['itm_icon']."')");
155                }
156                else
157                {
158                    // no idea what this is, insert as 'Temp'
159                    $qry->execute("INSERT INTO kb3_items (itm_name,itm_type)
160                                    VALUES ('".slashfix($name)."','721')");
161                }
162                $row['itm_id'] = $qry->getInsertID();
163            }
164            else
165            {
166                // that item doesnt exist or is misspelled
167                return false;
168            }
169        }
170        $this->id_ = $row['itm_id'];
171    }
172 
173   
174    function get_item_id($name)
175    {
176        $qry = new DBQuery();
177        $query = "select *
178                        from kb3_items
179                        where itm_name = '".slashfix($name)."'";
180        if (DB_USE_CCP)
181        {
182            $query = "select *,typeID as itm_id
183                        from kb3_items
184                        where typeName = '".slashfix($name)."'";
185        }
186        $qry->execute($query);
187
188        $row = $qry->getRow();
189        if ($row['itm_id']) return $row['itm_id'];
190    }
191   
192    function get_used_launcher_group($name)
193    {
194             $qry  = new DBQuery();
195             // I dont think CCP will change this attribute in near future ;-)
196             $query = "SELECT value
197                     FROM kb3_dgmtypeattributes d
198                     INNER JOIN kb3_invtypes i ON i.typeID = d.typeID
199                     WHERE i.typeName = '".slashfix($name)."' AND d.attributeID IN (137,602);";
200             $qry->execute($query);
201             $row = $qry->getRow();
202             return $row['value'];
203    }   
204   
205        function get_group_id($name)
206    {
207        $qry = new DBQuery();
208        $query = "select groupID
209                        from kb3_invtypes
210                        where typeName = '".slashfix($name)."'";
211        $qry->execute($query);
212
213        $row = $qry->getRow();
214        if ($row['groupID']) return $row['groupID'];
215    }
216}
217?>
Note: See TracBrowser for help on using the browser.