From be9a109a376541c02978e23010c4442490e93c78 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Mon, 12 Sep 2016 22:53:56 +0900 Subject: [PATCH] Support in XML query section --- classes/db/queryparts/limit/Limit.class.php | 11 ++++++++--- .../xmlquery/tags/navigation/LimitTag.class.php | 16 ++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/classes/db/queryparts/limit/Limit.class.php b/classes/db/queryparts/limit/Limit.class.php index 5e660c4d6..e84fd3390 100644 --- a/classes/db/queryparts/limit/Limit.class.php +++ b/classes/db/queryparts/limit/Limit.class.php @@ -37,10 +37,11 @@ class Limit * constructor * @param int $list_count * @param int $page - * @param int $page_count + * @param int $page_count + * @param int $offset * @return void */ - function __construct($list_count, $page = NULL, $page_count = NULL) + function __construct($list_count, $page = NULL, $page_count = NULL, $offset = NULL) { $this->list_count = $list_count; if($page) @@ -50,6 +51,10 @@ class Limit $this->start = ($page_value - 1) * $list_count_value; $this->page_count = $page_count; $this->page = $page; + } + elseif($offset) + { + $this->start = $offset->getValue(); } } @@ -81,7 +86,7 @@ class Limit function toString() { - if($this->page) + if($this->page || $this->start) { return $this->start . ' , ' . $this->list_count->getValue(); } diff --git a/classes/xml/xmlquery/tags/navigation/LimitTag.class.php b/classes/xml/xmlquery/tags/navigation/LimitTag.class.php index e3ff511dd..6bef36a33 100644 --- a/classes/xml/xmlquery/tags/navigation/LimitTag.class.php +++ b/classes/xml/xmlquery/tags/navigation/LimitTag.class.php @@ -35,6 +35,12 @@ class LimitTag */ var $list_count; + /** + * QueryArgument object + * @var QueryArgument + */ + var $offset; + /** * constructor * @param object $index @@ -58,6 +64,12 @@ class LimitTag $index->list_count->attrs->default = 0; $this->list_count = new QueryArgument($index->list_count); $this->arguments[] = $this->list_count; + + if(isset($index->offset) && isset($index->offset->attrs)) + { + $this->offset = new QueryArgument($index->offset); + $this->arguments[] = $this->offset; + } } function toString() @@ -66,6 +78,10 @@ class LimitTag { return sprintf('new Limit(${\'%s_argument\'}, ${\'%s_argument\'}, ${\'%s_argument\'})', $this->list_count->getArgumentName(), $this->page->getArgumentName(), $this->page_count->getArgumentName()); } + elseif($this->offset) + { + return sprintf('new Limit(${\'%s_argument\'}, NULL, NULL, ${\'%s_argument\'})', $this->list_count->getArgumentName(), $this->offset->getArgumentName()); + } else { return sprintf('new Limit(${\'%s_argument\'})', $this->list_count->getArgumentName());