diff options
-rw-r--r-- | codebase/db_common.php | 2 | ||||
-rw-r--r-- | codebase/strategy.php | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/codebase/db_common.php b/codebase/db_common.php index 8d8762e..9f1a8cd 100644 --- a/codebase/db_common.php +++ b/codebase/db_common.php @@ -490,7 +490,7 @@ class DataConfig{ @return returns true if field already a part of dataset, otherwise returns true */ - private function is_field($name,$collection = false){ + public function is_field($name,$collection = false){ if (!$collection) $collection=$this->text; diff --git a/codebase/strategy.php b/codebase/strategy.php index 15328e9..de32270 100644 --- a/codebase/strategy.php +++ b/codebase/strategy.php @@ -16,7 +16,8 @@ class RenderStrategy { */ protected function mix($config, $mix) { for ($i = 0; $i < count($mix); $i++) - $config->add_field($mix[$i]['name']); + if (!$config->is_field($mix[$i]['name'])) + $config->add_field($mix[$i]['name']); } /*! remove mix fields from DataConfig @@ -91,7 +92,7 @@ class RenderStrategy { $this->mix($config, $mix); $conn->event->trigger("beforeRenderSet",$conn,$res,$config); while ($data=$conn->sql->get_next($res)){ - $data = $this->simple_mix($config, $data); + $data = $this->simple_mix($mix, $data); $data = new $name($data,$config,$index); if ($data->get_id()===false) @@ -214,7 +215,7 @@ class JSONTreeRenderStrategy extends TreeRenderStrategy { if ($data->has_kids()===-1 || ( $data->has_kids()==true && !$dload)){ $sub_request = new DataRequestConfig($conn->get_request()); $sub_request->set_relation($data->get_id()); - $temp = $this->render_set($conn->sql->select($sub_request), $name, $dload, $sep, $config); + $temp = $this->render_set($conn->sql->select($sub_request), $name, $dload, $sep, $config, $mix); if (sizeof($temp)) $record["data"] = $temp; } |