105 lines
3.1 KiB
PHP
105 lines
3.1 KiB
PHP
<?php
|
||
|
||
class JsonController extends Controller
|
||
{
|
||
|
||
/**
|
||
* Точки
|
||
*/
|
||
static function actionPoints()
|
||
{
|
||
$points = new Point();
|
||
$points = $points->getAll();
|
||
|
||
$categories = new Category();
|
||
$categories = $categories->getAll();
|
||
|
||
foreach ($points as &$point) {
|
||
$point['categoryIcon'] = $categories[$point['categoryId']]['icon'];
|
||
$point['categoryName'] = $categories[$point['categoryId']]['name'];
|
||
}
|
||
|
||
self::renderPartial('json.php', array(
|
||
'data' => $points,
|
||
));
|
||
}
|
||
|
||
/**
|
||
* Точка
|
||
*/
|
||
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[]='Неверное название точки';
|
||
if(!( isset($_POST['img']) && $_POST['img'] && strlen($_POST['img']) > 13 )) $errors[]='Плохая ссылка на изображение';
|
||
if(!( isset($_POST['description']) && $_POST['description'] && strlen($_POST['description']) > 25 )) $errors[]='Слишком короткое описание';
|
||
if(!( isset($_POST['categoryId']) && $_POST['categoryId'] )) $errors[]='Не задана категория точки';
|
||
if(!( isset($_POST['source']) )) $errors[]='Не передано поле источкика информации. Допускается пустое значение.';
|
||
if(!( isset($_POST['lat']) && $_POST['lat'] )) $errors[]='Ошибочное значение широты';
|
||
if(!( isset($_POST['lng']) && $_POST['lng'] )) $errors[]='Ошибочное значение долготы';
|
||
|
||
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);
|
||
}
|
||
}
|
||
}
|