diff options
-rw-r--r-- | codebase/data_connector.php | 10 | ||||
-rw-r--r-- | codebase/strategy.php | 4 | ||||
-rw-r--r-- | codebase/tree_connector.php | 3 | ||||
-rw-r--r-- | codebase/treedatamultitable_connector.php | 2 | ||||
-rw-r--r-- | codebase/treegrid_connector.php | 3 | ||||
-rw-r--r-- | codebase/treegridmultitable_connector.php | 1 | ||||
-rw-r--r-- | codebase/treemultitable_connector.php | 2 |
7 files changed, 16 insertions, 9 deletions
diff --git a/codebase/data_connector.php b/codebase/data_connector.php index c00e775..c7b33bd 100644 --- a/codebase/data_connector.php +++ b/codebase/data_connector.php @@ -368,6 +368,7 @@ class TreeCommonDataItem extends CommonDataItem{ class TreeDataConnector extends DataConnector{ protected $parent_name = 'parent'; + public $rootId = "0"; /*! constructor @@ -405,7 +406,10 @@ class TreeDataConnector extends DataConnector{ /*! renders self as xml, starting part */ protected function xml_start(){ - $attributes = " parent='".$this->request->get_relation()."' "; + $attributes = " "; + if (!$this->rootId || $this->rootId != $this->request->get_relation()) + $attributes = " parent='".$this->request->get_relation()."' "; + foreach($this->attributes as $k=>$v) $attributes .= " ".$k."='".$v."'"; @@ -428,7 +432,9 @@ class JSONTreeDataConnector extends TreeDataConnector{ if ($this->simple) return $result; $data = array(); - $data["parent"] = $this->request->get_relation(); + if (!$this->rootId || $this->rootId != $this->request->get_relation()) + $data["parent"] = $this->request->get_relation(); + $data["data"] = $result; $this->fill_collections(); diff --git a/codebase/strategy.php b/codebase/strategy.php index f9a106f..39c0188 100644 --- a/codebase/strategy.php +++ b/codebase/strategy.php @@ -245,7 +245,7 @@ class MultitableTreeRenderStrategy extends TreeRenderStrategy { private $level = 0; private $max_level = null; - protected $sep = "#"; + protected $sep = ","; public function __construct($conn) { parent::__construct($conn); @@ -341,7 +341,7 @@ class MultitableTreeRenderStrategy extends TreeRenderStrategy { $this->max_level = $max_level; } public function parse_id($id, $set_level = true) { - $parts = explode('#', urldecode($id)); + $parts = explode($this->sep, $id, 2); if (count($parts) === 2) { $level = $parts[0] + 1; $id = $parts[1]; diff --git a/codebase/tree_connector.php b/codebase/tree_connector.php index f8985e2..03f267d 100644 --- a/codebase/tree_connector.php +++ b/codebase/tree_connector.php @@ -151,6 +151,7 @@ require_once("filesystem_item.php"); **/
class TreeConnector extends Connector{
protected $parent_name = 'id';
+ public $rootId = "0";
/*! constructor
@@ -180,7 +181,7 @@ class TreeConnector extends Connector{ if (isset($_GET[$this->parent_name]))
$this->request->set_relation($_GET[$this->parent_name]);
else
- $this->request->set_relation("0");
+ $this->request->set_relation($this->rootId);
$this->request->set_limit(0,0); //netralize default reaction on dyn. loading mode
}
diff --git a/codebase/treedatamultitable_connector.php b/codebase/treedatamultitable_connector.php index 8dba8c6..104770e 100644 --- a/codebase/treedatamultitable_connector.php +++ b/codebase/treedatamultitable_connector.php @@ -28,7 +28,7 @@ class TreeDataMultitableConnector extends TreeDataConnector{ public function xml_start(){ if (isset($_GET[$this->parent_name])) { - return "<data parent='".$this->render->level_id($_GET[$this->parent_name], $this->render->get_level() - 1)."'>"; + return "<data parent='".$this->xmlentities($this->render->level_id($_GET[$this->parent_name], $this->render->get_level() - 1))."'>"; } else { return "<data parent='0'>"; } diff --git a/codebase/treegrid_connector.php b/codebase/treegrid_connector.php index 0bb19ea..1f89137 100644 --- a/codebase/treegrid_connector.php +++ b/codebase/treegrid_connector.php @@ -53,6 +53,7 @@ class TreeGridDataItem extends GridDataItem{ **/ class TreeGridConnector extends GridConnector{ protected $parent_name = 'id'; + protected $rootId = "0"; /*! constructor @@ -82,7 +83,7 @@ class TreeGridConnector extends GridConnector{ if (isset($_GET[$this->parent_name])) $this->request->set_relation($_GET[$this->parent_name]); else - $this->request->set_relation("0"); + $this->request->set_relation($this->rootId); $this->request->set_limit(0,0); //netralize default reaction on dyn. loading mode } diff --git a/codebase/treegridmultitable_connector.php b/codebase/treegridmultitable_connector.php index 3f4bbd9..31217f9 100644 --- a/codebase/treegridmultitable_connector.php +++ b/codebase/treegridmultitable_connector.php @@ -11,7 +11,6 @@ class TreeGridMultitableConnector extends TreeGridConnector{ $data_type="TreeGridMultitableDataProcessor"; if (!$render_type) $render_type="MultitableTreeRenderStrategy"; parent::__construct($res,$type,$item_type,$data_type,$render_type); - $this->render->set_separator("%23"); } public function render(){ diff --git a/codebase/treemultitable_connector.php b/codebase/treemultitable_connector.php index 09bb19b..b06164c 100644 --- a/codebase/treemultitable_connector.php +++ b/codebase/treemultitable_connector.php @@ -28,7 +28,7 @@ class TreeMultitableConnector extends TreeConnector{ public function xml_start(){ if (isset($_GET[$this->parent_name])) { - return "<tree id='".($this->render->level_id($_GET[$this->parent_name], $this->get_level() - 1))."'>"; + return "<tree id='".$this->xmlentities($this->render->level_id($_GET[$this->parent_name], $this->get_level() - 1))."'>"; } else { return "<tree id='0'>"; } |