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

Revision 254, 3.6 KB (checked in by exi, 15 years ago)

Merging 242:253 branch into dev

Line 
1<?php
2require_once('class.corp.php');
3require_once('class.item.php');
4
5class Pilot
6{
7    function Pilot($id = 0)
8    {
9        $this->id_ = intval($id);
10        $this->qry_ = new DBQuery();
11    }
12
13    function getID()
14    {
15        return $this->id_;
16    }
17
18    function getName()
19    {
20        $this->execQuery();
21        $pos = strpos($this->row_['plt_name'], "#");
22        if ($pos === false)
23        {
24            return $this->row_['plt_name'];
25        }
26        else
27        {
28            $name = explode("#", $this->row_['plt_name']);
29            $item = new Item($name[2]);
30            return $item->getName();
31        }
32    }
33
34    function getPortraitURL($size = 64)
35    {
36        $this->execQuery();
37        return '?a=thumb&amp;id='.$this->row_['plt_externalid'].'&amp;size='.$size;
38    }
39
40    function execQuery()
41    {
42        if (!$this->qry_->executed_)
43        {
44            $this->sql_ = 'select * from kb3_pilots plt, kb3_corps crp, kb3_alliances ali
45                               where crp.crp_id = plt.plt_crp_id
46                               and ali.all_id = crp.crp_all_id
47                                   and plt.plt_id = '.$this->id_;
48            $this->qry_->execute($this->sql_) or die($this->qry_->getErrorMsg());
49            $this->row_ = $this->qry_->getRow();
50            if (!$this->row_)
51                $this->valid_ = false;
52            else
53                $this->valid_ = true;
54        }
55    }
56
57    function getCorp()
58    {
59        $this->execQuery();
60        return new Corporation($this->row_['plt_crp_id']);
61    }
62
63    function exists()
64    {
65        $this->execQuery();
66        return $this->valid_;
67    }
68
69    function add($name, $corp, $timestamp)
70    {
71        $qry = new DBQuery();
72        $qry->execute("select *
73                        from kb3_pilots
74                       where plt_name = '".slashfix($name)."'");
75
76        if ($qry->recordCount() == 0)
77        {
78            $qry->execute("insert into kb3_pilots values ( null,
79                                                        '".slashfix($name)."',
80                                                        ".$corp->getID().",
81                                                        0, 0, 0,
82                                                        date_format( '".$timestamp."', '%Y.%m.%d %H:%i:%s'))");
83            $this->id_ = $qry->getInsertID();
84        }
85        else
86        {
87            $row = $qry->getRow();
88            $this->id_ = $row['plt_id'];
89            if ($this->isUpdatable($timestamp) && $row['plt_crp_id'] != $corp->getID())
90            {
91                $qry->execute("update kb3_pilots
92                             set plt_crp_id = ".$corp->getID().",
93                                 plt_updated = date_format( '".$timestamp."', '%Y.%m.%d %H:%i:%s') where plt_id = ".$this->id_);
94            }
95        }
96
97        return $this->id_;
98    }
99
100    function isUpdatable($timestamp)
101    {
102        $qry = new DBQuery();
103        $qry->execute("select plt_id
104                        from kb3_pilots
105                       where plt_id = ".$this->id_."
106                         and ( plt_updated < date_format( '".$timestamp."', '%Y.%m.%d %H:%i')
107                               or plt_updated is null )");
108
109        return $qry->recordCount() == 1;
110    }
111
112    function setCharacterID($id)
113    {
114        $id = intval($id);
115        if (!$id)
116        {
117            return false;
118        }
119        $qry = new DBQuery();
120        $qry->execute("update kb3_pilots set plt_externalid = ".$id."
121                       where plt_id = ".$this->id_);
122    }
123}
124?>
Note: See TracBrowser for help on using the browser.