Changeset 422

Show
Ignore:
Timestamp:
07/14/09 07:36:00 (11 years ago)
Author:
kovell
Message:

Fixes: Rank mod toplists correctly limit by plt/crp/all, install not incorrectly called automatically. Modifying the cost of a kill updates the summary tables.

Location:
dev
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • dev/common/includes/autoupgrade.php

    r417 r422  
    1616        if (CURRENT_DB_UPDATE < LASTEST_DB_UPDATE ){ 
    1717                // Check db is installed. 
    18                 if(config::get('cfg_kbhost')) header('Location: '.KB_HOST."/upgrade.php"); 
    19                 else 
     18                if(config::get('cfg_kbhost')) 
    2019                { 
    21                         $url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']; 
    22                         $url = substr($url, 0, strrpos($url,'/')+1)."install/"; 
    23                         header("Location: ".$url); 
     20                        header('Location: '.KB_HOST."/upgrade.php"); 
     21                        die; 
    2422                } 
    25                 die; 
    2623        } 
    2724} 
  • dev/common/includes/class.kill.php

    r419 r422  
    931931                } 
    932932                $value += $this->victimship_->getPrice(); 
     933                if($this->iskloss_) summaryCache::update($this, $value - $this->iskloss_); 
    933934                $this->iskloss_ = $value; 
    934935                return $value; 
     
    11331134                } 
    11341135                //Update cache tables. 
    1135                 allianceSummary::addKill($this); 
    1136                 corpSummary::addKill($this); 
    1137                 pilotSummary::addKill($this); 
     1136                summaryCache::addKill($this); 
    11381137                $qry->autocommit(true); 
    11391138                // call the event that we added this mail 
     
    11491148 
    11501149                event::call('killmail_delete', $this); 
    1151                 allianceSummary::delKill($this); 
    1152                 corpSummary::delKill($this); 
    1153                 pilotSummary::delKill($this); 
    11541150 
    11551151                $qry = new DBQuery(); 
     
    11661162                        $qry->execute("delete from kb3_comments where kll_id = ".$this->id_); 
    11671163                } 
    1168                 allianceSummary::delKill($this); 
    1169                 corpSummary::delKill($this); 
    1170                 pilotSummary::delKill($this); 
     1164                summaryCache::delKill($this); 
    11711165        } 
    11721166 
  • dev/common/includes/class.summary.php

    r419 r422  
    202202                } 
    203203        } 
     204        //! Update the summary table when a kill value changes. 
     205        function update($kill, $difference) 
     206        { 
     207                $alls = array(); 
     208                $qry = new DBQuery(); 
     209                $qry->execute("SELECT 1 FROM kb3_sum_alliance WHERE asm_all_id = ".$kill->getVictimAllianceID()); 
     210                // No summary table to remove kill from so skip. 
     211                if($qry->recordCount()) 
     212                { 
     213                        // php4 doesn't handle indirect references so specify each one. 
     214                        $ship = $kill->getVictimShip(); 
     215                        $class = $ship->getClass(); 
     216                        $sql = "UPDATE kb3_sum_alliance SET asm_loss_isk = asm_loss_isk + ".$difference. 
     217                                " WHERE asm_all_id = ".$kill->getVictimAllianceID(). 
     218                                        " AND asm_shp_id = ".$class->getID(); 
     219                        $qry->execute($sql); 
     220                } 
     221                foreach($kill->involvedparties_ as $inv) 
     222                { 
     223                        if(intval($alls[$inv->getAllianceID()])) continue; 
     224                        $alls[$inv->getAllianceID()] = 1; 
     225                        $qry->execute("SELECT 1 FROM kb3_sum_alliance WHERE asm_all_id = ".$inv->getAllianceID()); 
     226                        if(!$qry->recordCount()) continue; 
     227                        // php4 doesn't handle indirect references so specify each one. 
     228                        $ship = $kill->getVictimShip(); 
     229                        $class = $ship->getClass(); 
     230                        $sql = "UPDATE kb3_sum_alliance SET asm_kill_isk = asm_kill_isk + ".$difference. 
     231                                " WHERE asm_all_id = ".$inv->getAllianceID(). 
     232                                        " AND asm_shp_id = ".$class->getID(); 
     233                        $qry->execute($sql); 
     234                } 
     235        } 
    204236} 
    205237 
     
    353385                } 
    354386        } 
     387        //! Update the summary table when a kill value changes. 
     388        function update($kill, $difference) 
     389        { 
     390                $alls = array(); 
     391                $qry = new DBQuery(); 
     392                $qry->execute("SELECT 1 FROM kb3_sum_corp WHERE csm_crp_id = ".$kill->getVictimCorpID()); 
     393                // No summary table to remove kill from so skip. 
     394                if($qry->recordCount()) 
     395                { 
     396                        // php4 doesn't handle indirect references so specify each one. 
     397                        $ship = $kill->getVictimShip(); 
     398                        $class = $ship->getClass(); 
     399                        $sql = "UPDATE kb3_sum_corp SET csm_loss_isk = csm_loss_isk + ".$difference. 
     400                                " WHERE csm_crp_id = ".$kill->getVictimCorpID(). 
     401                                        " AND csm_shp_id = ".$class->getID(); 
     402                        $qry->execute($sql); 
     403                } 
     404                foreach($kill->involvedparties_ as $inv) 
     405                { 
     406                        if(intval($alls[$inv->getCorpID()])) continue; 
     407                        $alls[$inv->getCorpID()] = 1; 
     408                        $qry->execute("SELECT 1 FROM kb3_sum_corp WHERE csm_crp_id = ".$inv->getCorpID()); 
     409                        if(!$qry->recordCount()) continue; 
     410                        // php4 doesn't handle indirect references so specify each one. 
     411                        $ship = $kill->getVictimShip(); 
     412                        $class = $ship->getClass(); 
     413                        $sql = "UPDATE kb3_sum_corp SET csm_kill_isk = csm_kill_isk + ".$difference. 
     414                                " WHERE csm_crp_id = ".$inv->getCorpID(). 
     415                                        " AND csm_shp_id = ".$class->getID(); 
     416                        $qry->execute($sql); 
     417                } 
     418        } 
    355419} 
    356420 
     
    505569                } 
    506570        } 
     571        //! Update the summary table when a kill value changes. 
     572        function update($kill, $difference) 
     573        { 
     574                $alls = array(); 
     575                $qry = new DBQuery(); 
     576                $qry->execute("SELECT 1 FROM kb3_sum_pilot WHERE psm_plt_id = ".$kill->getVictimID()); 
     577                // No summary table to remove kill from so skip. 
     578                if($qry->recordCount()) 
     579                { 
     580                        // php4 doesn't handle indirect references so specify each one. 
     581                        $ship = $kill->getVictimShip(); 
     582                        $class = $ship->getClass(); 
     583                        $sql = "UPDATE kb3_sum_pilot SET psm_loss_isk = psm_loss_isk - ".$difference. 
     584                                " WHERE psm_plt_id = ".$kill->getVictimID(). 
     585                                        " AND psm_shp_id = ".$class->getID(); 
     586                        $qry->execute($sql); 
     587                } 
     588                foreach($kill->involvedparties_ as $inv) 
     589                { 
     590                        if(intval($alls[$inv->getPilotID()])) continue; 
     591                        $alls[$inv->getPilotID()] = 1; 
     592                        $qry->execute("SELECT 1 FROM kb3_sum_pilot WHERE psm_plt_id = ".$inv->getPilotID()); 
     593                        if(!$qry->recordCount()) continue; 
     594                        // php4 doesn't handle indirect references so specify each one. 
     595                        $ship = $kill->getVictimShip(); 
     596                        $class = $ship->getClass(); 
     597                        $sql = "UPDATE kb3_sum_pilot SET psm_kill_isk = psm_kill_isk - ".$difference. 
     598                                " WHERE psm_plt_id = ".$inv->getPilotID(). 
     599                                        " AND psm_shp_id = ".$class->getID(); 
     600                        $qry->execute($sql); 
     601                } 
     602        } 
     603} 
     604 
     605class summaryCache 
     606{ 
     607        function addKill($kill) 
     608        { 
     609                allianceSummary::addKill($kill); 
     610                corpSummary::addKill($kill); 
     611                pilotSummary::addKill($kill); 
     612        } 
     613        function delKill($kill) 
     614        { 
     615                allianceSummary::delKill($kill); 
     616                corpSummary::delKill($kill); 
     617                pilotSummary::delKill($kill); 
     618        } 
     619        function update($kill, $difference) 
     620        { 
     621                allianceSummary::update($kill); 
     622                corpSummary::update($kill); 
     623                pilotSummary::update($kill); 
     624        } 
    507625} 
    508626?> 
  • dev/common/includes/globals.php

    r419 r422  
    77else 
    88{ 
    9         $svn_rev = '419'; 
     9        $svn_rev = '422'; 
    1010} 
    1111define('SVN_REV', $svn_rev); 
  • dev/install/install_step40.php

    r400 r422  
    346346?> 
    347347<p>Please select optional SQL data to be inserted into the database:<br/></p> 
     348If you have an existing EDK installation the optional data may damage current kills.<br/> 
    348349<form id="options" name="options" method="post" action="?step=40"> 
    349350<input type="hidden" name="step" value="40"> 
  • dev/mods/rank_mod/rank.php

    r392 r422  
    2525        if ($this->invall_) 
    2626            $sqlbottom .= " and ind.ind_all_id = ".$this->invall_->getID(); 
    27  
     27                $sqlbottom .= " and itm.volume < '12000' 
     28                                                          and itm.typeName != 'Unknown' 
     29                                                          group by ind.ind_wep_id order by 1 desc"; 
    2830        $this->setSQLTop($sql); 
    29                 $this->setSQLBottom(" and itm.volume < '12000' 
    30                                                           and itm.typeName != 'Unknown' 
    31                                                           group by ind.ind_wep_id order by 1 desc"); 
     31                $this->setSQLBottom($sqlbottom); 
    3232    } 
    3333} 
     
    5555            $sqlbottom .= " and ind.ind_all_id = ".$this->invall_->getID(); 
    5656 
     57                $sqlbottom .= " and ind.ind_shp_id != 31 
     58                             and shp.shp_class != 17 
     59                             group by ind.ind_shp_id order by 1 desc"; 
    5760        $this->setSQLTop($sql); 
    58         $this->setSQLBottom(" and ind.ind_shp_id != 31 
    59                              and shp.shp_class != 17 
    60                              group by ind.ind_shp_id order by 1 desc"); 
     61        $this->setSQLBottom($sqlbottom); 
    6162    } 
    6263} 
     
    232233$shiplist->addInvolvedPilot($pilot); 
    233234$shiplist->generate(); 
     235 
    234236 
    235237// modified the topshiplist to show also the class (1 query = all data) XD