summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--codebase/data_connector.php10
-rw-r--r--codebase/strategy.php4
-rw-r--r--codebase/tree_connector.php3
-rw-r--r--codebase/treedatamultitable_connector.php2
-rw-r--r--codebase/treegrid_connector.php3
-rw-r--r--codebase/treegridmultitable_connector.php1
-rw-r--r--codebase/treemultitable_connector.php2
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'>";
}