X-Git-Url: https://dev.renevier.net/?a=blobdiff_plain;f=application%2Fcontrollers%2FGeomController.php;h=b01837c8c50c218e20cb452c59ffc6ff3bebe4dc;hb=9f80d909c85ea324ed3337348b6e83ec39b70a78;hp=3f14df907137d7cbab2ec8a83f695ba3d140b653;hpb=c18437388d1810a4f7e8f692d748473feeaebe00;p=syj.git diff --git a/application/controllers/GeomController.php b/application/controllers/GeomController.php index 3f14df9..b01837c 100644 --- a/application/controllers/GeomController.php +++ b/application/controllers/GeomController.php @@ -1,5 +1,5 @@ find($idx, $path)) { - if ($pathMapper->hasexisted($idx)) { - $api->setCode(410); - } else { - $api->setCode(404); + if (!$pathMapper->findByTitle($idx, $path)) { + if ($pathMapper->hasexisted($idx)) { + $api->setCode(410); + } else { + $api->setCode(404); + } + return; } - return; } switch ($ext) { @@ -56,9 +58,11 @@ class GeomController extends Zend_Controller_Action $data .= ''; $data .= ''; if ($path->creator) { - $data .= '' . htmlspecialchars($path->creator->pseudo) . ''; + $data .= '' + . htmlspecialchars($path->creator->pseudo, ENT_COMPAT, "UTF-8") + . ''; } - $data .= '' . htmlspecialchars($path->displayTitle) . ''; + $data .= '' . htmlspecialchars($path->displayTitle, ENT_COMPAT, "UTF-8") . ''; $data .= $path->geom->toKML(); $data .= ''; $data .= ''; @@ -72,22 +76,22 @@ class GeomController extends Zend_Controller_Action $data .= ''; $data .= ''; if ($path->creator) { - $data .= '' . htmlspecialchars($path->creator->pseudo) . ''; + $data .= '' . htmlspecialchars($path->creator->pseudo, ENT_COMPAT, "UTF-8") . ''; } - $data .= '' . htmlspecialchars($path->displayTitle) . ''; + $data .= '' . htmlspecialchars($path->displayTitle, ENT_COMPAT, "UTF-8") . ''; $data .= $path->geom->toGPX(); $data .= ''; $data .= ''; $api = $this->_helper->SyjApi; - $api->setCheckIfNoneMatch(true)->setContentType('application/octet-stream')->setBody($data); + $api->setCheckIfNoneMatch(true)->setContentType('application/gpx+xml')->setBody($data); } protected function json(Syj_Model_Path $path) { - $data = array('geom' => (string)$path->geom, - 'title' => (string)$path->displayTitle); + $data = json_decode($path->geom->toGeoJSON()); + $data->title = (string)$path->displayTitle; if ($path->creator) { - $data['creator'] = (string)$path->creator->pseudo; + $data->creator = (string)$path->creator->pseudo; } $api = $this->_helper->SyjApi; $api->setCheckIfNoneMatch(true)->setBodyJson($data);