sections = array(); if (!$render_type) $render_type="Dhtmlx\\Connector\\Output\\RenderStrategy"; parent::__construct($res,$type,$item_type,$data_type,$render_type); } protected $sections; public function add_section($name, $string){ $this->sections[$name] = $string; } protected function parse_request_mode(){ if (isset($_GET['action']) && $_GET["action"] != "get") $this->editing = true; else parent::parse_request_mode(); } //parse GET scoope, all operations with incoming request must be done here protected function parse_request(){ if (isset($_GET['action'])){ $action = $_GET['action']; //simple request mode if ($action == "get"){ //data request if (isset($_GET['id'])){ //single entity data request $this->request->set_filter($this->config->id["name"],$_GET['id'],"="); } else { //loading collection of items } } else { //data saving $this->editing = true; } parent::check_csrf(); } else { if (isset($_GET['editing']) && isset($_POST['ids'])) $this->editing = true; parent::parse_request(); } if (isset($_GET["start"]) && isset($_GET["count"])) $this->request->set_limit($_GET["start"],$_GET["count"]); } /*! renders self as xml, starting part */ protected function xml_start(){ $start = "attributes as $k=>$v) $start .= " ".$k."='".$v."'"; $start.= ">"; foreach($this->sections as $k=>$v) $start .= "<".$k.">".$v."\n"; return $start; } };