function __construct() { // Prevent unauthorized use of gc2scheduler if (!\app\conf\App::$param["gc2scheduler"][$_SESSION["screen_name"]]) { $code = "401"; header("HTTP/1.0 {$code} " . \app\inc\Util::httpCodeText($code)); die(\app\inc\Response::toJson(array("success" => false, "message" => "Not allowed"))); } $this->job = new \app\models\Job(); }
private function get_file($type) { include_once 'Cache_Lite/Lite.php'; $db = Input::getPath()->part(5); $baseLayer = Input::get("baselayer"); $layers = Input::get("layers"); $center = Input::get("center"); $zoom = Input::get("zoom"); $size = Input::get("size"); $sizeArr = explode("x", Input::get("size")); $bbox = Input::get("bbox"); $sql = Input::get("sql"); $id = $db . "_" . $baseLayer . "_" . $layers . "_" . $center . "_" . $zoom . "_" . $size . "_" . $bbox . "_" . $sql; $lifetime = Input::get('lifetime') ?: 0; $options = array('cacheDir' => \app\conf\App::$param['path'] . "app/tmp/", 'lifeTime' => $lifetime); $Cache_Lite = new \Cache_Lite($options); if ($data = $Cache_Lite->get($id)) { //echo "Cached"; } else { ob_start(); $fileName = md5(time() . rand(10000, 99999) . microtime()); $file = \app\conf\App::$param["path"] . "/app/tmp/_" . $fileName . "." . $type; $cmd = "wkhtmltoimage " . "--height {$sizeArr[1]} --disable-smart-width --width {$sizeArr[0]} --quality 90 --javascript-delay 1000 " . "\"" . "http://127.0.0.1" . "/api/v1/staticmap/html/{$db}?baselayer={$baseLayer}&layers={$layers}¢er={$center}&zoom={$zoom}&size={$size}&bbox={$bbox}&sql={$sql}\" " . $file; //die($cmd); exec($cmd); switch ($type) { case "png": $res = imagecreatefrompng($file); break; case "jpg": $res = imagecreatefromjpeg($file); break; } if (!$res) { $response['success'] = false; $response['message'] = "Could not create image"; $response['code'] = 406; header("HTTP/1.0 {$response['code']} " . \app\inc\Util::httpCodeText($response['code'])); echo \app\inc\Response::toJson($response); exit; } header('Content-type: image/png'); imageAlphaBlending($res, true); imageSaveAlpha($res, true); imagepng($res); // Cache script $data = ob_get_contents(); $Cache_Lite->save($data, $id); ob_get_clean(); } header("Content-type: image/png"); echo $data; exit; }
static function add($uri, $func = "", $silent = false) { $time_start = Util::microtime_float(); $requestUri = strtok($_SERVER["REQUEST_URI"], '?'); if (strpos($requestUri, $uri) !== false) { if ($func) { $func(); } $uri = trim($uri, "/"); $e = explode("/", $uri); $e[count($e) - 1] = ucfirst($e[count($e) - 1]); $uri = implode($e, "/"); $n = sizeof($e); $className = strtr($uri, '/', '\\'); $class = "app\\{$className}"; $action = Input::getMethod() . "_" . Input::getPath()->part($n + 1); if (class_exists($class)) { $controller = new $class(); if (method_exists($controller, $action)) { $response = $controller->{$action}(); } else { $action = Input::getMethod() . "_index"; if (method_exists($controller, $action)) { $response = $controller->{$action}(); } else { header('HTTP/1.0 404 Not Found'); echo "<h1>404 Not Found</h1>"; exit; } } } //header('charset=utf-8'); //header('Content-Type: text/plain; charset=utf-8'); $code = isset($response["code"]) ? $response["code"] : "200"; header("HTTP/1.0 {$code} " . Util::httpCodeText($code)); if (isset($response["json"])) { echo Response::passthru($response["json"]); } else { if (!$silent) { $response["_execution_time"] = round(Util::microtime_float() - $time_start, 3); echo Response::toJson($response); } } exit; } }
public function get_tms() { $parts = explode("/", $_SERVER['REQUEST_URI']); $url = "http://127.0.0.1/cgi/tilecache.py/{$parts[3]}/{$parts[4]}/{$parts[5]}/{$parts[6]}/{$parts[7]}?cfg={$this->db}"; $res = imagecreatefrompng($url); if (!$res) { $response['success'] = false; $response['message'] = "Could create tile"; $response['code'] = 406; header("HTTP/1.0 {$response['code']} " . \app\inc\Util::httpCodeText($response['code'])); echo \app\inc\Response::toJson($response); exit; } header('Content-type: image/png'); imageAlphaBlending($res, true); imageSaveAlpha($res, true); imagepng($res); exit; }
function makeExceptionReport($value) { global $sessionComment; ob_get_clean(); ob_start(); //$postgisObject->rollback(); echo '<ServiceExceptionReport version="1.2.0" xmlns="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://wfs.plansystem.dk:80/geoserver/schemas//wfs/1.0.0/OGC-exception.xsd"> <ServiceException>'; if (is_array($value)) { if (sizeof($value) == 1) { print $value[0]; } else { print_r($value); } } else { print $value; } echo '</ServiceException> </ServiceExceptionReport>'; $data = ob_get_clean(); header("HTTP/1.0 400 " . \app\inc\Util::httpCodeText("400")); echo $data; print "\n" . $sessionComment; Log::write($data); die; }