Changeset 379

Show
Ignore:
Timestamp:
06/21/09 12:05:57 (11 years ago)
Author:
kovell
Message:

Improved support for constructing multiple corp/pilot/etc objects. External ID functions added

Location:
dev/common/includes
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • dev/common/includes/class.alliance.php

    r376 r379  
    1111    { 
    1212        $this->id_ = $id; 
    13         $this->qry_ = new DBQuery(); 
    14  
    15         $this->sql_ = "select * from kb3_alliances where all_id = " . $this->id_; 
     13        $this->executed_ = false; 
    1614    } 
    1715 
     
    1917        function getExternalID() 
    2018        { 
    21                 if($this->row_['all_external_id']) return $this->row_['all_external_id']; 
    22                 else $this->execQuery(); 
    23                 return $this->row_['all_external_id']; 
     19                if(!$this->externalid_) $this->execQuery(); 
     20                return $this->externalid_; 
    2421        } 
    2522 
     
    3229    function getUnique() 
    3330    { 
    34         return preg_replace('/[^a-zA-Z0-9]/', '', $this->getName()); 
     31                if(!$this->name_) $this->execQuery(); 
     32        return preg_replace('/[^a-zA-Z0-9]/', '', $this->name_); 
    3533    } 
    3634    //! Return the alliance name. 
    3735    function getName() 
    3836    { 
    39         $this->execQuery(); 
    40         return $this->row_['all_name']; 
     37        if(!$this->name_) $this->execQuery(); 
     38        return $this->name_; 
    4139    } 
    4240    //! Fetch the alliance details from the database using the id given on construction. 
    4341    function execQuery() 
    4442    { 
    45         if (!$this->qry_->executed_) 
     43        if (!$this->executed_) 
    4644        { 
    47             $this->qry_->execute($this->sql_); 
    48             $this->row_ = $this->qry_->getRow(); 
     45                        $qry = new DBQuery(); 
     46            $qry->execute("select * from kb3_alliances where all_id = " . $this->id_); 
     47            $row = $qry->getRow(); 
     48                        $this->name_ = $row['all_name']; 
     49                        $this->externalid_ = intval($row['all_external_id']); 
     50                        $this->executed_ = true; 
    4951        } 
    5052    } 
     
    5456     * \param $name An alliance name for this object. 
    5557     */ 
    56     function add($name) 
     58    function add($name, $externalid = false) 
    5759    { 
    5860        $qry = new DBQuery(); 
     
    6163        if ($qry->recordCount() == 0) 
    6264        { 
    63             $qry->execute("insert into kb3_alliances (all_id,all_name) values (null,'".slashfix($name)."')"); 
     65                        if(intval($externalid)) 
     66                                $qry->execute("insert into kb3_alliances ". 
     67                                        "(all_id, all_name, all_external_id) values ". 
     68                                        "(null, '".slashfix($name)."', ".intval($externalid).")"); 
     69            $qry->execute("insert into kb3_alliances ". 
     70                                "(all_id, all_name) values ". 
     71                                "(null, '".slashfix($name)."')"); 
    6472            $this->id_ = $qry->getInsertID(); 
    6573        } 
     
    6876            $row = $qry->getRow(); 
    6977            $this->id_ = $row['all_id']; 
     78                        $this->name_ = slashfix($name); 
     79                        $this->externalid_ = intval($row['all_external_id']); 
    7080        } 
    7181    } 
     
    8090                        if($qry->execute("UPDATE kb3_alliances SET all_external_id = ".$externalid." where all_id = ".$this->id_)) 
    8191                        { 
    82                                 $this->row_['all_external_id'] = $externalid; 
     92                                $this->externalid_ = $externalid; 
    8393                                return true; 
    8494                        } 
  • dev/common/includes/class.corp.php

    r376 r379  
    1313    { 
    1414        $this->id_ = $id; 
    15         $this->qry_ = new DBQuery(); 
     15        $this->executed_ = false; 
    1616    } 
    1717    //! Return whether this corporation is an NPC corporation. 
     
    2222        { 
    2323            return true; 
    24         } 
     24                } 
    2525    } 
    2626 
     
    2828    function getUnique() 
    2929    { 
    30         return preg_replace('/[^a-z0-9]/', '', strtolower($this->getName())); 
     30                if(!$this->name_) $this->execQuery(); 
     31                return preg_replace('/[^a-z0-9]/', '', strtolower($this->getName())); 
    3132    } 
    3233    //! Return a URL for the icon of this corporation. 
     
    4344        function getExternalID() 
    4445        { 
     46                if($this->externalid_) return $this->externalid_; 
    4547        $this->execQuery(); 
    46                 if($this->row_['crp_external_id']) return $this->row_['crp_external_id']; 
     48                if($this->externalid_) return $this->externalid_; 
    4749 
    4850                $corpname = str_replace(" ", "%20", $this->getName() ); 
     
    5355                $myNames = $myID->getNameData(); 
    5456                if($this->setExternalID($myNames[0]['characterID'])) 
    55                         return $this->row_['crp_external_id']; 
     57                        return $this->externalid_; 
    5658                else return 0; 
    5759        } 
     
    6567    function getName() 
    6668    { 
    67         $this->execQuery(); 
    68         return $this->row_['crp_name']; 
     69                if(!$this->name_) $this->execQuery(); 
     70        return $this->name_; 
    6971    } 
    7072 
     
    7274    function getAlliance() 
    7375    { 
    74         $this->execQuery(); 
    75         return new Alliance($this->row_['crp_all_id']); 
     76                if(!$this->alliance_) $this->execQuery(); 
     77        return new Alliance($this->alliance_); 
    7678    } 
    7779    //! Lookup a corporation name and set this object to use the details found. 
     
    8789        $row = $qry->getRow(); 
    8890        if ($row['crp_id']) $this->id_ = $row['crp_id']; 
     91                $this->name = $row['crp_name']; 
     92                $this->externalid_ = intval($row['crp_external_id']); 
     93                $this->alliance_ = $row['crp_all_id']; 
    8994    } 
    9095    //! Search the database for the corporation details for this object. 
    9196    function execQuery() 
    9297    { 
    93         if (!$this->qry_->executed_) 
     98        if (!$this->executed_) 
    9499        { 
    95             $this->sql_ = "select * from kb3_corps 
    96                                    where crp_id = ".$this->id_; 
    97             $this->qry_->execute($this->sql_); 
    98             $this->row_ = $this->qry_->getRow(); 
     100            $qry = new DBQuery(); 
     101            $qry->execute("select * from kb3_corps 
     102                                   where crp_id = ".$this->id_); 
     103            $row = $qry->getRow(); 
     104                        $this->id_ = $row['crp_id']; 
     105                        $this->name_ = $row['crp_name']; 
     106                        $this->externalid_ = $row['crp_external_id']; 
     107                        $this->alliance_ = $row['crp_all_id']; 
    99108        } 
    100109    } 
     
    105114     * \param $alliance The alliance this corporation belongs to. 
    106115     * \param $timestamp The timestamp the corporation's details were updated. 
     116     * \param $externalid The external CCP ID for the alliance. 
    107117     */ 
    108     function add($name, $alliance, $timestamp) 
     118    function add($name, $alliance, $timestamp, $externalid = 0) 
    109119    { 
    110120        $qry = new DBQuery(); 
     
    114124        if ($qry->recordCount() == 0) 
    115125        { 
    116             $qry->execute("insert into kb3_corps (crp_id, crp_name, crp_all_id, crp_updated) values ( null,'".slashfix($name)."'," 
    117                            .$alliance->getID().",date_format('".$timestamp."','%Y.%m.%d %H:%i:%s'))"); 
     126                        if(intval($externalid)) $qry->execute("insert into kb3_corps ". 
     127                                "(crp_id, crp_name, crp_all_id, crp_external_id, crp_updated) ". 
     128                                "values ( null, '".slashfix($name)."',".$alliance->getID(). 
     129                                ", ".intval($externalid).", date_format('".$timestamp. 
     130                                "','%Y.%m.%d %H:%i:%s'))"); 
     131            else $qry->execute("insert into kb3_corps ". 
     132                                "(crp_id, crp_name, crp_all_id, crp_updated) ". 
     133                                "values ( null,'".slashfix($name)."',".$alliance->getID(). 
     134                                ",date_format('".$timestamp."','%Y.%m.%d %H:%i:%s'))"); 
    118135            $this->id_ = $qry->getInsertID(); 
    119136        } 
     
    122139            $row = $qry->getRow(); 
    123140            $this->id_ = $row['crp_id']; 
    124             if ($this->isUpdatable($timestamp) && $row['crp_all_id'] != $alliance->getID()) 
     141                        $this->name = $row['crp_name']; 
     142                        $this->externalid_ = $row['crp_external_id']; 
     143                        $this->alliance_ = $row['crp_all_id']; 
     144 
     145            if ($row['crp_all_id'] != $alliance->getID() && $this->isUpdatable($timestamp)) 
    125146            { 
    126                 $qry->execute('update kb3_corps 
    127                                    set crp_all_id = '.$alliance->getID().", 
    128                                            crp_updated = date_format( '".$timestamp."','%Y.%m.%d %H:%i:%s') 
    129                                            where crp_id = ".$this->id_); 
     147                                $sql = 'update kb3_corps 
     148                                   set crp_all_id = '.$alliance->getID().', '; 
     149                                if(intval(externalid)) 
     150                                        $sql .= 'crp_external_id = '.intval(externalid).', '; 
     151                                $sql .= "crp_updated = date_format( '". 
     152                                        $timestamp."','%Y.%m.%d %H:%i:%s') ". 
     153                                        "where crp_id = ".$this->id_; 
     154                $qry->execute($sql); 
     155                                $this->alliance_ = $alliance; 
    130156            } 
    131157        } 
     
    147173        return $qry->recordCount() == 1; 
    148174    } 
     175 
    149176        //! Set the CCP external ID for this corporation. 
    150177        function setExternalID($externalid) 
     
    157184                        if($qry->execute("UPDATE kb3_corps SET crp_external_id = ".$externalid." where crp_id = ".$this->id_)) 
    158185                        { 
    159                                 $this->row_['crp_external_id'] = $externalid; 
     186                                $this->externalid_ = $externalid; 
    160187                                return true; 
    161188                        } 
  • dev/common/includes/class.item.php

    r370 r379  
    1717    function getName() 
    1818    { 
    19         $this->execQuery(); 
     19        if(!$this->row_['typeName'])$this->execQuery(); 
    2020        return $this->row_['typeName'];   
    2121    } 
  • dev/common/includes/class.itemlist.php

    r370 r379  
    3838        if ($this->executed_ || (!count($this->itemarray_)&& !count($this->destroyedIDarray_) && !count($this->droppedIDarray_))) return; 
    3939        $sql = "select inv.icon as itm_icon, inv.typeID as itm_externalid, ". 
    40           "itp.price as itm_value, inv.*, kb3_item_types.*, dga.value as itm_techlevel, ". 
    41           "dc.value as usedcharge, dl.value as usedlauncher "; 
     40          "itp.price as itm_value, kb3_item_types.*, dga.value as itm_techlevel, ". 
     41          "dc.value as usedcharge, dl.value as usedlauncher, ". 
     42                  "inv.groupID, inv.typeName, inv.capacity, inv.raceID, inv.basePrice, inv.marketGroupID"; 
    4243        if(count($this->destroyedIDarray_)) $sql .= ", if(dl.attributeID IS NULL,sum(itd.itd_quantity),truncate(sum(itd.itd_quantity)/count(dl.attributeID),0)) as itd_quantity, ". 
    4344          "itd_itm_id, itd_itl_id, itl_location "; 
  • dev/common/includes/class.pilot.php

    r376 r379  
    88    function Pilot($id = 0, $externalIDFlag = false) 
    99    { 
    10         if($externalIDFlag) $this->externalID_=$id; 
     10        if($externalIDFlag) $this->externalid_=intval($id); 
    1111        else $this->id_ = intval($id); 
    1212    } 
     
    1515    { 
    1616            if($this->id_) return $this->id_; 
    17             elseif($this->externalID_) 
     17            elseif($this->externalid_) 
    1818            { 
    1919                    $this->execQuery(); 
     
    2525    function getExternalID() 
    2626    { 
    27                 if($this->externalID_) return $this->externalID_; 
     27                if($this->externalid_) return $this->externalid_; 
    2828                elseif($this->id_) 
    2929                { 
    3030                        $this->execQuery(); 
    31                         if($this->externalID_) return $this->externalID_; 
     31                        if($this->externalid_) return $this->externalid_; 
    3232                        require_once("class.api.php"); 
    3333                        $api = new Api(); 
    3434                        $id = $api->getCharId($this->getName()); 
    3535                        if ($id > 0) $this->setCharacterID($id); 
    36                         return $this->externalID_; 
     36                        return $this->externalid_; 
    3737                } 
    3838                else return 0; 
     
    4141    function getName() 
    4242    { 
    43         $this->execQuery(); 
    44         $pos = strpos($this->row_['plt_name'], "#"); 
     43        if(!$this->name_) $this->execQuery(); 
     44        $pos = strpos($this->name_, "#"); 
    4545        if ($pos === false) 
    4646        { 
    47             return $this->row_['plt_name']; 
     47            return $this->name_; 
    4848        } 
    4949        else 
    5050        { 
    51             $name = explode("#", $this->row_['plt_name']); 
     51            $name = explode("#", $this->name_); 
    5252            $item = new Item($name[2]); 
    5353            return $item->getName(); 
     
    5757    function getPortraitURL($size = 64) 
    5858    { 
    59                 $this->execQuery(); 
    60         //charID api readout - in work, feel free to test 
    61         if ($this->row_['plt_externalid'] == 0) 
     59                if(!$this->externalid_) $this->execQuery(); 
     60        if (!$this->externalid_) 
    6261        { 
    6362                require_once("class.api.php"); 
     
    6665                if ($id > 0) 
    6766                        $this->setCharacterID($id); 
    68                  
    6967                return '?a=thumb&id='.$id.'&size='.$size; 
    7068                         
     
    7270        else 
    7371        { 
    74             $thumb = new thumb($this->row_['plt_externalid'], $size,'pilot'); 
    75             if (!$thumb->isCached()) 
    76             { 
    77                 if (!$thumb->genCache()) 
    78                 { 
    79                     return 'img/portrait_0_'.$this->_size.'.jpg'; 
    80                 } 
    81             } 
    82             return "cache/portraits/".$this->row_['plt_externalid']."_".$size.".jpg"; 
     72                        if( file_exists('cache/portraits/'.$this->externalid_.'_'.$size.'.jpg')) 
     73                                return 'cache/portraits/'.$this->externalid_.'_'.$size.'.jpg'; 
     74                        else return '?a=thumb&id='.$this->externalid_.'&size='.$size; 
    8375        } 
    8476    }    
     
    8880        if (!$this->qry_) 
    8981        { 
    90                 if(!$this->externalID_ && !$this->id_) 
    91                 { 
    92                         $this->valid_ = false; 
    93                         return; 
    94                 } 
     82                        if(!$this->externalid_ && !$this->id_) 
     83                        { 
     84                                        $this->valid_ = false; 
     85                                        return; 
     86                        } 
    9587            $this->qry_ = new DBQuery(); 
    9688            $this->sql_ = 'select * from kb3_pilots plt, kb3_corps crp, kb3_alliances ali 
    9789                               where crp.crp_id = plt.plt_crp_id 
    9890                               and ali.all_id = crp.crp_all_id '; 
    99             if($this->externalID_) $this->sql_ .= 'and plt.plt_externalid = '.$this->externalID_; 
     91            if($this->externalid_) $this->sql_ .= 'and plt.plt_externalid = '.$this->externalid_; 
    10092            else $this->sql_ .= 'and plt.plt_id = '.$this->id_; 
    10193            $this->qry_->execute($this->sql_) or die($this->qry_->getErrorMsg()); 
    102             $this->row_ = $this->qry_->getRow(); 
    103             if (!$this->row_) 
     94            //$this->row_ = $this->qry_->getRow(); 
     95            $row = $this->qry_->getRow(); 
     96            if (!$row) 
    10497                $this->valid_ = false; 
    10598            else 
    10699            { 
    107100                $this->valid_ = true; 
    108                 $this->id_ = intval($this->row_['plt_id']); 
    109                 if($row['plt_externalid']) $this->externalID_ = intval($this->row_['plt_externalid']); 
     101                $this->id_ = $row['plt_id']; 
     102                $this->name_ = $row['plt_name']; 
     103                $this->corp_ = $row['plt_crp_id']; 
     104                $this->externalid_ = intval($row['plt_externalid']); 
     105                                 
    110106            } 
    111107        } 
     
    114110    function getCorp() 
    115111    { 
    116         $this->execQuery(); 
    117         return new Corporation($this->row_['plt_crp_id']); 
     112        if(!$this->corp_) $this->execQuery(); 
     113        return new Corporation($this->corp_); 
    118114    } 
    119115 
     
    174170            return false; 
    175171        } 
    176         $this->externalID_ = intval($externalID); 
     172        $this->externalid_ = intval($externalID); 
    177173        $qry = new DBQuery(); 
    178         $qry->execute("update kb3_pilots set plt_externalid = ".$this->externalID_." 
     174        $qry->execute("update kb3_pilots set plt_externalid = ".$this->externalid_." 
    179175                       where plt_id = ".$this->id_); 
    180176    }