root/dev/common/includes/class.pilot.php @ 396

Revision 396, 5.2 KB (checked in by kovell, 12 years ago)

Fixes: HTML, killlists with multiple involved, thumbnail creation delays, mods using short php tags corrected (Tribalize) . Autoupgrade adds missing indexes on upgraded boards. page cache updating algorithm improved, feed log information cleaned up (Oleg)

Line 
1<?php
2require_once('class.corp.php');
3require_once('class.item.php');
4require_once('class.thumb.php');
5
6class Pilot
7{
8    function Pilot($id = 0, $externalIDFlag = false)
9    {
10        if($externalIDFlag) $this->externalid_=intval($id);
11        else $this->id_ = intval($id);
12    }
13
14    function getID()
15    {
16            if($this->id_) return $this->id_;
17            elseif($this->externalid_)
18            {
19                    $this->execQuery();
20                    return $this->id_;
21            }
22            else return 0;
23    }
24
25    function getExternalID()
26    {
27                if($this->externalid_) return $this->externalid_;
28                elseif($this->id_)
29                {
30                        $this->execQuery();
31                        if($this->externalid_) return $this->externalid_;
32                        require_once("class.api.php");
33                        $api = new Api();
34                        $id = $api->getCharId($this->getName());
35                        if ($id > 0) $this->setCharacterID($id);
36                        return $this->externalid_;
37                }
38                else return 0;
39    }
40
41    function getName()
42    {
43        if(!$this->name_) $this->execQuery();
44        $pos = strpos($this->name_, "#");
45        if ($pos === false)
46        {
47            return $this->name_;
48        }
49        else
50        {
51            $name = explode("#", $this->name_);
52            $item = new Item($name[2]);
53            return $item->getName();
54        }
55    }
56
57    function getPortraitURL($size = 64)
58    {
59                if(!$this->externalid_) $this->execQuery();
60        if (!$this->externalid_)
61        {
62                return '?a=thumb&amp;id='.$this->id_.'&amp;size='.$size.'&amp;int=1';
63        }
64        else
65        {
66                        if( file_exists('cache/portraits/'.$this->externalid_.'_'.$size.'.jpg'))
67                                return 'cache/portraits/'.$this->externalid_.'_'.$size.'.jpg';
68                        else return '?a=thumb&amp;id='.$this->externalid_.'&amp;size='.$size;
69        }
70    }   
71 
72    function execQuery()
73    {
74        if (!$this->qry_)
75        {
76                        if(!$this->externalid_ && !$this->id_)
77                        {
78                                        $this->valid_ = false;
79                                        return;
80                        }
81            $this->qry_ = new DBQuery();
82            $this->sql_ = 'select * from kb3_pilots plt, kb3_corps crp, kb3_alliances ali
83                               where crp.crp_id = plt.plt_crp_id
84                               and ali.all_id = crp.crp_all_id ';
85            if($this->externalid_) $this->sql_ .= 'and plt.plt_externalid = '.$this->externalid_;
86            else $this->sql_ .= 'and plt.plt_id = '.$this->id_;
87            $this->qry_->execute($this->sql_) or die($this->qry_->getErrorMsg());
88            //$this->row_ = $this->qry_->getRow();
89            $row = $this->qry_->getRow();
90            if (!$row)
91                $this->valid_ = false;
92            else
93            {
94                $this->valid_ = true;
95                $this->id_ = $row['plt_id'];
96                $this->name_ = $row['plt_name'];
97                $this->corp_ = $row['plt_crp_id'];
98                $this->externalid_ = intval($row['plt_externalid']);
99                               
100            }
101        }
102    }
103
104    function getCorp()
105    {
106        if(!$this->corp_) $this->execQuery();
107        return new Corporation($this->corp_);
108    }
109
110    function exists()
111    {
112        $this->execQuery();
113        return $this->valid_;
114    }
115
116    function add($name, $corp, $timestamp, $externalID = '0')
117    {
118        $qry = new DBQuery();
119        $qry->execute("select *
120                        from kb3_pilots
121                       where plt_name = '".slashfix($name)."'");
122
123        if ($qry->recordCount() == 0)
124        {
125            $qry->execute("insert into kb3_pilots (plt_id, plt_name, plt_crp_id, plt_externalid, plt_updated) values ( null,
126                                                        '".slashfix($name)."',
127                                                        ".$corp->getID().",
128                                                        ".$externalID.",
129                                                        date_format( '".$timestamp."', '%Y.%m.%d %H:%i:%s'))");
130            $this->id_ = $qry->getInsertID();
131        }
132        else
133        {
134            $row = $qry->getRow();
135            $this->id_ = $row['plt_id'];
136            if ($this->isUpdatable($timestamp) && $row['plt_crp_id'] != $corp->getID())
137            {
138                $qry->execute("update kb3_pilots
139                             set plt_crp_id = ".$corp->getID().",
140                                 plt_updated = date_format( '".$timestamp."', '%Y.%m.%d %H:%i:%s') where plt_id = ".$this->id_);
141            }
142            if (!$row['plt_externalid'] && $externalID) $this->setCharacterID($externalID);
143        }
144
145        return $this->id_;
146    }
147
148    function isUpdatable($timestamp)
149    {
150        $qry = new DBQuery();
151        $qry->execute("select plt_id
152                        from kb3_pilots
153                       where plt_id = ".$this->id_."
154                         and ( plt_updated < date_format( '".$timestamp."', '%Y.%m.%d %H:%i')
155                               or plt_updated is null )");
156
157        return $qry->recordCount() == 1;
158    }
159
160    function setCharacterID($externalID)
161    {
162        if (!intval($externalID))
163        {
164            return false;
165        }
166        $this->externalid_ = intval($externalID);
167        $qry = new DBQuery();
168        $qry->execute("update kb3_pilots set plt_externalid = ".$this->externalid_."
169                       where plt_id = ".$this->id_);
170    }
171}
172?>
Note: See TracBrowser for help on using the browser.