diff --git a/ground/controllers/JsonController.php b/ground/controllers/JsonController.php index be130f9..f86dca6 100644 --- a/ground/controllers/JsonController.php +++ b/ground/controllers/JsonController.php @@ -75,6 +75,15 @@ class JsonController extends Controller $point->images = $tmp; } + $extraParams = $point->getExtraParams(); + if (!empty($extraParams)) { + $tmp = array(); + foreach ($extraParams as $extraParam) { + $tmp[] = array($extraParam->name, $extraParam->value); + } + $point->extraParams = $tmp; + } + $categories = Category::model()->getAll(array('order' => 'ord ASC', 'asArray' => true)); $point->categoryIcon = $categories[$point->categoryId]['icon']; @@ -183,6 +192,25 @@ class JsonController extends Controller $point->save(); } + ExtraParams::model()->delByPoint($id); + $params = isset($_POST['extraParamNames']) ? $_POST['extraParamNames'] : NULL; + $values = isset($_POST['extraParamValues']) ? $_POST['extraParamValues'] : NULL; + if ($params && $values) { + foreach ($params as $paramIndex => $param) { + $paramName = $param; + $paramValue = isset($values[$paramIndex]) ? $values[$paramIndex] : NULL; + + if ($paramName && $paramValue) { + ExtraParams::model()->add(array( + 'pointId' => $point->id, + 'name' => $paramName, + 'value' => $paramValue, + )); + } + } + } + + App::redirect('/?point=' . $id); } diff --git a/ground/models/ExtraParams.php b/ground/models/ExtraParams.php new file mode 100644 index 0000000..1fd2d4d --- /dev/null +++ b/ground/models/ExtraParams.php @@ -0,0 +1,22 @@ +_tableName_ = 'extraParams'; + parent::__construct($fromArray); + } + + static function model() + { + return new self(); + } + + public function delByPoint($pointId) + { + App::DB()->query('DELETE FROM `' . $this->_tableName_ . '` WHERE `pointId` = ' . $pointId); + } + +} diff --git a/ground/models/Point.php b/ground/models/Point.php index d0d7e89..792a0e2 100644 --- a/ground/models/Point.php +++ b/ground/models/Point.php @@ -106,4 +106,11 @@ class Point extends Model } } + public function getExtraParams() + { + return ExtraParams::model()->getAll(array( + 'where' => '`pointId` = '.$this->id, + 'order' => '`id` ASC', + )); + } } diff --git a/ground/views/modals/addPoint.php b/ground/views/modals/addPoint.php index 6aeb6e4..f7df02a 100644 --- a/ground/views/modals/addPoint.php +++ b/ground/views/modals/addPoint.php @@ -27,7 +27,11 @@