public function executeDemo(sfWebRequest $request) { $this->map = $this->getRoute()->getObject(); $this->forward404Unless($this->map); $this->demo = MapsTable::getInstance()->createQuery()->select("tv_record_file")->where("id = ?", $request->getParameter("id"))->execute(); if (file_exists($demo_file = sfConfig::get("app_demo_path") . DIRECTORY_SEPARATOR . $this->demo[0]->getTvRecordFile() . ".dem.zip") && !preg_match('=/=', $this->demo[0]->getTvRecordFile())) { $apache_modules = array(); if (function_exists("apache_get_modules")) { $apache_modules = apache_get_modules(); } if (in_array("mod_xsendfile", $apache_modules)) { header("X-Sendfile: {$demo_file}"); header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=" . $this->demo[0]->getTvRecordFile() . ".dem.zip"); } else { header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=" . $this->demo[0]->getTvRecordFile() . ".dem.zip"); readfile($demo_file); } } return sfView::NONE; }
public function executeHeatmapDataMaps(sfWebRequest $request) { $maps = MapsTable::getInstance()->createQuery()->where("map_name = ?", $request->getParameter("maps"))->execute(); if (class_exists($request->getParameter("maps"))) { $map = $request->getParameter("maps"); $this->class_heatmap = new $map(0); } else { return $this->renderText(json_encode(array("type" => "heatmap", "points" => array()))); } foreach ($maps as $map) { $this->match = $map->getMatch(); $map = $this->class_heatmap; foreach ($this->match->getPlayersHeatmap() as $event) { $map->addInformation($event->getId(), $event->getEventName(), $event->getEventX(), $event->getEventY(), $event->getPlayerId(), $event->getPlayerTeam() == "CT" ? 1 : 2, $event->getRoundId(), $event->getRoundTime(), 0, 1, $event->getAttackerX(), $event->getAttackerY(), $event->getAttackerName(), $event->getAttackerTeam()); } $type = $request->getPostParameter("type", "kill"); $points = array(); if ($type == "allstuff") { $points = array_merge($map->buildHeatMap("hegrenade"), $map->buildHeatMap("flashbang"), $map->buildHeatMap("smokegrenade"), $map->buildHeatMap("decoy"), $map->buildHeatMap("molotov")); } else { $side = $request->getPostParameter("sides", -1); if ($side == "all") { $side = -1; } elseif ($side == "ct") { $side = 1; } elseif ($side == "t") { $side = 2; } else { $side = -1; } $points = $map->buildHeatMap($type, $request->getPostParameter("rounds", array()), $side, $request->getPostParameter("players", array())); } } return $this->renderText(json_encode(array("type" => "heatmap", "points" => $points))); }