From 337c8ec81fb8d770343cb84ddb58030267c69afc Mon Sep 17 00:00:00 2001 From: ngleader Date: Wed, 6 Oct 2010 00:58:51 +0000 Subject: [PATCH] =?UTF-8?q?#19188668=20XML=20Query=20=EB=B3=80=EC=88=98=20?= =?UTF-8?q?=ED=95=84=ED=84=B0=EB=A7=81=20=EC=B2=B4=ED=81=AC=20=EC=98=A4?= =?UTF-8?q?=EB=A5=98=20=EB=B0=8F=20=EB=B0=B0=EC=97=B4=EB=B3=80=EC=88=98=20?= =?UTF-8?q?=EC=A7=80=EC=9B=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@7749 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/xml/XmlQueryParser.class.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/classes/xml/XmlQueryParser.class.php b/classes/xml/XmlQueryParser.class.php index 941b7a58d..a7c1e562f 100644 --- a/classes/xml/XmlQueryParser.class.php +++ b/classes/xml/XmlQueryParser.class.php @@ -173,6 +173,17 @@ $buff .= ' );'."\n"; } + // args 변수 확인 + $arg_list = $this->getArguments(); + if($arg_list) + { + foreach($arg_list as $arg) + { + $pre_buff .= 'if(is_object($args->'.$arg.')){ $args->'.$arg.' = get_method_vars($args->'.$arg.'); }'. "\n"; + $pre_buff .= 'if(is_array($args->'.$arg.')){ if(count($args->'.$arg.')>0) { $args->'.$arg.' = join(",",$args->'.$arg.'); } else { unset($args->'.$arg.'); }};'."\n"; + } + } + // order 정리 if($output->order) { $buff .= '$output->order = array('; @@ -446,6 +457,8 @@ if($v->notnull) $this->notnull_list[] = $v->var; if($v->default) $buff .= sprintf('array("column"=>"%s", "value"=>$args->%s?$args->%s:%s,"pipe"=>"%s","operation"=>"%s",),%s', $v->column, $v->var, $v->var, $v->default, $v->pipe, $v->operation, "\n"); else $buff .= sprintf('array("column"=>"%s", "value"=>$args->%s,"pipe"=>"%s","operation"=>"%s",),%s', $v->column, $v->var, $v->pipe, $v->operation, "\n"); + + $this->addArguments($v->var); } else { $buff .= sprintf('array("column"=>"%s", "value"=>"%s","pipe"=>"%s","operation"=>"%s",),%s', $v->column, $v->var, $v->pipe, $v->operation, "\n"); } @@ -459,6 +472,15 @@ return $buff; } + function addArguments($args_name) + { + $this->args[] = $args_name; + } + + function getArguments() + { + return $this->args; + } /** * @brief returns predefined default values correspoding to given parameters