summaryrefslogtreecommitdiffstats
path: root/codebase/treegridgroup_connector.php
diff options
context:
space:
mode:
authorDmitry <dmitry@dhtmlx.com>2012-05-08 14:58:11 +0200
committerDmitry <dmitry@dhtmlx.com>2012-05-08 14:58:11 +0200
commit711583417091002845079cb20082a68152054640 (patch)
tree8e8debe51e30ee8f05832efdbf6e08ff09c27678 /codebase/treegridgroup_connector.php
parent78bc7500e7c9afb2be508c2ad1ee37f94bff70ef (diff)
downloadconnector-php-711583417091002845079cb20082a68152054640.zip
connector-php-711583417091002845079cb20082a68152054640.tar.gz
connector-php-711583417091002845079cb20082a68152054640.tar.bz2
implements RenderStrategy logic
Diffstat (limited to 'codebase/treegridgroup_connector.php')
-rw-r--r--codebase/treegridgroup_connector.php44
1 files changed, 8 insertions, 36 deletions
diff --git a/codebase/treegridgroup_connector.php b/codebase/treegridgroup_connector.php
index b8c725e..4140c2c 100644
--- a/codebase/treegridgroup_connector.php
+++ b/codebase/treegridgroup_connector.php
@@ -9,12 +9,18 @@ class TreeGridGroupConnector extends TreeGridConnector{
private $id_postfix = '__{group_param}';
- public function __construct($res,$type=false,$item_type=false,$data_type=false){
- parent::__construct($res,$type,$item_type,$data_type);
+ public function __construct($res,$type=false,$item_type=false,$data_type=false,$render_type=false){
+ if (!$render_type) $render_type="GroupRenderStrategy";
+ parent::__construct($res,$type,$item_type,$data_type,$render_type);
$this->event->attach("beforeProcessing", Array($this, 'check_id'));
}
+ public function get_id_postfix() {
+ return $this->id_postfix;
+ }
+
+
public function render(){
if (isset($_GET['id'])) {
$_GET['id'] = str_replace($this->id_postfix, "", $_GET['id']);
@@ -55,40 +61,6 @@ class TreeGridGroupConnector extends TreeGridConnector{
$this->end_run();
}
-
- protected function render_set($res){
- $output="";
- $index=0;
- $records = Array();
- while ($data=$this->sql->get_next($res)){
- if (isset($data[$this->config->id['name']])) {
- $has_kids = false;
- } else {
- $data[$this->config->id['name']] = $data['value'].$this->id_postfix;
- $data[$this->config->text[0]['name']] = $data['value'];
- $has_kids = true;
- }
- $data = new $this->names["item_class"]($data,$this->config,$index);
- $this->event->trigger("beforeRender",$data);
- if ($has_kids === false) {
- $data->set_kids(false);
- }
-
- if ($data->has_kids()===-1 && $this->dload)
- $data->set_kids(true);
- $output.=$data->to_xml_start();
- if (($data->has_kids()===-1 || ( $data->has_kids()==true && !$this->dload))&&($has_kids == true)){
- $sub_request = new DataRequestConfig($this->request);
- $sub_request->set_relation(str_replace($this->id_postfix, "", $data->get_id()));
- $output.=$this->render_set($this->sql->select($sub_request));
- }
- $output.=$data->to_xml_end();
- $index++;
- }
- return $output;
- }
-
-
/*! renders self as xml, starting part
*/
protected function xml_start(){