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

Revision 355, 9.7 KB (checked in by beans, 13 years ago)

* Added blueprint icons to the img folder and to template.
* Autoupgrade updated, updates blueprint info. Go to admin->Database to run it.
Thanks to EDG for these fixes

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)
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        // cat 9 are blueprints
42        elseif ($this->row_['itt_cat'] == 9)
43        {
44                $img = IMG_URL.'/blueprints/'.$size.'_'.$size.'/'.$this->row_['itm_externalid'].'.png';
45        } 
46        else
47        {
48            // fix for new db structure, just make sure old clients dont break
49            if (!strstr($this->row_['itm_icon'], 'icon'))
50            {
51                $this->row_['itm_icon'] = 'icon'.$this->row_['itm_icon'];
52            }
53            $img = IMG_URL.'/items/'.$size.'_'.$size.'/'.$this->row_['itm_icon'].'.png';
54        }
55        if ($size == 24)
56        {
57                $show_style .= '_'.config::get('fp_ammostyle');
58                $t_s = config::get('fp_ttag');
59                $f_s = config::get('fp_ftag');
60                $d_s = 0;
61                $o_s = 0;
62        } 
63        elseif ($size == 48)
64        {
65                $show_style .= '_'.config::get('fp_highstyle');
66                $t_s = config::get('fp_ttag');
67                $f_s = config::get('fp_ftag');
68                $d_s = config::get('fp_dtag');
69                $o_s = config::get('fp_otag');
70        } 
71        else
72        {
73                $show_style = "";
74                $t_s = 1;
75                $f_s = config::get('kd_ftag');
76                $d_s = config::get('kd_dtag');
77                $o_s = config::get('kd_otag');
78       
79        }
80        $it_name = $this->getName();
81        if (($this->row_['itm_techlevel'] == 5) && $t_s) // is a T2?
82        {
83            $icon .= IMG_URL.'/items/'.$size.'_'.$size.'/t2'.$show_style.'.png';
84        }
85        elseif (($this->row_['itm_techlevel'] > 5) && ($this->row_['itm_techlevel'] < 10) && $f_s) // is a faction item?
86        {
87            $icon .= IMG_URL.'/items/'.$size.'_'.$size.'/f'.$show_style.'.png';
88        }
89        elseif (($this->row_['itm_techlevel'] > 10) && strstr($it_name,"Modified") && $o_s) // or it's an officer?
90        {
91                $icon .= IMG_URL.'/items/'.$size.'_'.$size.'/o'.$show_style.'.png';
92        }
93        elseif (($this->row_['itm_techlevel'] > 10) && $d_s && !(strstr($it_name,"Modified"))) // or it's just a deadspace item.
94        {
95                $icon .= IMG_URL.'/items/'.$size.'_'.$size.'/d'.$show_style.'.png';
96        }
97        elseif ($f_s 
98                && (
99                strstr($it_name,"Blood ")
100                || strstr($it_name,"Sansha")
101                || strstr($it_name,"Arch")
102                || strstr($it_name,"Domination")
103                || strstr($it_name,"Republic")
104                || strstr($it_name,"Navy")
105                || strstr($it_name,"Guardian")
106                || strstr($it_name,"Guristas")
107                || strstr($it_name,"Shadow")
108                )
109                ) // finally if it's a faction should have its prefix
110        {
111                $icon = IMG_URL.'/items/'.$size.'_'.$size.'/f'.$show_style.'.png';
112        }
113        else // but maybe it was only a T1 item :P
114        {
115            $icon = IMG_URL.'/items/'.$size.'_'.$size.'/blank.gif';
116        }
117
118        if (($size == 48) && ($show_style == '_backglowing'))
119        {
120                $temp = $img;
121                $img = $icon;
122                $icon = $temp;
123        }
124
125        $smarty->assign('img', $img);
126        $smarty->assign('icon', $icon);
127        $smarty->assign('name', $it_name);
128        return $smarty->fetch(get_tpl('icon'.$size));
129    }
130
131    function getSlot()
132    {
133        $this->execQuery();
134       
135        // if item has no slot get the slot from parent item
136        if ($this->row_['itt_slot'] == 0)
137        {
138            $qry = new DBQuery();
139            $query = "select itt_slot from kb3_item_types
140                        inner join kb3_dgmtypeattributes d
141                        where itt_id = d.value
142                        and d.typeID = ".$this->row_['typeID']."
143                        and d.attributeID in (137,602);";
144            $qry->execute($query);
145            $row = $qry->getRow();
146           
147                if (!$row['itt_slot'])
148                        return 0;
149                       
150            return $row['itt_slot'];
151        } 
152        return $this->row_['itt_slot'];
153    }
154   
155    function execQuery()
156    {
157        if (!isset($this->qry_))
158        {
159            $this->qry_ = new DBQuery();
160        }
161
162        if (!$this->qry_->executed_)
163        {
164            if (!$this->id_)
165            {
166                return false;
167            }
168            $this->sql_ = "select *
169                           from kb3_items
170                           left join kb3_item_types on itm_type = itt_id
171                               where itm_id = '".$this->id_."'";
172
173            if (DB_USE_CCP)
174            {
175                    // new
176                $this->sql_ = "select inv.*, kb3_item_types.*, dga.value as techlevel, itp.price
177                               from kb3_invtypes inv
178                               left join kb3_dgmtypeattributes dga on dga.typeID=inv.typeID and dga.attributeID=633
179                               left join kb3_item_price itp on itp.typeID=inv.typeID
180                               left join kb3_item_types on groupID=itt_id
181                                   where inv.typeID = '".$this->id_."'";
182            }
183            $this->qry_->execute($this->sql_);
184            $this->row_ = $this->qry_->getRow();
185            if (DB_USE_CCP)
186            {
187                $this->row_['itm_icon'] = $this->row_['icon'];
188                $this->row_['itm_techlevel'] = $this->row_['techlevel'];
189                $this->row_['itm_externalid'] = $this->row_['typeID'];
190                $this->row_['itm_value'] = $this->row_['price'];
191            }
192        }
193    }
194
195    function lookup($name)
196    {
197        $name = trim($name);
198        $qry = new DBQuery();
199        $query = "select * from kb3_items itm
200                        where itm_name = '".slashfix($name)."'";
201        if (DB_USE_CCP)
202        {
203            $query = "select *,typeID as itm_id from kb3_invtypes itm
204                        where typeName = '".slashfix($name)."'";
205        }
206        $qry->execute($query);
207        $row = $qry->getRow();
208        if (!isset($row['itm_id']))
209        {
210            if (config::get('adapt_items') && DB_USE_CCP !== true)
211            {
212                // if the item is a tec2 we likely have the tec1
213                if (substr($name, -2, 2) == 'II')
214                {
215                    $qry->execute("select * from kb3_items itm
216                                    where itm_name = '".slashfix(substr($name,0,-1))."'");
217                    $row = $qry->getRow();
218                    if (!$row['itm_type'])
219                    {
220                        return false;
221                    }
222                    $qry->execute("INSERT INTO kb3_items (itm_name,itm_volume,itm_type,itm_externalid,itm_techlevel,itm_icon)
223                                    VALUES ('".slashfix($name)."','".$row['itm_volume']."','".$row['itm_type']."','".$row['itm_externalid']."','2','".$row['itm_icon']."')");
224                }
225                else
226                {
227                    // no idea what this is, insert as 'Temp'
228                    $qry->execute("INSERT INTO kb3_items (itm_name,itm_type)
229                                    VALUES ('".slashfix($name)."','721')");
230                }
231                $row['itm_id'] = $qry->getInsertID();
232            }
233            else
234            {
235                // that item doesnt exist or is misspelled
236                return false;
237            }
238        }
239        $this->id_ = $row['itm_id'];
240    }
241 
242   
243    function get_item_id($name)
244    {
245        $qry = new DBQuery();
246        $query = "select *
247                        from kb3_items
248                        where itm_name = '".slashfix($name)."'";
249        if (DB_USE_CCP)
250        {
251            $query = "select *,typeID as itm_id
252                        from kb3_items
253                        where typeName = '".slashfix($name)."'";
254        }
255        $qry->execute($query);
256
257        $row = $qry->getRow();
258        if ($row['itm_id']) return $row['itm_id'];
259    }
260   
261    function get_used_launcher_group($name)
262    {
263             $qry  = new DBQuery();
264             // I dont think CCP will change this attribute in near future ;-)
265             $query = "SELECT value
266                     FROM kb3_dgmtypeattributes d
267                     INNER JOIN kb3_invtypes i ON i.typeID = d.typeID
268                     WHERE i.typeName = '".slashfix($name)."' AND d.attributeID IN (137,602);";
269             $qry->execute($query);
270             $row = $qry->getRow();
271             return $row['value'];
272    }
273
274    function get_used_charge_size($name)
275    {
276             $qry  = new DBQuery();
277             // I dont think CCP will change this attribute in near future ;-)
278             $query = "SELECT value
279                     FROM kb3_dgmtypeattributes d
280                     INNER JOIN kb3_invtypes i ON i.typeID = d.typeID
281                     WHERE i.typeName = '".slashfix($name)."' AND d.attributeID IN (128);";
282             $qry->execute($query);
283             $row = $qry->getRow();
284             return $row['value'];
285    }
286
287    function get_ammo_size($name)
288    {
289        $temp = substr($name, strlen($name) - 2, 2);
290        if (strstr($name,'Mining'))
291        {
292                $a_size = 1;
293        }
294        elseif ($temp == 'XL')
295        {
296                $a_size = 4;
297        }
298        elseif ($temp == ' L')
299        {
300                $a_size = 3;
301        }
302        elseif ($temp == ' M')
303        {
304                $a_size = 2;
305        }
306        elseif ($temp == ' S')
307        {
308                $a_size = 1;
309        }
310        else
311        {
312                $a_size = 0;
313
314        }
315        return $a_size;
316    }   
317   
318        function get_group_id($name)
319    {
320        $qry = new DBQuery();
321        $query = "select groupID
322                        from kb3_invtypes
323                        where typeName = '".slashfix($name)."'";
324        $qry->execute($query);
325
326        $row = $qry->getRow();
327        if ($row['groupID']) return $row['groupID'];
328    }
329}
330?>
Note: See TracBrowser for help on using the browser.