/** * Fetch all kills. */ function getkills() { if ($this->setDateFilter() == "" && empty($this->system)) { if (count($this->inv_all) == 1 && !$this->inv_crp && !$this->inv_plt) { $allsum = new allianceSummary($this->inv_all[0]); $summary = $allsum->getSummary(); foreach ($summary as $key => $row) { $this->entry[$row['class_name']] = array('id' => $key, 'kills' => $row['killcount'], 'kills_isk' => $row['killisk'], 'losses' => $row['losscount'], 'losses_isk' => $row['lossisk']); $this->tkcount += $row['killcount']; $this->tkisk += $row['killisk']; $this->tlcount += $row['losscount']; $this->tlisk += $row['lossisk']; if (!in_array($key, array(2, 3, 11))) { $this->trkcount += $row['killcount']; } } return; } elseif (count($this->inv_crp) == 1 && !$this->inv_all && !$this->inv_plt) { $crpsum = new corpSummary($this->inv_crp[0]); $summary = $crpsum->getSummary(); foreach ($summary as $key => $row) { $this->entry[$row['class_name']] = array('id' => $key, 'kills' => $row['killcount'], 'kills_isk' => $row['killisk'], 'losses' => $row['losscount'], 'losses_isk' => $row['lossisk']); $this->tkcount += $row['killcount']; $this->tkisk += $row['killisk']; $this->tlcount += $row['losscount']; $this->tlisk += $row['lossisk']; if (!in_array($key, array(2, 3, 11))) { $this->trkcount += $row['killcount']; } } return; } elseif (count($this->inv_plt) == 1 && !$this->inv_all && !$this->inv_crp) { $pltsum = new pilotSummary($this->inv_plt[0]); $summary = $pltsum->getSummary(); foreach ($summary as $key => $row) { $this->entry[$row['class_name']] = array('id' => $key, 'kills' => $row['killcount'], 'kills_isk' => $row['killisk'], 'losses' => $row['losscount'], 'losses_isk' => $row['lossisk']); $this->tkcount += $row['killcount']; $this->tkisk += $row['killisk']; $this->tlcount += $row['losscount']; $this->tlisk += $row['lossisk']; if (!in_array($key, array(-1, 2, 3, 11))) { $this->trkcount += $row['killcount']; } } $qry = DBFactory::getDBQuery(); $qry->execute("SELECT plt_lpoints, plt_kpoints FROM kb3_pilots WHERE plt_id=" . $this->inv_plt[0]); if ($qry->recordCount()) { $row = $qry->getRow(); $this->tlpoints = $row['plt_lpoints']; $this->tkpoints = $row['plt_kpoints']; } return; } } $this->entry = array(); // as there is no way to do this elegantly in sql // i'll keep it in php $sql = "select scl_id, scl_class from kb3_ship_classes\n where scl_class not in ('Drone','Unknown') order by scl_class"; $startdate = makeStartDate($this->weekno, $this->yearno, $this->monthno, $this->startweekno, $this->startDate); $enddate = makeEndDate($this->weekno, $this->yearno, $this->monthno, $this->endDate); $qry = DBFactory::getDBQuery(); $qry->execute($sql); while ($row = $qry->getRow()) { $this->entry[$row['scl_class']] = array('id' => $row['scl_id'], 'kills' => 0, 'kills_isk' => 0, 'losses' => 0, 'losses_isk' => 0); } $sql = 'SELECT count(kll.kll_id) AS knb, scl_id, scl_class,'; $sql .= ' sum(kll_isk_loss) AS kisk FROM kb3_kills kll INNER JOIN kb3_ships shp ON ( shp.shp_id = kll.kll_ship_id )'; $sql .= ' INNER JOIN kb3_ship_classes scl ON ( scl.scl_id = shp.shp_class )'; $sqlop = " WHERE "; $invcount = count($this->inv_all) + count($this->inv_crp) + count($this->inv_plt); if ($invcount == 0) { if ($startdate) { $sql .= $sqlop . " kll.kll_timestamp >= '" . gmdate('Y-m-d H:i', $startdate) . "' "; $sqlop = " AND "; } if ($enddate) { $sql .= $sqlop . " kll.kll_timestamp <= '" . gmdate('Y-m-d H:i', $enddate) . "' "; $sqlop = " AND "; } } else { $sql .= "INNER JOIN ("; $involved = array(); if ($this->inv_all) { $invsql = "SELECT ina_kll_id as kll_id FROM kb3_inv_all\n\t\t\t\t\tWHERE ina_all_id in (" . implode(',', $this->inv_all) . ") "; if ($startdate) { $invsql .= " AND ina_timestamp >= '" . gmdate('Y-m-d H:i', $startdate) . "' "; } if ($enddate) { $invsql .= " AND ina_timestamp <= '" . gmdate('Y-m-d H:i', $enddate) . "' "; } $involved[] = $invsql; } if ($this->inv_crp) { $invsql = "SELECT inc_kll_id as kll_id FROM kb3_inv_crp\n\t\t\t\t\tWHERE inc_crp_id in (" . implode(',', $this->inv_crp) . ") "; if ($startdate) { $invsql .= " AND inc_timestamp >= '" . gmdate('Y-m-d H:i', $startdate) . "' "; } if ($enddate) { $invsql .= " AND inc_timestamp <= '" . gmdate('Y-m-d H:i', $enddate) . "' "; } $involved[] = $invsql; } if ($this->inv_plt) { $invsql = "SELECT ind_kll_id as kll_id FROM kb3_inv_detail\n\t\t\t\t\tWHERE ind_plt_id in (" . implode(',', $this->inv_plt) . ") "; if ($startdate) { $invsql .= " AND ind_timestamp >= '" . gmdate('Y-m-d H:i', $startdate) . "' "; } if ($enddate) { $invsql .= " AND ind_timestamp <= '" . gmdate('Y-m-d H:i', $enddate) . "' "; } $involved[] = $invsql; } $invtypecount = 0; if ($this->inv_all) { $invtypecount++; } if ($this->inv_crp) { $invtypecount++; } if ($this->inv_plt) { $invtypecount++; } $sql .= "(" . implode(") UNION (", $involved); if ($invtypecount == 1) { $sql .= " GROUP BY kll_id"; } $sql .= ") ) inv ON inv.kll_id = kll.kll_id "; } if ($this->system) { $sql .= $sqlop . " kll.kll_system_id = " . join(',', $this->system) . " "; $sqlop = " AND "; } $sql .= 'GROUP BY scl_class order by scl_class'; $qry = DBFactory::getDBQuery(); $qry->execute($sql); while ($row = $qry->getRow()) { $this->entry[$row['scl_class']]['kills'] = $row['knb']; $this->entry[$row['scl_class']]['kills_isk'] = $row['kisk']; $this->tkcount += $row['knb']; $this->tkisk += $row['kisk']; } // LEFT JOIN to kb3_inv_all or kb3_inv_crp if only one type of entity // otherwise LEFT JOIN to kb3_inv_detail $sql = 'SELECT count( kll_id) AS lnb, scl_id, scl_class,'; $sql .= ' sum(kll_isk_loss) AS lisk FROM kb3_kills kll INNER JOIN kb3_ships shp ON ( shp.shp_id = kll.kll_ship_id )'; $sql .= ' INNER JOIN kb3_ship_classes scl ON ( scl.scl_id = shp.shp_class )'; if ($this->inv_all) { if (!($this->inv_crp || $this->inv_plt)) { $sql .= ' LEFT JOIN kb3_inv_all ina ON (kll.kll_id = ina.ina_kll_id AND kll.kll_all_id = ina.ina_all_id)'; } else { $sql .= ' LEFT JOIN kb3_inv_detail ind ON (kll.kll_id = ind.ind_kll_id AND (kll.kll_all_id = ind.ind_all_id '; if ($this->inv_crp) { $sql .= ' OR kll.kll_crp_id = ind.ind_crp_id'; } if ($this->inv_plt) { $sql .= ' OR kll.kll_victim_id = ind.ind_plt_id'; } $sql .= ') )'; } } elseif ($this->inv_crp) { if (!$this->inv_plt) { $sql .= ' LEFT JOIN kb3_inv_crp inc ON (kll.kll_id = inc.inc_kll_id AND kll.kll_crp_id = inc.inc_crp_id)'; } else { $sql .= ' LEFT JOIN kb3_inv_detail ind ON (kll.kll_id = ind.ind_kll_id AND (kll.kll_crp_id = ind.ind_crp_id'; $sql .= ' OR kll.kll_victim_id = ind.ind_plt_id))'; } } $sqlop = ' WHERE '; if ($this->setDateFilter()) { $sql .= $sqlop . $this->setDateFilter(); $sqlop = " AND "; } if ($invcount) { if ($this->inv_all && !($this->inv_crp || $this->inv_plt)) { $sql .= $sqlop . ' ina.ina_kll_id IS NULL '; $sqlop = " AND "; } else { if ($this->inv_crp && !($this->inv_plt || $this->inv_all)) { $sql .= $sqlop . ' inc.inc_kll_id IS NULL '; $sqlop = " AND "; } else { if (!($this->inv_plt && !($this->inv_crp || $this->inv_all))) { $sql .= $sqlop . ' ind.ind_kll_id IS NULL '; $sqlop = " AND "; } } } $invP = array(); if ($this->inv_all) { $invP[] = 'kll.kll_all_id IN ( ' . implode(',', $this->inv_all) . ' ) '; } if ($this->inv_crp) { $invP[] = 'kll.kll_crp_id IN ( ' . implode(',', $this->inv_crp) . ' ) '; } if ($this->inv_plt) { $invP[] = 'kll.kll_victim_id IN ( ' . implode(',', $this->inv_plt) . ' ) '; } if ($invP) { $sql .= $sqlop . " (" . implode(' OR ', $invP) . ") "; $sqlop = " AND "; } } if ($this->system) { $sql .= $sqlop . " kll.kll_system_id = " . join(',', $this->system) . " "; } $sql .= 'GROUP BY scl_class order by scl_class'; $qry = DBFactory::getDBQuery(); $qry->execute($sql); while ($row = $qry->getRow()) { $this->entry[$row['scl_class']]['losses'] = $row['lnb']; $this->entry[$row['scl_class']]['losses_isk'] = $row['lisk']; $this->tlcount += $row['lnb']; $this->tlisk += $row['lisk']; } }
public static function update($kill, $difference, $differenceloot) { allianceSummary::update($kill, $difference, $differenceloot); corpSummary::update($kill, $difference, $differenceloot); pilotSummary::update($kill, $difference, $differenceloot); }
/** * Build the killlists that are needed for the options selected. */ function killList() { global $smarty; if (isset($this->viewList[$this->view])) { return call_user_func_array($this->viewList[$this->view], array(&$this)); } $scl_id = (int) edkURI::getArg('scl_id'); switch ($this->view) { case "kills": $list = new KillList(); $list->setOrdered(true); $list->addInvolvedPilot($this->pilot); if ($scl_id) { $list->addVictimShipClass($scl_id); } $list->setPageSplit(config::get('killcount')); $pagesplitter = new PageSplitter($list->getCount(), config::get('killcount')); $table = new KillListTable($list); $smarty->assign('splitter', $pagesplitter->generate()); $smarty->assign('kills', $table->generate()); return $smarty->fetch(get_tpl('detail_kl_kills')); break; case "losses": $list = new KillList(); $list->setOrdered(true); $list->addVictimPilot($this->pilot); if ($scl_id) { $list->addVictimShipClass($scl_id); } else { $list->setPodsNoobships(config::get('podnoobs')); } $list->setPageSplit(config::get('killcount')); $pagesplitter = new PageSplitter($list->getCount(), config::get('killcount')); $table = new KillListTable($list); $smarty->assign('splitter', $pagesplitter->generate()); $smarty->assign('losses', $table->generate()); return $smarty->fetch(get_tpl('detail_kl_losses')); break; case "ships_weapons": $shiplist = new TopList_Ship(); $shiplist->addInvolvedPilot($this->pilot); $shiplisttable = new TopTable_Ship($shiplist); $smarty->assign('ships', $shiplisttable->generate()); $weaponlist = new TopList_Weapon(); $weaponlist->addInvolvedPilot($this->pilot); $weaponlisttable = new TopTable_Weapon($weaponlist); $smarty->assign('weapons', $weaponlisttable->generate()); return $smarty->fetch(get_tpl('detail_kl_ships_weapons')); break; case 'history': $pltsum = new pilotSummary($this->plt_id); $smarty->assign('title', Language::get('history')); $smarty->assign('summary', $pltsum->getMonthlySummary()); return $smarty->fetch(get_tpl('detail_history')); break; default: $list = new KillList(); $list->setOrdered(true); if (config::get('comments_count')) { $list->setCountComments(true); } if (config::get('killlist_involved')) { $list->setCountInvolved(true); } $list->setLimit(10); $list->addInvolvedPilot($this->pilot); if ($scl_id) { $list->addVictimShipClass($scl_id); } else { $list->setPodsNoobships(config::get('podnoobs')); } $table = new KillListTable($list); $smarty->assign('kills', $table->generate()); $list = new KillList(); $list->setOrdered(true); if (config::get('comments_count')) { $list->setCountComments(true); } if (config::get('killlist_involved')) { $list->setCountInvolved(true); } $list->setLimit(10); $list->addVictimPilot($this->pilot); if ($scl_id) { $list->addVictimShipClass($scl_id); } else { $list->setPodsNoobships(config::get('podnoobs')); } $table = new KillListTable($list); $smarty->assign('losses', $table->generate()); return $smarty->fetch(get_tpl('detail_kl_default')); break; } return $html; }