summaryrefslogtreecommitdiffstats
path: root/codebase
diff options
context:
space:
mode:
authorDmitry <dmitry@dhtmlx.com>2012-05-22 19:04:01 +0200
committerDmitry <dmitry@dhtmlx.com>2012-05-22 19:04:01 +0200
commit4e0e9848fd20129ccf6514917ef9eb72f2aa11e5 (patch)
treee4d72bdc71a407dc6f5942d512c175866a0836e9 /codebase
parent599f673d49d93d6e4726a90cd0675f3742a86aa7 (diff)
downloadconnector-php-4e0e9848fd20129ccf6514917ef9eb72f2aa11e5.zip
connector-php-4e0e9848fd20129ccf6514917ef9eb72f2aa11e5.tar.gz
connector-php-4e0e9848fd20129ccf6514917ef9eb72f2aa11e5.tar.bz2
fix crosslink connector
Diffstat (limited to 'codebase')
-rw-r--r--codebase/base_connector.php2
-rw-r--r--codebase/crosslink_connector.php14
-rw-r--r--codebase/strategy.php32
3 files changed, 29 insertions, 19 deletions
diff --git a/codebase/base_connector.php b/codebase/base_connector.php
index 8890a68..c4cbb5d 100644
--- a/codebase/base_connector.php
+++ b/codebase/base_connector.php
@@ -569,7 +569,7 @@ class Connector {
process commands, output requested data as XML
*/
protected function render_set($res){
- return $this->render->render_set($res, $this->names["item_class"], $this->dload, $this->data_separator);
+ return $this->render->render_set($res, $this->names["item_class"], $this->dload, $this->data_separator, $this->config);
}
/*! output fetched data as XML
diff --git a/codebase/crosslink_connector.php b/codebase/crosslink_connector.php
index f92d0c5..3bd2d2c 100644
--- a/codebase/crosslink_connector.php
+++ b/codebase/crosslink_connector.php
@@ -3,6 +3,8 @@
@author dhtmlx.com
@license GPL, see license.txt
*/
+require_once("crosslink_connector.php");
+
class DelayedConnector extends Connector{
protected $init_flag=false;//!< used to prevent rendering while initialization
private $data_mode=false;//!< flag to separate xml and data request modes
@@ -120,4 +122,16 @@ class CrossOptionsConnector extends Connector{
}
}
+
+class JSONCrossOptionsConnector extends CrossOptionsConnector{
+ public $options, $link;
+ private $master_name, $link_name, $master_value;
+
+ public function __construct($res,$type=false,$item_type=false,$data_type=false){
+ $this->options = new JSONOptionsConnector($res,$type,$item_type,$data_type);
+ $this->link = new DelayedConnector($res,$type,$item_type,$data_type);
+
+ EventMaster::attach_static("connectorInit",array($this, "handle"));
+ }
+}
?> \ No newline at end of file
diff --git a/codebase/strategy.php b/codebase/strategy.php
index 5f02cf0..329f722 100644
--- a/codebase/strategy.php
+++ b/codebase/strategy.php
@@ -13,13 +13,13 @@ class RenderStrategy {
DB resultset
process commands, output requested data as XML
*/
- public function render_set($res, $name, $dload, $sep){
+ public function render_set($res, $name, $dload, $sep, $config){
$output="";
$index=0;
$conn = $this->conn;
- $conn->event->trigger("beforeRenderSet",$conn,$res,$conn->get_config());
+ $conn->event->trigger("beforeRenderSet",$conn,$res,$config);
while ($data=$conn->sql->get_next($res)){
- $data = new $name($data,$conn->get_config(),$index);
+ $data = new $name($data,$config,$index);
if ($data->get_id()===false)
$data->set_id($conn->uuid());
$conn->event->trigger("beforeRender",$data);
@@ -38,13 +38,13 @@ class JSONRenderStrategy extends RenderStrategy {
DB resultset
process commands, output requested data as json
*/
- public function render_set($res, $name, $dload, $sep){
+ public function render_set($res, $name, $dload, $sep, $config){
$output=array();
$index=0;
$conn = $this->conn;
- $conn->event->trigger("beforeRenderSet",$conn,$res,$conn->get_config());
+ $conn->event->trigger("beforeRenderSet",$conn,$res,$config);
while ($data=$conn->sql->get_next($res)){
- $data = new $name($data,$conn->get_config(),$index);
+ $data = new $name($data,$config,$index);
if ($data->get_id()===false)
$data->set_id($conn->uuid());
$conn->event->trigger("beforeRender",$data);
@@ -66,12 +66,12 @@ class TreeRenderStrategy extends RenderStrategy {
$conn->event->attach("beforeProcessing",array($this,"parent_id_correction_b"));
}
- public function render_set($res, $name, $dload, $sep){
+ public function render_set($res, $name, $dload, $sep, $config){
$output="";
$index=0;
$conn = $this->conn;
while ($data=$conn->sql->get_next($res)){
- $data = new $name($data,$conn->get_config(),$index);
+ $data = new $name($data,$config,$index);
$conn->event->trigger("beforeRender",$data);
//there is no info about child elements,
//if we are using dyn. loading - assume that it has,
@@ -115,12 +115,12 @@ class TreeRenderStrategy extends RenderStrategy {
class JSONTreeRenderStrategy extends TreeRenderStrategy {
- public function render_set($res, $name, $dload, $sep){
+ public function render_set($res, $name, $dload, $sep, $config){
$output=array();
$index=0;
$conn = $this->conn;
while ($data=$conn->sql->get_next($res)){
- $data = new $name($data,$conn->get_config(),$index);
+ $data = new $name($data,$config,$index);
$conn->event->trigger("beforeRender",$data);
//there is no info about child elements,
//if we are using dyn. loading - assume that it has,
@@ -160,11 +160,10 @@ class MultitableTreeRenderStrategy extends TreeRenderStrategy {
$this->sep = $sep;
}
- public function render_set($res, $name, $dload, $sep){
+ public function render_set($res, $name, $dload, $sep, $config){
$output="";
$index=0;
$conn = $this->conn;
- $config = $conn->get_config();
while ($data=$conn->sql->get_next($res)){
$data[$config->id['name']] = $this->level_id($data[$config->id['name']]);
$data = new $name($data,$config,$index);
@@ -259,11 +258,10 @@ class MultitableTreeRenderStrategy extends TreeRenderStrategy {
class JSONMultitableTreeRenderStrategy extends MultitableTreeRenderStrategy {
- public function render_set($res, $name, $dload, $sep){
+ public function render_set($res, $name, $dload, $sep, $config){
$output=array();
$index=0;
$conn = $this->conn;
- $config = $conn->get_config();
while ($data=$conn->sql->get_next($res)){
$data[$config->id['name']] = $this->level_id($data[$config->id['name']]);
$data = new $name($data,$config,$index);
@@ -295,11 +293,10 @@ class GroupRenderStrategy extends RenderStrategy {
$conn->event->attach("onInit", Array($this, 'replace_postfix'));
}
- public function render_set($res, $name, $dload, $sep){
+ public function render_set($res, $name, $dload, $sep, $config){
$output="";
$index=0;
$conn = $this->conn;
- $config = $conn->get_config();
while ($data=$conn->sql->get_next($res)){
if (isset($data[$config->id['name']])) {
$has_kids = false;
@@ -362,11 +359,10 @@ class GroupRenderStrategy extends RenderStrategy {
class JSONGroupRenderStrategy extends GroupRenderStrategy {
- public function render_set($res, $name, $dload, $sep){
+ public function render_set($res, $name, $dload, $sep, $config){
$output=array();
$index=0;
$conn = $this->conn;
- $config = $conn->get_config();
while ($data=$conn->sql->get_next($res)){
if (isset($data[$config->id['name']])) {
$has_kids = false;