110 lines
3.2 KiB
PHP
110 lines
3.2 KiB
PHP
<?php
|
||
|
||
class JsonController extends Controller
|
||
{
|
||
|
||
/**
|
||
* Точки
|
||
*/
|
||
static function actionPoints()
|
||
{
|
||
$points = new Point();
|
||
$points = $points->getAll();
|
||
|
||
$categories = new Category();
|
||
$categories = $categories->getAll();
|
||
|
||
$result = array();
|
||
|
||
foreach ($points as $point) {
|
||
$result[$point['id']]['id'] = $point['id'];
|
||
$result[$point['id']]['name'] = $point['name'];
|
||
$result[$point['id']]['lat'] = $point['lat'];
|
||
$result[$point['id']]['lng'] = $point['lng'];
|
||
$result[$point['id']]['categoryIcon'] = $categories[$point['categoryId']]['icon'];
|
||
}
|
||
|
||
self::renderPartial('json.php', array(
|
||
'data' => $result,
|
||
));
|
||
}
|
||
|
||
/**
|
||
* Точка
|
||
*/
|
||
static function actionPoint()
|
||
{
|
||
$id = (int) App::getParam('id');
|
||
if ($id)
|
||
{
|
||
$point = new Point();
|
||
$point = $point->getByPK($id);
|
||
|
||
$categories = new Category();
|
||
$categories = $categories->getAll();
|
||
|
||
$point->categoryIcon = $categories[$point->categoryId]['icon'];
|
||
$point->categoryName = $categories[$point->categoryId]['name'];
|
||
|
||
self::renderPartial('json.php', $point->getValues());
|
||
} else
|
||
{
|
||
App::error404();
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Категории
|
||
*/
|
||
static function actionCategories()
|
||
{
|
||
$categories = new Category();
|
||
$categories = $categories->getAll();
|
||
|
||
self::renderPartial('json.php', array(
|
||
'data' => $categories,
|
||
));
|
||
}
|
||
|
||
/**
|
||
* Добавление точки
|
||
*/
|
||
static function actionAddPoint()
|
||
{
|
||
$errors = array();
|
||
|
||
if(!( isset($_POST['name']) && $_POST['name'] && strlen($_POST['name']) > 1 )) $errors[1]='Неверное название точки';
|
||
if(!( isset($_POST['img']) && $_POST['img'] && strlen($_POST['img']) > 13 )) $errors[2]='Плохая ссылка на изображение';
|
||
if(!( isset($_POST['description']) && $_POST['description'] && strlen($_POST['description']) > 25 )) $errors[3]='Слишком короткое описание';
|
||
if(!( isset($_POST['categoryId']) && $_POST['categoryId'] )) $errors[4]='Не задана категория точки';
|
||
if(!( isset($_POST['source']) )) $errors[5]='Не передано поле источкика информации. Допускается пустое значение.';
|
||
if(!( isset($_POST['lat']) && $_POST['lat'] )) $errors[6]='Ошибочное значение широты';
|
||
if(!( isset($_POST['lng']) && $_POST['lng'] )) $errors[7]='Ошибочное значение долготы';
|
||
|
||
if (empty($errors))
|
||
{
|
||
$point = new Point();
|
||
$point->add($_POST);
|
||
|
||
if ( $point->id )
|
||
{
|
||
self::renderPartial('json.php', array(
|
||
'data' => $point->id
|
||
));
|
||
}
|
||
else
|
||
{
|
||
header("HTTP/1.0 500 Internal Server Error");
|
||
die('Error 500 - Internal Server Error');
|
||
}
|
||
|
||
}
|
||
else
|
||
{
|
||
header("HTTP/1.0 400 Bad Request");
|
||
header('Content-Type: application/json');
|
||
print json_encode($errors);
|
||
}
|
||
}
|
||
}
|